Browse Source

Acrescenta envio de e-mail no job

pull/167/head
Sesóstris Vieira 1 year ago
parent
commit
444b34b1b7
  1. 64
      sigi/apps/eventos/jobs/daily/sincroniza_saberes.py

64
sigi/apps/eventos/jobs/daily/sincroniza_saberes.py

@ -1,17 +1,23 @@
from django_extensions.management.jobs import DailyJob from django_extensions.management.jobs import DailyJob
from django.db.models import Q from django.db.models import Q
from django.conf import settings from django.conf import settings
from django.forms.models import model_to_dict
from django.utils import timezone from django.utils import timezone
from django.utils.translation import gettext as _
from sigi.apps.utils.management.jobs import JobReportMixin
from sigi.apps.eventos.models import Evento from sigi.apps.eventos.models import Evento
class Job(DailyJob): class Job(JobReportMixin, DailyJob):
help = "Sincroniza número de inscritos e aprovados com o Saberes." help = _("Sincroniza número de inscritos e aprovados com o Saberes.")
report_data = []
def execute(self):
print("Sincronizando número de inscritos e aprovados com o Saberes.")
print(f" Início: {timezone.localtime(): %d/%m/%Y %H:%M:%S}")
def do_job(self):
infos = []
errors = []
total_sinc = 0
total_ok = 0
total_erros = 0
trintadias = timezone.localtime() - timezone.timedelta(days=30) trintadias = timezone.localtime() - timezone.timedelta(days=30)
eventos = Evento.objects.exclude(moodle_courseid=None).filter( eventos = Evento.objects.exclude(moodle_courseid=None).filter(
( (
@ -24,14 +30,44 @@ class Job(DailyJob):
) )
) )
print(f" total de eventos a sincronizar: {eventos.count()}") for evento in eventos:
initial = model_to_dict(evento)
for e in eventos:
try: try:
e.sincroniza_saberes() evento.sincroniza_saberes()
if model_to_dict(evento) != initial:
infos.append(
f"Evento {evento.nome} ({evento.id}) atualizado"
)
total_sinc += 1
else:
total_ok += 1
except Evento.SaberesSyncException as err: except Evento.SaberesSyncException as err:
print( errors.append(
f" Erro ao sincronizar evento {e.id}, " _(
f"com a mensagem '{err.message}'" f"Erro ao sincronizar evento {evento.nome} "
f"({evento,id}), com a mensagem '{err.message}'"
)
) )
print(f" Término: {timezone.localtime(): %d/%m/%Y %H:%M:%S}") total_erros += 1
self.report_data.append(_("ATUALIZAÇÕES"))
self.report_data.append("------------")
self.report_data.append("")
self.report_data.extend(infos)
self.report_data.append("")
self.report_data.append(_("ERROS"))
self.report_data.append("-----")
self.report_data.append("")
self.report_data.extend(errors)
self.report_data.append("")
self.report_data.append(_("RESUMO"))
self.report_data.append("------")
self.report_data.append("")
self.report_data.append(f"* Eventos a sincronizar: {eventos.count()}")
self.report_data.append(f"* Eventos atualizados: {total_sinc}")
self.report_data.append(f"* Já estavam corretos: {total_ok}")
self.report_data.append(f"* Erros: {total_erros}")
self.report_data.append("")

Loading…
Cancel
Save