filter context for mails for relevant data

This commit is contained in:
Benni Bärmann 2021-01-14 14:20:17 +01:00
parent 92f3896e7b
commit ab261c6118
1 changed files with 10 additions and 5 deletions

View File

@ -20,7 +20,7 @@ class EvaFormView(CookieWizardView):
template_name = 'evapp/employee_form.html'
form_list = [PersonalForm, WorkingForm, ITForm, OfficeForm, DummyForm]
instance = None
data = {}
# data = {}
# we need this to display all the data in the last step
def get_context_data(self, form, **kwargs):
@ -35,24 +35,29 @@ class EvaFormView(CookieWizardView):
return self.instance
def done(self, form_list, **kwargs):
# form = form_list[0] #.save()
print ('INSTANCE_DICT')
print(self.instance_dict)
# save data to database
for form in form_list:
form.save()
# send data to departments
for dep in MAILS:
self.send_mail_to_department(dep)
return HttpResponseRedirect('success')
# send a mail to the department with all needed data
def send_mail_to_department(self, department):
'send a mail to the given department with the nececcary notifications'
print(f'send mail to department {department}...')
# TODO: don't send ALL the data
context = {'data': self.data}
# only the relevant data should be in the context
data = self.get_all_cleaned_data()
newdata = {k: v for k, v in data.items() if (k in MAILS[department]['DATA'])}
context = {'data': newdata}
try:
mail_template = get_template(f'evapp/{department}_mail.txt')
@ -63,7 +68,7 @@ class EvaFormView(CookieWizardView):
[MAILS[department]['MAIL']],
fail_silently=False)
except BadHeaderError:
self.insatnce.delete()
self.instance.delete()
return HttpResponse('Invalid header found. Data not saved!')
except SMTPException:
self.instance.delete()