|
|
@@ -1,8 +1,9 @@
|
|
|
from django.db import models
|
|
|
from .validators import json_email_array, json_not_empty_string_array, valid_frequency_format
|
|
|
from django.utils import timezone
|
|
|
-from api.config import CALENDAR_FREQUENCIES, get_next_calendar_date
|
|
|
+from api.config import get_next_calendar_date, get_previous_calendar_date
|
|
|
from django.conf import settings
|
|
|
+from django.utils.timezone import timedelta as delta
|
|
|
import requests
|
|
|
import logging
|
|
|
logger = logging.getLogger('django')
|
|
|
@@ -35,7 +36,7 @@ class ProgrammedReport(models.Model):
|
|
|
# Actualiza la due_date en cada save del modelo.
|
|
|
def save(self, *args, **kwargs):
|
|
|
base_date = self.last_report_date if self.last_report_date is not None else self.start_report_date
|
|
|
- self.due_date = get_next_calendar_date(base_date, self.frequency)
|
|
|
+ self.due_date = get_next_calendar_date(base_date, self.frequency) + delta(hours=3)
|
|
|
super().save(*args, **kwargs)
|
|
|
|
|
|
|
|
|
@@ -72,10 +73,10 @@ class ProgrammedReport(models.Model):
|
|
|
|
|
|
def send_report_now(self):
|
|
|
# Calculamos el formato en el que Clima requiere recibir los rangos.
|
|
|
- end_date = timezone.datetime.now().strftime("%d/%m/%Y %H:%M")
|
|
|
- start_date = (self.last_report_date if self.last_report_date is not None else self.start_report_date).strftime(
|
|
|
- "%d/%m/%Y %H:%M")
|
|
|
-
|
|
|
+ now = timezone.datetime.now()
|
|
|
+ start_date = get_previous_calendar_date(now, self.frequency).strftime("%d/%m/%Y %H:%M")
|
|
|
+ end_date = now.strftime("%d/%m/%Y %H:%M")
|
|
|
+
|
|
|
# Enviamos la request:
|
|
|
response = requests.post(settings.CLIMA_URL + "/async_report_handler", {
|
|
|
"id": self.id,
|