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="row">
<div class="col-6"> <div class="col-6">
{# <ul class="list-group">#} {# <ul class="list-group">#}
<form action="#" method="post"> <form action="{% url 'edit lineup' id=event.id%}" method="post">
{% csrf_token %} {% csrf_token %}
{{ positionings_formset.management_form }}
{% for pos in positionings_formset %} {% for pos in positionings_formset %}
<div class="list-group-item"> <div class="list-group-item">
<div class="row"> <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 django.forms import formset_factory
from .forms import PositioningForm from .models import Positioning
from .forms import PositioningFormSet
from django.http import HttpResponse from django.http import HttpResponse
from django import forms
from events.models import Event from events.models import Event
from players.models import Player from players.models import Player
# Create your views here. # Create your views here.
def edit(request, id): 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) event = Event.objects.get(id=id)
players = Player.objects.all() players = Player.objects.all()
PositioningFormSet = formset_factory(PositioningForm, extra=9) qset = Positioning.objects.filter(event_id=id, order__isnull = False)
formset = PositioningFormSet() formset = PositioningFormSet(queryset=qset)
print(event)
return render(request, 'lineups/lineup.html', {'title': 'Lineup', return render(request, 'lineups/lineup.html', {'title': 'Lineup',
'event': event, 'event': event,
'players': players, 'players': players,