Vytvareni osoby, usera a resitele pri registraci.
This commit is contained in:
		
							parent
							
								
									2f3386e84f
								
							
						
					
					
						commit
						c57b99c015
					
				
					 2 changed files with 79 additions and 19 deletions
				
			
		|  | @ -4,7 +4,9 @@ from seminar.models import Resitel | |||
| class PrihlaskaForm(forms.Form): | ||||
| 	jmeno = forms.CharField(label='Jméno', 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) | ||||
| 	email = forms.EmailField(label='E-mail',max_length=256, required=True) | ||||
| 	telefon = forms.CharField(label='Telefon',max_length=256, required=False) | ||||
|  | @ -19,23 +21,24 @@ class PrihlaskaForm(forms.Form): | |||
| 			required=False) | ||||
| 
 | ||||
| 
 | ||||
| 	skola_stat_select = forms.ChoiceField(label='Stát', | ||||
| 			choices = (('cz', 'Česká Republika'), | ||||
| 				('sk', 'Slovenská Republika'), | ||||
| 				('other', 'Jiné')), | ||||
| 			required=True) | ||||
| 	kraj_select = forms.ChoiceField(label='Kraj',required=True) | ||||
| 	skola_select = forms.ChoiceField(label='Škola',required=True) | ||||
| #	skola_stat_select = forms.ChoiceField(label='Stát', | ||||
| #			choices = (('cz', 'Česká Republika'), | ||||
| #				('sk', 'Slovenská Republika'), | ||||
| #				('other', 'Jiné')), | ||||
| #			required=True) | ||||
| #	kraj_select = forms.ChoiceField(label='Kraj',required=True) | ||||
| #	skola_select = forms.ChoiceField(label='Škola',required=True) | ||||
| 	#kraj | ||||
| 	#š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 | ||||
| 	#adresa školy | ||||
| 	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_nazev = forms.CharField(label='Název š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) | ||||
| 	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) | ||||
| 	spam = forms.BooleanField(label='Souhlasím se zasíláním materiálů od MFF UK', required=False) | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -9,9 +9,9 @@ from django.utils.translation import ugettext as _ | |||
| from django.http import Http404,HttpResponseBadRequest,HttpResponseRedirect | ||||
| from django.db.models import Q | ||||
| 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 . import utils | ||||
| from .unicodecsv import UnicodeWriter | ||||
|  | @ -951,15 +951,72 @@ def texDownloadView(request, rocnik, cislo): | |||
| ## Formulare | ||||
| 
 | ||||
| def prihlaskaView(request): | ||||
| 	# if this is a POST request we need to process the form data | ||||
| 	if request.method == 'POST': | ||||
| 		# create a form instance and populate it with data from the request: | ||||
| 		form = PrihlaskaForm(request.POST) | ||||
| 		# check whether it's valid: | ||||
| 		# TODO vyresit, co se bude v jakych situacich zobrazovat | ||||
| 		if form.is_valid(): | ||||
| 			# process the data in form.cleaned_data as required | ||||
| 			# ... | ||||
| 			# redirect to a new URL: | ||||
| 			print("Form valid") | ||||
| 			try: | ||||
| 				# 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/') | ||||
| 
 | ||||
| 	# if a GET (or any other method) we'll create a blank form | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue