tasks.py 944 B

123456789101112131415161718
  1. from .models import ProgrammedReport
  2. from django.utils import timezone
  3. # Task que determina que reportes deben ser enviados:
  4. def send_programmed_reports_task():
  5. timenow = timezone.now()
  6. for preport in ProgrammedReport.objects.all():
  7. # Calculamos la fecha en la que debe ser enviado
  8. # TODO! Y si se guarda el duedate en el modelo? Puede ser recalculado en cada save()
  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. # Si hay que enviarlo calculamos el rango de envío. (Ver TODO! en el metodo send_report)
  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)