Add positing and initial data for lineup

This commit is contained in:
2021-11-10 22:04:17 -06:00
parent 06ceeb11a9
commit 1a90df3906
3 changed files with 39 additions and 6 deletions

18
lineups/forms.py Normal file
View File

@@ -0,0 +1,18 @@
from django import forms
from .models import Positioning
from django.forms import modelformset_factory
from crispy_forms.helper import FormHelper, Layout
PositioningFormSet = modelformset_factory(model=Positioning,
fields = ['player', 'position', 'order'],
widgets = {
'order':forms.NumberInput(attrs={'style':'width:6ch'})
})
# class PositioningFormSet(modelformset_factory):
# class Meta:
# model = Positioning
# fields = ['player', 'position', 'order']
# widgets = {
# 'order':forms.NumberInput(attrs={'style':'width:6ch'})
# }

View File

@@ -9,8 +9,10 @@
<div class="row">
<div class="col-6">
{# <ul class="list-group">#}
<form action="#" method="post">
<form action="{% url 'edit lineup' id=event.id%}" method="post">
{% csrf_token %}
{{ positionings_formset.management_form }}
{% for pos in positionings_formset %}
<div class="list-group-item">
<div class="row">

View File

@@ -1,17 +1,30 @@
from django.shortcuts import render
from django.shortcuts import render, redirect, get_object_or_404
from django.forms import formset_factory
from .forms import PositioningForm
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:
new_event, did_create = Positioning.objects.update_or_create(player_id=form['player'].data, event_id=id, defaults=form.cleaned_data)
print (form.cleaned_data)
# return render(request, 'success.html', {'call_back':'schedule'})
event = Event.objects.get(id=id)
players = Player.objects.all()
PositioningFormSet = formset_factory(PositioningForm, extra=9)
formset = PositioningFormSet()
print(event)
qset = Positioning.objects.filter(event_id=id, order__isnull = False)
formset = PositioningFormSet(queryset=qset)
return render(request, 'lineups/lineup.html', {'title': 'Lineup',
'event': event,
'players': players,