34 lines
1.5 KiB
Python
34 lines
1.5 KiB
Python
from django.shortcuts import render, redirect, get_object_or_404
|
|
from django.forms import formset_factory
|
|
from .models import Positioning
|
|
from .forms import PositioningFormSet
|
|
from django.http import HttpResponse
|
|
from django import forms
|
|
from events.models import Event
|
|
from players.models import Player
|
|
|
|
# Create your views here.
|
|
def edit(request, id):
|
|
|
|
if request.method == 'POST':
|
|
# create a form instance and populate it with data from the request:
|
|
formset = PositioningFormSet(request.POST)
|
|
for form in formset:
|
|
if form.is_valid():
|
|
# process the data in form.cleaned_data as required
|
|
# ...
|
|
# redirect to a new URL:
|
|
form.cleaned_data.pop('id') #FIXME this is a workaround, not sure why it is necessary
|
|
new_positioning, did_create = Positioning.objects.update_or_create(id=form['id'].data, defaults=form.cleaned_data)
|
|
# return render(request, 'success.html', {'call_back':'schedule'})
|
|
event = Event.objects.get(id=id)
|
|
players = Player.objects.all()
|
|
qset = Positioning.objects.filter(event_id=id, order__isnull = False)
|
|
formset = PositioningFormSet(queryset=qset)
|
|
for form in formset:
|
|
for field in form.fields:
|
|
field
|
|
return render(request, 'lineups/lineup.html', {'title': 'Lineup',
|
|
'event': event,
|
|
'players': players,
|
|
'positionings_formset':formset}) |