Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • smasch/scheduling-system
1 result
Show changes
......@@ -171,8 +171,10 @@ def get_subjects_with_no_visit(user):
def get_subjects_with_almost_expired_vouchers(user):
notification_min_date = get_today_midnight_date() + datetime.timedelta(days=14)
contact_attempt_min_date = get_today_midnight_date() - datetime.timedelta(days=14)
# if expiry date is in the next 7 days
notification_min_date = get_today_midnight_date() + datetime.timedelta(days=7)
# if last successful contact was over 7 days ago
contact_attempt_min_date = get_today_midnight_date() - datetime.timedelta(days=7)
result = StudySubject.objects.filter(
subject__dead=False,
resigned=False,
......
......@@ -10,7 +10,7 @@ from django_cron import CronJobBase, Schedule
from web.views.notifications import get_today_midnight_date
from web.forms import VoucherForm
from web.models import Voucher, StudySubject
from web.models import Voucher, StudySubject, MailTemplate
from web.models.constants import GLOBAL_STUDY_ID, VOUCHER_STATUS_NEW, VOUCHER_STATUS_EXPIRED
from . import WrappedView
......@@ -58,7 +58,7 @@ class VoucherEditView(SuccessMessageMixin, UpdateView, WrappedView):
success_url = reverse_lazy('web.views.vouchers')
success_message = "Voucher saved successfully"
template_name = "vouchers/edit.html"
context_object_name = "voucher_type"
context_object_name = "voucher"
def get_success_url(self, **kwargs):
# noinspection PyUnresolvedReferences
......@@ -67,6 +67,12 @@ class VoucherEditView(SuccessMessageMixin, UpdateView, WrappedView):
def get_study_subject_id(self):
return Voucher.objects.get(id=self.kwargs['pk']).study_subject.id
def get_context_data(self, *args, **kwargs):
context = super(VoucherEditView, self).get_context_data(*args, **kwargs)
context['mail_templates']= MailTemplate.get_voucher_mail_templates([])
print context
return context
class ExpireVouchersJob(CronJobBase):
RUN_EVERY_MINUTES = 120
......
# coding=utf-8
import logging
from django.urls import reverse_lazy
from django.views.generic import CreateView
from web.forms.voucher_partner_session_forms import VoucherPartnerSessionForm
from web.models import Voucher
from web.models.constants import VOUCHER_STATUS_IN_USE, VOUCHER_STATUS_NEW, VOUCHER_STATUS_USED
from web.models.voucher_partner_session import VoucherPartnerSession
from . import WrappedView
logger = logging.getLogger(__name__)
class VoucherPartnerSessionCreateView(CreateView, WrappedView):
form_class = VoucherPartnerSessionForm
model = VoucherPartnerSession
template_name = "voucher_partner_sessions/add.html"
success_url = reverse_lazy('web.views.voucher_edit')
success_message = "Voucher partner session added"
def form_valid(self, form):
form.instance.voucher_id = pk = self.kwargs['pk']
response = super(VoucherPartnerSessionCreateView, self).form_valid(form)
voucher = Voucher.objects.get(pk=self.kwargs['pk'])
if voucher.status == VOUCHER_STATUS_NEW:
voucher.status = VOUCHER_STATUS_IN_USE
voucher.save()
session_time_used_in_minutes = 0
for session in voucher.voucher_partner_sessions.all():
session_time_used_in_minutes += session.length
if session_time_used_in_minutes >= voucher.hours * 60:
voucher.status = VOUCHER_STATUS_USED
voucher.save()
return response
def get_success_url(self, **kwargs):
return reverse_lazy('web.views.voucher_edit', kwargs={'pk': self.kwargs['pk']})