diff --git a/smash/web/migrations/0158_configurationitem_email_items.py b/smash/web/migrations/0158_configurationitem_email_items.py index 248dcb766bc72afcf60a5522813618a786e34ab1..046dd4d4941d65b64150a4ae562955c7ae5986f8 100644 --- a/smash/web/migrations/0158_configurationitem_email_items.py +++ b/smash/web/migrations/0158_configurationitem_email_items.py @@ -4,7 +4,7 @@ from __future__ import unicode_literals from django.db import migrations -from web.models.constants import KIT_DAILY_EMAIL_DAYS_PERIOD_TYPE +from web.models.constants import KIT_DAILY_EMAIL_DAYS_PERIOD_TYPE, KIT_DAILY_EMAIL_TIME_FORMAT_TYPE def create_item(apps, type, value, name): @@ -21,6 +21,9 @@ def create_item(apps, type, value, name): def configuration_items(apps, schema_editor): create_item(apps, KIT_DAILY_EMAIL_DAYS_PERIOD_TYPE, "7", "Number of days with sample kits included in email") + create_item(apps, KIT_DAILY_EMAIL_TIME_FORMAT_TYPE, "%Y-%m-%d %H:%M", + "Appointment date format used in sample kits email") + class Migration(migrations.Migration): diff --git a/smash/web/models/configuration_item.py b/smash/web/models/configuration_item.py index eb9335939c5d4e5a84ea3d1ec38e0d93785113be..ed4b3e39faa17a8f0d5ea231cc178fd2a3fe4ee9 100644 --- a/smash/web/models/configuration_item.py +++ b/smash/web/models/configuration_item.py @@ -1,10 +1,11 @@ # coding=utf-8 import re + from django.db import models from web.models.constants import CANCELLED_APPOINTMENT_COLOR_CONFIGURATION_TYPE, \ NO_SHOW_APPOINTMENT_COLOR_CONFIGURATION_TYPE, KIT_EMAIL_HOUR_CONFIGURATION_TYPE, \ - KIT_EMAIL_DAY_OF_WEEK_CONFIGURATION_TYPE, KIT_DAILY_EMAIL_DAYS_PERIOD_TYPE + KIT_EMAIL_DAY_OF_WEEK_CONFIGURATION_TYPE, KIT_DAILY_EMAIL_TIME_FORMAT_TYPE, KIT_DAILY_EMAIL_DAYS_PERIOD_TYPE class ConfigurationItem(models.Model): @@ -47,6 +48,8 @@ class ConfigurationItem(models.Model): pattern = "^[0-9]+$" if item.type == KIT_EMAIL_DAY_OF_WEEK_CONFIGURATION_TYPE: pattern = "^(MONDAY|TUESDAY|WEDNESDAY|THURSDAY|FRIDAY|SATURDAY|SUNDAY)$" + if item.type == KIT_DAILY_EMAIL_TIME_FORMAT_TYPE: + pattern = "^(%Y-%m-%d|%Y-%m-%d %H:%M)$" if pattern is not None: if not re.compile(pattern).match(item.value): return "Invalid value of param: " + item.name + ". It should match regex pattern: " + pattern diff --git a/smash/web/models/constants.py b/smash/web/models/constants.py index 1e5984de9832f7fcc760527c9d8c5670dbfab78f..e83ddc83fa6dc4ea020850952d9fb151f97ab3d4 100644 --- a/smash/web/models/constants.py +++ b/smash/web/models/constants.py @@ -45,6 +45,7 @@ KIT_RECIPIENT_EMAIL_CONFIGURATION_TYPE = "KIT_RECIPIENT_EMAIL_CONFIGURATION_TYPE KIT_EMAIL_HOUR_CONFIGURATION_TYPE = "KIT_DAILY_EMAIL_HOUR_CONFIGURATION_TYPE" KIT_EMAIL_DAY_OF_WEEK_CONFIGURATION_TYPE = "KIT_EMAIL_DAY_OF_WEEK_CONFIGURATION_TYPE" KIT_DAILY_EMAIL_DAYS_PERIOD_TYPE = "KIT_DAILY_EMAIL_DAYS_PERIOD_TYPE" +KIT_DAILY_EMAIL_TIME_FORMAT_TYPE = "KIT_DAILY_EMAIL_TIME_FORMAT_TYPE" MAIL_TEMPLATE_CONTEXT_SUBJECT = 'S' MAIL_TEMPLATE_CONTEXT_APPOINTMENT = 'A' diff --git a/smash/web/views/kit.py b/smash/web/views/kit.py index fe22f0e92b95049f8de1e9b3c4fb010ac040a670..2ce7e1341d53669bc0707c70804d857c6e917e15 100644 --- a/smash/web/views/kit.py +++ b/smash/web/views/kit.py @@ -15,9 +15,9 @@ from django_cron.models import CronJobLog from notifications import get_filter_locations, get_today_midnight_date from web.decorators import PermissionDecorator from web.models import ConfigurationItem, Language, Worker -from web.models.constants import KIT_EMAIL_HOUR_CONFIGURATION_TYPE, \ +from web.models.constants import KIT_RECIPIENT_EMAIL_CONFIGURATION_TYPE, KIT_DAILY_EMAIL_DAYS_PERIOD_TYPE, \ + KIT_EMAIL_HOUR_CONFIGURATION_TYPE, KIT_DAILY_EMAIL_TIME_FORMAT_TYPE, \ KIT_EMAIL_DAY_OF_WEEK_CONFIGURATION_TYPE, CRON_JOB_TIMEOUT -from web.models.constants import KIT_RECIPIENT_EMAIL_CONFIGURATION_TYPE, KIT_DAILY_EMAIL_DAYS_PERIOD_TYPE from . import wrap_response from ..forms import KitRequestForm from ..models import AppointmentType, Appointment @@ -89,6 +89,8 @@ def kit_requests(request): def send_mail(data): + time_format= ConfigurationItem.objects.get(type=KIT_DAILY_EMAIL_TIME_FORMAT_TYPE).value + end_date_str = " end of time" if data["end_date"] is not None: end_date_str = data["end_date"].strftime('%Y-%m-%d') @@ -117,7 +119,7 @@ def send_mail(data): row_style = ' background-color: #f9f9f9;' email_body += "<tr style='" + row_style + "'>" email_body += "<td style='" + cell_style + "'>" + \ - appointment.datetime_when.strftime('%Y-%m-%d %H:%M') + "</td>" + appointment.datetime_when.strftime(time_format) + "</td>" if appointment.visit is not None and appointment.visit.subject is not None: email_body += "<td style='" + cell_style + "'>" + \ appointment.visit.subject.nd_number + "</td>"