forked from beba/foerderbarometer
added MAIL, VIS and LIST to sendmails command
This commit is contained in:
parent
275741ab47
commit
02d5a542bc
|
@ -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'))
|
||||
|
|
Loading…
Reference in New Issue