From af68b7101883256034b66ec1034174e63c110a3b Mon Sep 17 00:00:00 2001 From: Benni Baermann Date: Thu, 22 Oct 2020 13:08:58 +0200 Subject: [PATCH] preliminary work for sending surveylinks out --- input/management/commands/sendmails.py | 32 ++++++++++++++++++---- input/settings.py | 1 + input/templates/input/survey_mail.txt | 38 +++++++++++++++++++++++++- 3 files changed, 64 insertions(+), 7 deletions(-) diff --git a/input/management/commands/sendmails.py b/input/management/commands/sendmails.py index 6d4c4fd..9f1f6d2 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 +from input.models import Project, Library from input.settings import URLPREFIX, IF_EMAIL class Command(BaseCommand): @@ -18,19 +18,23 @@ class Command(BaseCommand): - 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 ''' help = '''This command sends mail with some links to the database or to the survey after some amount of time.''' - def handle(self, *args, **options): + def survey_link(self, email, type, pid, name, realname): + print(f'send surveylinkemail to {email}...') - # get all projects which ended 3 weeks ago - old = Project.objects.filter(end__lt = date.today() - timedelta(days=21))\ + def end_of_projects_reached(self): + ''' end of project reached ''' + # get all projects which ended + # - timedelta(days=21)) + old = Project.objects.filter(end__lt = date.today())\ .exclude(end_mail_send = True) - - print(old) mail_template = get_template('input/if_end_of_project.txt') for project in old: context = {'project': project} @@ -47,4 +51,20 @@ class Command(BaseCommand): except BadHeaderError: return HttpResponse('Invalid header found.') + self.stdout.write(self.style.SUCCESS('end_of_projects_reached() executed.')) + + + def handle(self, *args, **options): + + self.end_of_projects_reached() + + supported = Library.objects.filter(granted=True) + print(supported) + for item in supported: + self.survey_link(email=item.email, + type=item.type, + pid=9999, ## TODO + name=item.library, + realname=item.realname) + self.stdout.write(self.style.SUCCESS('sendmails custom command executed')) diff --git a/input/settings.py b/input/settings.py index 98b0c74..5da0620 100644 --- a/input/settings.py +++ b/input/settings.py @@ -3,6 +3,7 @@ IF_EMAIL = 'if-test@wikimedia.de' # prefix for urls URLPREFIX = 'http://127.0.0.1:8000' +SURVEYPREFIX = 'https://wikimedia.sslsurvey.de/Foerderbarometer/?I=1&' # some links DATAPROTECTION = "https://www.wikimedia.de/datenschutz/" diff --git a/input/templates/input/survey_mail.txt b/input/templates/input/survey_mail.txt index aa5a8d2..74f471f 100644 --- a/input/templates/input/survey_mail.txt +++ b/input/templates/input/survey_mail.txt @@ -1,4 +1,40 @@ -Hallo, +Hallo {{data.realname}}, + +Vor einiger Zeit durfte Wikimedia Deutschland Deine Aktivität für Freies Wissen +unterstützen. +{% if data.type == 'PRO' %} +Deine Aktivitäten werden von uns unter dem Projekttitel {{data.name}} geführt. +{% elif data.type == 'HON' %} +Du hast von uns eine Bescheinigung ({{data.name}}) erhalten. +{% elif data.type == 'BIB' %} +Du hast von uns ein Bibliotheksstipendium für {{data.name}} erhalten. +{% elif data.type == 'ELIT' %} +Du hast von uns ein eLiteraturstipendium für {{data.name}} erhalten. +{% elif data.type == 'IFG'} +Wir haben Dich bei einer IFG-Anfrage unterstützt: {{data.name}} +{% elif data.type == 'LIT' %} +Du hast von uns ein Literaturstipendium für {{data.name}} erhalten. +{% elif data.type == 'TRAV' %} +Wir haben Dich mit Reisekostenübernahme für {{data.name}} unterstützt. +{% elif data.type == 'SOFT' %} +Du hast von uns ein Softwarestipendium für {{data.name}} erhalten. +{% elif data.type == 'MAIL' %} +Du hast von uns eine E-Mail-Adresse erhalten. +{% elif data.type == 'LIST' %} +Wir haben Dir eine Mailingliste bereit gestellt. +{% elif data.type == 'VIS' %} +Du hast von uns Visitenkarten erhalten. +{% endif %} + +Zu dieser Unterstützung kannst du uns ein Feedback über einen kurzen Fragebogen +geben. Deine Teilnahme ist freiwillig und hilft uns dabei, die verschiedenen +Förderprogramme im Sinne der Communitys weiter zu verbessern. Wir freuen uns, +wenn du dir kurz die Zeit dafür nehmen würdest. Die Umfrage mit weiteren +Informationen findest du unter dem folgenden Link: + +{{SURVEYPREFIX}}{{data.pid}}=1 + +Da dies eine automatisch erzeugte Nachricht ist, wende dich bei Rückfragen zur Umfrage bitte an community@wikimedia.de {% comment %}