Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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)