Browse Source

Vytvareni osoby, usera a resitele pri registraci.

export_seznamu_prednasek
parent
commit
c57b99c015
  1. 25
      seminar/forms.py
  2. 73
      seminar/views.py

25
seminar/forms.py

@ -4,7 +4,9 @@ from seminar.models import Resitel
class PrihlaskaForm(forms.Form): class PrihlaskaForm(forms.Form):
jmeno = forms.CharField(label='Jméno', max_length=256, required=True) jmeno = forms.CharField(label='Jméno', max_length=256, required=True)
prijmeni = forms.CharField(label='Příjmení', max_length=256, required=True) prijmeni = forms.CharField(label='Příjmení', max_length=256, required=True)
pohlavi = forms.ChoiceField(label='Pohlaví', username = forms.CharField(label='Přihlašovací jméno', max_length=256, required=True)
# TODO heslo?
pohlavi_muz = forms.ChoiceField(label='Pohlaví',
choices = ((True,'muž'),(False,'žena')), required=True) choices = ((True,'muž'),(False,'žena')), required=True)
email = forms.EmailField(label='E-mail',max_length=256, required=True) email = forms.EmailField(label='E-mail',max_length=256, required=True)
telefon = forms.CharField(label='Telefon',max_length=256, required=False) telefon = forms.CharField(label='Telefon',max_length=256, required=False)
@ -19,23 +21,24 @@ class PrihlaskaForm(forms.Form):
required=False) required=False)
skola_stat_select = forms.ChoiceField(label='Stát', # skola_stat_select = forms.ChoiceField(label='Stát',
choices = (('cz', 'Česká Republika'), # choices = (('cz', 'Česká Republika'),
('sk', 'Slovenská Republika'), # ('sk', 'Slovenská Republika'),
('other', 'Jiné')), # ('other', 'Jiné')),
required=True) # required=True)
kraj_select = forms.ChoiceField(label='Kraj',required=True) # kraj_select = forms.ChoiceField(label='Kraj',required=True)
skola_select = forms.ChoiceField(label='Škola',required=True) # skola_select = forms.ChoiceField(label='Škola',required=True)
#kraj #kraj
#škola #škola
trida = forms.CharField(label='Třída',max_length=10, required=True) # trida = forms.CharField(label='Třída',max_length=10, required=True)
#název školy #název školy
#adresa školy #adresa školy
skola_nazev = forms.CharField(label='Název školy', max_length=256, required=False) # skola_nazev = forms.CharField(label='Název školy', max_length=256, required=False)
skola_adresa = forms.CharField(label='Adresa školy', max_length=256, required=False) # skola_adresa = forms.CharField(label='Adresa školy', max_length=256, required=False)
rok_maturity = forms.IntegerField(label='Rok maturity', min_value=2019, required=True) rok_maturity = forms.IntegerField(label='Rok maturity', min_value=2019, required=True)
zasilat = forms.ChoiceField(label='Kam zasílat čísla a řešení',choices = Resitel.ZASILAT_CHOICES, required=True) zasilat = forms.ChoiceField(label='Kam zasílat čísla a řešení',choices = Resitel.ZASILAT_CHOICES, required=True)
gdpr = forms.BooleanField(label='Souhlasím se zpracováním osobních údajů', required=True) gdpr = forms.BooleanField(label='Souhlasím se zpracováním osobních údajů', required=True)
spam = forms.BooleanField(label='Souhlasím se zasíláním materiálů od MFF UK', required=False)

73
seminar/views.py

@ -9,9 +9,9 @@ from django.utils.translation import ugettext as _
from django.http import Http404,HttpResponseBadRequest,HttpResponseRedirect from django.http import Http404,HttpResponseBadRequest,HttpResponseRedirect
from django.db.models import Q from django.db.models import Q
from django.views.decorators.csrf import ensure_csrf_cookie from django.views.decorators.csrf import ensure_csrf_cookie
from django.contrib.auth import authenticate, login from django.contrib.auth import authenticate, login, get_user_model
from .models import Problem, Cislo, Reseni, Nastaveni, Rocnik, Soustredeni, Organizator, Resitel, Novinky, Soustredeni_Ucastnici, Pohadka, Tema, Clanek from .models import Problem, Cislo, Reseni, Nastaveni, Rocnik, Soustredeni, Organizator, Resitel, Novinky, Soustredeni_Ucastnici, Pohadka, Tema, Clanek, Osoba
#from .models import VysledkyZaCislo, VysledkyKCisluZaRocnik, VysledkyKCisluOdjakziva #from .models import VysledkyZaCislo, VysledkyKCisluZaRocnik, VysledkyKCisluOdjakziva
from . import utils from . import utils
from .unicodecsv import UnicodeWriter from .unicodecsv import UnicodeWriter
@ -951,15 +951,72 @@ def texDownloadView(request, rocnik, cislo):
## Formulare ## Formulare
def prihlaskaView(request): def prihlaskaView(request):
# if this is a POST request we need to process the form data
if request.method == 'POST': if request.method == 'POST':
# create a form instance and populate it with data from the request:
form = PrihlaskaForm(request.POST) form = PrihlaskaForm(request.POST)
# check whether it's valid: # TODO vyresit, co se bude v jakych situacich zobrazovat
if form.is_valid(): if form.is_valid():
# process the data in form.cleaned_data as required print("Form valid")
# ... try:
# redirect to a new URL: # mame jiz email v databazi?
o = Osoba.objects.get(email=form.cleaned_data['email'])
print("Email existuje: {}".format(form.cleaned_data))
# TODO seřvat a nepustit dál
return HttpResponseRedirect('/thanks/')
except ObjectDoesNotExist:
pass
User = get_user_model()
try:
u = User.objects.get(username=form.cleaned_data['username'])
print("Username existuje: {}".format(form.cleaned_data))
# TODO seřvat a nepustit dál
return HttpResponseRedirect('/thanks/')
except ObjectDoesNotExist:
pass
u = User(username=form.cleaned_data['username'])
u.save()
o = Osoba(
jmeno = form.cleaned_data['jmeno'],
prijmeni = form.cleaned_data['prijmeni'],
pohlavi_muz = form.cleaned_data['pohlavi_muz'],
email = form.cleaned_data['email'],
telefon = form.cleaned_data.get('telefon',''),
datum_narozeni = form.cleaned_data.get('datum_narozeni',None),
datum_souhlasu_udaje = date.today(),
datum_registrace = date.today(),
ulice = form.cleaned_data.get('ulice',''),
mesto = form.cleaned_data.get('mesto',''),
psc = form.cleaned_data.get('psc',''),
poznamka = str(form.cleaned_data)
)
if form.cleaned_data.get('spam',False):
o.datum_souhlasu_zasilani = date.today()
if form.cleaned_data.get('stat','') in ('CZ','SK'):
o.stat = form.cleaned_data['stat']
else:
pass
#TODO jak budeme resit jine staty?
o.save()
o.user = u
o.save()
r = Resitel(
rok_maturity = form.cleaned_data['rok_maturity'],
zasilat = form.cleaned_data['zasilat']
)
r.save()
r.osoba = o
#TODO doplnit skolu
r.save()
# TODO logovat jednotlive validni formulare do souboru
print(form.cleaned_data)
return HttpResponseRedirect('/thanks/') return HttpResponseRedirect('/thanks/')
# if a GET (or any other method) we'll create a blank form # if a GET (or any other method) we'll create a blank form

Loading…
Cancel
Save