- from datetime import date, timedelta
-
- 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.settings import URLPREFIX, IF_EMAIL
-
- class Command(BaseCommand):
- ''' mails will be send here:
-
- - two weeks after confirmation of support for volunteer (/extern) send link
- with surveylink
-
- - same for HonoraryCertificate and accreditation (/intern)
-
- - travel: mail 3 weeks after end of project.
-
- - assumed end of project (/project) reached: mail to IF, link to project-editpage
- '''
-
- 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):
-
- # get all projects which ended 3 weeks ago
- old = Project.objects.filter(end__lt = date.today() - timedelta(days=30))
- print(old)
- mail_template = get_template('input/if_end_of_project.txt')
- for project in old:
- context = {'project': project}
- context['URLPREFIX'] = URLPREFIX
- print(context)
- try:
- send_mail('Projektende erreicht',
- mail_template.render(context),
- IF_EMAIL,
- [IF_EMAIL],
- fail_silently=False)
- except BadHeaderError:
- return HttpResponse('Invalid header found.')
-
- self.stdout.write(self.style.SUCCESS('sendmails custom command executed'))
|