tasks.py 832 B

123456789101112131415161718
  1. from .models import ProgrammedReport
  2. from django.utils import timezone
  3. # Task que determina que reportes deben ser enviados:
  4. # Ejecutado por Cron (Ver settings.py)
  5. def send_programmed_reports_task():
  6. timenow = timezone.now()
  7. for preport in ProgrammedReport.objects.all():
  8. # Calculamos la fecha en la que debe ser enviado
  9. duedate = (preport.last_report_date +
  10. preport.frequency) if preport.last_report_date is not None else preport.start_report_date
  11. if timenow > duedate:
  12. # Calculamos el rango de envio:
  13. start_date = preport.last_report_date if preport.last_report_date is not None else preport.start_report_date
  14. end_date = start_date + preport.frequency
  15. # Se envía el reporte
  16. preport.send_report(start_date, end_date)