strange bugs, wrong ideas, not sure what this was all about?!?

This commit is contained in:
Benni Baermann 2020-11-16 15:53:43 +01:00
parent 0df4cc9b93
commit 06a3d727ca
2 changed files with 28 additions and 15 deletions

View file

@ -2,9 +2,13 @@
purpose: gather data from intern(WMDE) and extern(volunteers) forms to create a database ('förderdatenbank') and send emails with links for a questionary. purpose: gather data from intern(WMDE) and extern(volunteers) forms to create a database ('förderdatenbank') and send emails with links for a questionary.
## Should be executed daily ## installation and development setup
python3 manage.py sendmails ln -sr foerderbarometer/settings_development.py foerderbarometer/settings.py
run the development server with
python3 manage.py runserver
## versions used in development ## versions used in development
@ -16,7 +20,7 @@ purpose: gather data from intern(WMDE) and extern(volunteers) forms to create a
## production setup ## production setup
ln -s foerderbarometer/settings_production.py foerderbarometer/settings.py ln -sr foerderbarometer/settings_production.py foerderbarometer/settings.py
edit /secrets.json to contain something similar to edit /secrets.json to contain something similar to
@ -28,14 +32,19 @@ edit foerderbarometer/settings_production.py according to your database setup (t
run the following commands: run the following commands:
python manage.py makemigrations python3 manage.py makemigrations
python manage.py migrate python3 manage.py migrate
python manage.py collectstatic python3 manage.py collectstatic
add to cron at least one time a day: add to cron at least one time a day:
python manage.py sendmails python3 manage.py sendmails
server starts with server starts with
nohup gunicorn --forwarded-allow-ips="*" -b '0:8000' foerderbarometer.wsgi 2&> logfile & nohup gunicorn --forwarded-allow-ips="*" -b '0:8000' foerderbarometer.wsgi 2&> logfile &
Should be executed at least daily e.g. in crontab
python3 manage.py sendmails

View file

@ -1,4 +1,5 @@
from datetime import date from datetime import date
from smtplib import SMTPException
from django.shortcuts import render from django.shortcuts import render
from django.forms import modelformset_factory from django.forms import modelformset_factory
@ -154,19 +155,19 @@ class ExternView(CookieWizardView):
print(data) print(data)
# write data to database # write data to database
form = form.save(commit=False) modell = form.save(commit=False)
# we have to copy the data from the first form here # we have to copy the data from the first form here
# this is a bit ugly code. how can we copy this without explicit writing? # this is a bit ugly code. can we copy this without explicit writing?
form.realname = data['realname'] modell.realname = data['realname']
# form.username = data['username'] # form.username = data['username']
form.email = data['email'] modell.email = data['email']
# write type of form in some cases # write type of form in some cases
if data['choice'] in ('BIB', 'ELIT', 'SOFT'): if data['choice'] in ('BIB', 'ELIT', 'SOFT'):
form.type = data['choice'] modell.type = data['choice']
form.save() form.save()
# add some data to context for mail templates # add some data to context for mail templates
data['pk'] = form.pk data['pk'] = modell.pk
data['urlprefix'] = settings.URLPREFIX data['urlprefix'] = settings.URLPREFIX
data['grant'] = ('LIT', 'SOFT', 'ELIT', 'BIB', 'IFG') data['grant'] = ('LIT', 'SOFT', 'ELIT', 'BIB', 'IFG')
data['DOMAIN'] = ('MAIL', 'LIST') data['DOMAIN'] = ('MAIL', 'LIST')
@ -181,7 +182,7 @@ class ExternView(CookieWizardView):
'Formular ausgefüllt', 'Formular ausgefüllt',
mail_template.render(context), mail_template.render(context),
IF_EMAIL, IF_EMAIL,
[form.email], [data['email']],
fail_silently=False) fail_silently=False)
# - mail to IF with link to accept/decline # - mail to IF with link to accept/decline
mail_template = get_template('input/if_mail.txt') mail_template = get_template('input/if_mail.txt')
@ -193,6 +194,9 @@ class ExternView(CookieWizardView):
fail_silently=False) fail_silently=False)
except BadHeaderError: except BadHeaderError:
return HttpResponse('Invalid header found.') return HttpResponse('Invalid header found. Data not saved!')
except SMTPException:
return HttpResponse('Error in sending mails (propably wrong adress?). Data not saved!')
return done(self.request) return done(self.request)