From aa5de1c08d0ec07420008d60df1e2cce3ecb43fb Mon Sep 17 00:00:00 2001 From: Benni Baermann Date: Mon, 26 Oct 2020 12:26:41 +0100 Subject: [PATCH] send mails two weeks after HonoraryCertificate is granted --- README.md | 10 +++++++--- input/management/commands/sendmails.py | 22 ++++++++++++++++++---- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index cd11125..3c63e7a 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,12 @@ purpose: gather data from intern(WMDE) and extern(volunteers) forms to create a database ('förderdatenbank') and send emails with links for a questionary. +Should be executed daily: + + python manage.py sendmails + versions used in development: -python 3.8.2 -django 3.1.1 -django-formtools 2.2 + python 3.8.2 + django 3.1.1 + django-formtools 2.2 diff --git a/input/management/commands/sendmails.py b/input/management/commands/sendmails.py index 9cd8440..18bc7b2 100644 --- a/input/management/commands/sendmails.py +++ b/input/management/commands/sendmails.py @@ -4,7 +4,7 @@ from django.core.management.base import BaseCommand, CommandError from django.template.loader import get_template from django.core.mail import send_mail, BadHeaderError -from input.models import Project, Library +from input.models import Project, Library, HonoraryCertificate from input.settings import URLPREFIX, IF_EMAIL, SURVEYPREFIX class Command(BaseCommand): @@ -13,13 +13,13 @@ class Command(BaseCommand): - two weeks after confirmation of support for volunteer (/extern) send link with surveylink - - same for HonoraryCertificate and accreditation (/intern) + - TODO: same for HonoraryCertificate (/intern) - - travel: mail 3 weeks after end of project. + - TODO: travel: mail 3 weeks after end of project. - assumed end of project (/project) reached: mail to IF, link to project-editpage - - 4 weeks after end of project reached: mail with surveylink + - TODO: 4 weeks after end of project reached: mail with surveylink ''' help = '''This command sends mail with some links to the database or to the survey @@ -86,4 +86,18 @@ class Command(BaseCommand): item.survey_mail_send = True item.save() + # get all HonoraryCertificate objects which where granted two weeks ago + supported = HonoraryCertificate.objects.filter(granted=True)\ + .filter(granted_date__lt = date.today() - timedelta(days=14))\ + .exclude(survey_mail_send=True) + print(supported) + for item in supported: + self.survey_link(email=item.email, + type='HON', + pid=9999, ## TODO + name=item.request_url, + realname=item.realname) + item.survey_mail_send = True + item.save() + self.stdout.write(self.style.SUCCESS('sendmails custom command executed'))