def turnier_create(request): # wurde bisher noch kein Turnier angelegt? aa = Turnier.objects.all() if aa: erstes_turnier = False else: erstes_turnier = True hallenFormSet = inlineformset_factory(Turnier, Spielort, form=SpielorteForm, extra=7, can_delete=False) #akt_turnier = get_object_or_404(Turnier, pk=turnier_id) form_halle = hallenFormSet() form_turnier = TurnierAnlegenForm() if request.method == 'POST': form_turnier = TurnierAnlegenForm(request.POST) # Daten des Forms (forms.py) einlesen if form_turnier.is_valid(): # sind alle Felde richtig eingegeben new_store = form_turnier.save() # inhalt des forms speichern form_halle = hallenFormSet(request.POST, request.FILES, instance=new_store) if form_halle.is_valid(): form_halle.save() q_ab = Spielort.objects.filter(turnier=new_store) #gibt es schon eine Halle für das Turnier? # alle löschen die leer sind for halle in q_ab: if halle.hallen_name == "Halle": # ist die Halle leer dann löschen Spielort.objects.filter(pk=halle.id).delete() q_ab = Spielort.objects.filter(turnier=new_store) # alle Hallen holen if not q_ab: # ist erster leer dann setzten es muss min. eine Halle angelegt sein new_store.spielort_set.create(hallen_name='Halle 1', farbe= '#ffffff') if erstes_turnier: # es wurde das aller erste Turnier angelegt # kein Turnier ist aktiv q_n = Settings.objects.get(pk=1) q_n.aktives_turnier = DEFAULT_STR_KEIN_TURNIER_AKTIV q_n.aktives_turnier_id = '0' q_n.save() #return HttpResponseRedirect('/turnier/') # Ruecksprung return HttpResponseRedirect('/turnier/edit/') # Ruecksprung context = RequestContext(request, { 'erstes_turnier': erstes_turnier, 'form_halle' : form_halle, 'form_turnier' : form_turnier, }) return render(request,'turnier1/turnier_create.html',context)
def turnier_edit(request,turnier_id): hallenFormSet = inlineformset_factory(Turnier, Spielort, form=SpielorteForm, extra=7, can_delete=False) akt_turnier = get_object_or_404(Turnier, pk=turnier_id) form_halle = hallenFormSet(instance=akt_turnier) form_turnier = TurnierAnlegenForm(instance=akt_turnier) if request.method == 'POST': form_turnier = TurnierAnlegenForm(request.POST,instance=akt_turnier) # Daten des Forms (forms.py) einlesen if form_turnier.is_valid(): # sind alle Felde richtig eingegeben # Daten aus dem Form auslesen und auf DB Schreiben new_store = form_turnier.save() # falls sich das aktive Turnier geändert hat muss auch das aktualisiert werden q_settings = Settings.objects.get(pk=1) q_turnier = Turnier.objects.get(pk=turnier_id) # der name des aktiven turniers muss aktualsiert werden if (q_settings.aktives_turnier_id == turnier_id): q_settings.aktives_turnier = q_turnier.turnier_name q_settings.save() form_halle = hallenFormSet(request.POST, request.FILES, instance=new_store) if form_halle.is_valid(): form_halle.save() # wenn leer wurde keine Halle angelegt q_ab = Spielort.objects.filter(turnier=new_store) #gibt es schon eine Halle für das Turnier? # alle löschen die leer sind for halle in q_ab: if halle.hallen_name == 'Halle': # ist die Halle leer dann löschen Spielort.objects.filter(pk=halle.id).delete() q_ab = Spielort.objects.filter(turnier=new_store) # alle Hallen holen if not q_ab: # ist erster leer dann setzten new_store.spielort_set.create(hallen_name='Halle 1', farbe='#ffffff') return HttpResponseRedirect('/turnier/edit/') # Ruecksprung context = RequestContext(request, { 'akt_turnier': akt_turnier, 'turnier_id' : turnier_id, 'form_halle' : form_halle, 'form_turnier' : form_turnier, }) return render(request,'turnier1/turnier_edit.html',context)