added MAIL, VIS and LIST to sendmails command

This commit is contained in:
Benni Baermann 2020-10-27 11:55:16 +01:00
parent 275741ab47
commit 02d5a542bc

View file

@ -1,10 +1,11 @@
from datetime import date, timedelta
import sys
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, HonoraryCertificate, Travel
from input.models import Project, Library, HonoraryCertificate, Travel, Email, BusinessCard, List
from input.settings import URLPREFIX, IF_EMAIL, SURVEYPREFIX
class Command(BaseCommand):
@ -66,15 +67,18 @@ class Command(BaseCommand):
self.stdout.write(self.style.SUCCESS('end_of_projects_reached() executed.'))
def surveymails_to_object(self, supported, name, type='LIB'):
def surveymails_to_object(self, supported, name='', type='LIB'):
mytype=type
myname = name
for item in supported:
if type == 'LIB':
mytype = item.type
elif type not in ('MAIL','VIS','LIST'):
myname = getattr(item,name)
self.survey_link(email=item.email,
type=mytype,
pid=f'{mytype}{item.pk}',
name=getattr(item,name),
name=myname,
realname=item.realname)
item.survey_mail_send = True
item.save()
@ -112,6 +116,19 @@ class Command(BaseCommand):
.exclude(survey_mail_send=True)
self.surveymails_to_object(supported, type='TRAV', name='request_url')
def surveymails_to_mail_vis_lis(self):
'''send survey link 2 weeks after mailadresss, mailinglist or businesscards are granted'''
lastdate = date.today() - timedelta(days=14)
typefield = ('MAIL','VIS','LIST')
count = 0
for c in ('Email', 'BusinessCard', 'List'):
supported = getattr(sys.modules[__name__], c).objects.filter(granted=True)\
.filter(granted_date__lt = lastdate)\
.exclude(survey_mail_send=True)
self.surveymails_to_object(supported, type=typefield[count])
count += 1
def handle(self, *args, **options):
'''the main function which is called by the custom command'''
@ -121,5 +138,6 @@ class Command(BaseCommand):
self.surveymails_to_hon()
self.surveymails_to_project()
self.surveymails_to_travel()
self.surveymails_to_mail_vis_lis()
self.stdout.write(self.style.SUCCESS('sendmails custom command executed'))