Browse Source

Prihlaska | logovani do souboru + bugfixy

export_seznamu_prednasek
parent
commit
4f8e98096e
  1. 22
      mamweb/settings_common.py
  2. 2
      mamweb/settings_prod.py
  3. 2
      mamweb/settings_test.py
  4. 2
      seminar/forms.py
  5. 20
      seminar/views.py

22
mamweb/settings_common.py

@ -218,10 +218,14 @@ LOGGING = {
'handlers': ['console'], 'handlers': ['console'],
'level': 'DEBUG', 'level': 'DEBUG',
}, },
'seminar.prihlaska':{ 'seminar.prihlaska.form':{
'handlers': ['console','registration_logfile'], 'handlers': ['console','registration_logfile'],
'level': 'INFO' 'level': 'INFO'
}, },
'seminar.prihlaska.problem':{
'handlers': ['console','mail_registration','registration_error_log'],
'level': 'INFO'
},
# Catch-all logger # Catch-all logger
'': { '': {
@ -244,12 +248,24 @@ LOGGING = {
'class': 'django.utils.log.AdminEmailHandler', 'class': 'django.utils.log.AdminEmailHandler',
'formatter': 'verbose', 'formatter': 'verbose',
}, },
'mail_registraion': {
'level': 'WARN',
'class': 'django.utils.log.AdminEmailHandler',
'formatter': 'verbose',
},
'registration_logfile':{ 'registration_logfile':{
'level': 'INFO', 'level': 'INFO',
'class': 'logging.FileHandler', 'class': 'logging.FileHandler',
'filename': 'registration.log', # filename declared in specific configuration files
'formatter': 'verbose', 'formatter': 'verbose',
} },
'registration_error_log':{
'level': 'INFO',
'class': 'logging.FileHandler',
# filename declared in specific configuration files
'formatter': 'verbose',
},
}, },
} }

2
mamweb/settings_prod.py

@ -61,6 +61,8 @@ CSRF_COOKIE_SECURE = True
LOGGING['loggers']['']['handlers'] = ['console', 'mail_admins'] LOGGING['loggers']['']['handlers'] = ['console', 'mail_admins']
LOGGING['loggers']['django']['handlers'] = ['console', 'mail_admins'] LOGGING['loggers']['django']['handlers'] = ['console', 'mail_admins']
LOGGING['handlers']['registration_logfile']['filename'] = '/home/mam-web/logs/prod/registration.log'
LOGGING['handlers']['registration_error_log']['filename'] = '/home/mam-web/logs/prod/registration_errors.log'
# E-MAIL NOTIFICATIONS # E-MAIL NOTIFICATIONS

2
mamweb/settings_test.py

@ -65,3 +65,5 @@ CSRF_COOKIE_SECURE = True
LOGGING['loggers']['']['handlers'] = ['console', 'mail_admins'] LOGGING['loggers']['']['handlers'] = ['console', 'mail_admins']
LOGGING['loggers']['django']['handlers'] = ['console', 'mail_admins'] LOGGING['loggers']['django']['handlers'] = ['console', 'mail_admins']
LOGGING['handlers']['registration_logfile']['filename'] = '/home/mam-web/logs/test/registration.log'
LOGGING['handlers']['registration_error_log']['filename'] = '/home/mam-web/logs/test/registration_errors.log'

2
seminar/forms.py

@ -86,6 +86,7 @@ class PrihlaskaForm(forms.Form):
except ObjectDoesNotExist: except ObjectDoesNotExist:
pass pass
return username
def clean_email(self): def clean_email(self):
err_logger = logging.getLogger('seminar.prihlaska.problem') err_logger = logging.getLogger('seminar.prihlaska.problem')
@ -98,6 +99,7 @@ class PrihlaskaForm(forms.Form):
except ObjectDoesNotExist: except ObjectDoesNotExist:
pass pass
return email
def clean(self): def clean(self):

20
seminar/views.py

@ -1026,24 +1026,16 @@ def logoutView(request):
return render(request, 'seminar/login.html', {'form': form}) return render(request, 'seminar/login.html', {'form': form})
def prihlaska_log_gdpr_safe(logger, gdpr_logger, msg, form_data):
msg = "{}, form_hash:{}".format(msg,hash(form_data))
logger.warn(msg)
gdpr_logger.warn(msg+", form:{}".format(form_data))
def prihlaskaView(request): def prihlaskaView(request):
generic_logger = logging.getLogger('seminar.prihlaska')
err_logger = logging.getLogger('seminar.prihlaska.problem') err_logger = logging.getLogger('seminar.prihlaska.problem')
form_logger = logging.getLogger('seminar.prihlaska.form') form_logger = logging.getLogger('seminar.prihlaska.form')
if request.method == 'POST': if request.method == 'POST':
form = PrihlaskaForm(request.POST) form = PrihlaskaForm(request.POST)
# TODO vyresit, co se bude v jakych situacich zobrazovat
if form.is_valid(): if form.is_valid():
generic_logger.info("Form valid")
fcd = form.cleaned_data fcd = form.cleaned_data
form_hash = hash(fcd) form_hash = hash(frozenset(fcd.items()))
form_logger.info(fcd,form_hash=form_hash) fcd["hash"] = form_hash
form_logger.info(fcd)
with transaction.atomic(): with transaction.atomic():
u = User.objects.create_user( u = User.objects.create_user(
@ -1072,8 +1064,7 @@ def prihlaskaView(request):
o.stat = fcd['stat'] o.stat = fcd['stat']
else: else:
# Unknown country - log it # Unknown country - log it
msg = "Unknown country {}".format(fcd['stat_text']) err_logger.warn("Unknown country {}. Form hash:{}".format(fcd['stat_text'],form_hash))
err_logger.warn(msg,form_hash=form_hash)
o.save() o.save()
o.user = u o.user = u
@ -1090,8 +1081,7 @@ def prihlaskaView(request):
r.skola = fcd['skola'] r.skola = fcd['skola']
else: else:
# Unknown school - log it # Unknown school - log it
msg = "Unknown school {}, {}".format(fcd['skola_nazev'],fcd['skola_adresa']) err_logger.warn("Unknown school {}, {}. Form hash:{}".format(fcd['skola_nazev'],fcd['skola_adresa'],form_hash))
err_logger.warn(msg,form_hash=form_hash)
r.save() r.save()

Loading…
Cancel
Save