From d4e41fa90510d574928141d9aa63cdfa8dc12bc5 Mon Sep 17 00:00:00 2001 From: Tony Date: Fri, 12 Nov 2021 14:12:04 -0600 Subject: [PATCH] implemented lineup changes --- lineups/templates/lineups/lineup.html | 2 +- lineups/urls.py | 2 +- lineups/views.py | 19 ++++++++++++++----- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/lineups/templates/lineups/lineup.html b/lineups/templates/lineups/lineup.html index 51215f0..2181888 100644 --- a/lineups/templates/lineups/lineup.html +++ b/lineups/templates/lineups/lineup.html @@ -9,7 +9,7 @@
{#
    #} -
    + {% csrf_token %} {{ positionings_formset.management_form }} diff --git a/lineups/urls.py b/lineups/urls.py index 051c4a7..e042e57 100644 --- a/lineups/urls.py +++ b/lineups/urls.py @@ -5,5 +5,5 @@ from django.urls import path, include from . import views urlpatterns = [ - path('edit/', views.edit, name="edit lineup"), + path('edit/', views.edit, name="edit lineup"), ] \ No newline at end of file diff --git a/lineups/views.py b/lineups/views.py index 4740967..05860fc 100644 --- a/lineups/views.py +++ b/lineups/views.py @@ -8,7 +8,7 @@ from events.models import Event from players.models import Player # Create your views here. -def edit(request, id): +def edit(request, event_id): if request.method == 'POST': # create a form instance and populate it with data from the request: @@ -18,12 +18,21 @@ def edit(request, id): # 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) + # form.cleaned_data.pop('id') + + if isinstance(form.cleaned_data['id'], Positioning): + positioning_id = form.cleaned_data.pop('id').id #FIXME this is a workaround, not sure why it is necessary + positioning = Positioning.objects.filter(id=positioning_id) + positioning.update(**form.cleaned_data) + did_create = False + else: + positioning = Positioning.objects.create(**form.cleaned_data, event_id=event_id) + did_create = True + return render(request, 'success.html', {'call_back':'edit lineup','id':event_id}, status=200) # return render(request, 'success.html', {'call_back':'schedule'}) - event = Event.objects.get(id=id) + event = Event.objects.get(id=event_id) players = Player.objects.all() - qset = Positioning.objects.filter(event_id=id, order__isnull = False) + qset = Positioning.objects.filter(event_id=event_id, order__isnull = False) formset = PositioningFormSet(queryset=qset) for form in formset: for field in form.fields: