fixed lineup submission and added message display
This commit is contained in:
@@ -25,6 +25,9 @@ class Positioning(models.Model):
|
|||||||
class Meta:
|
class Meta:
|
||||||
unique_together = ('player', 'event',)
|
unique_together = ('player', 'event',)
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return f"{self.player}; {self.event};"
|
||||||
|
|
||||||
class Availability(models.Model):
|
class Availability(models.Model):
|
||||||
YES = 2
|
YES = 2
|
||||||
MAYBE = 1
|
MAYBE = 1
|
||||||
|
|||||||
@@ -26,6 +26,7 @@
|
|||||||
|
|
||||||
{% endblock %}{% endwith %}
|
{% endblock %}{% endwith %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
{% include 'messages.html' %}
|
||||||
<div id="pills-tabContent" class="container-fluid tab-content my-1" data-toggle="tab">
|
<div id="pills-tabContent" class="container-fluid tab-content my-1" data-toggle="tab">
|
||||||
<div id="event-details" class="tab-pane show active" role="tabpanel" aria-labelledby="event-details-tab">
|
<div id="event-details" class="tab-pane show active" role="tabpanel" aria-labelledby="event-details-tab">
|
||||||
<div>
|
<div>
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ from events.models import Event
|
|||||||
from players.models import Player
|
from players.models import Player
|
||||||
from django.db.models import Case, When
|
from django.db.models import Case, When
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
|
from django.contrib import messages
|
||||||
|
from django.http import HttpResponse
|
||||||
|
|
||||||
def queryset_from_ids(Model, id_list):
|
def queryset_from_ids(Model, id_list):
|
||||||
#https://stackoverflow.com/questions/4916851/django-get-a-queryset-from-array-of-ids-in-specific-order
|
#https://stackoverflow.com/questions/4916851/django-get-a-queryset-from-array-of-ids-in-specific-order
|
||||||
@@ -18,6 +20,7 @@ def edit(request, event_id):
|
|||||||
if request.method == 'POST':
|
if request.method == 'POST':
|
||||||
# create a form instance and populate it with data from the request:
|
# create a form instance and populate it with data from the request:
|
||||||
formset = PositioningFormSet(request.POST)
|
formset = PositioningFormSet(request.POST)
|
||||||
|
is_valid = [f.is_valid() for f in formset]
|
||||||
for form in formset:
|
for form in formset:
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
# process the data in form.cleaned_data as required
|
# process the data in form.cleaned_data as required
|
||||||
@@ -33,8 +36,18 @@ def edit(request, event_id):
|
|||||||
positioning = Positioning.objects.create(**form.cleaned_data, event_id=event_id)
|
positioning = Positioning.objects.create(**form.cleaned_data, event_id=event_id)
|
||||||
did_create = True
|
did_create = True
|
||||||
else:
|
else:
|
||||||
|
messages.error(request, f'Error submitting lineup. {form.instance} {form.errors}')
|
||||||
pass
|
pass
|
||||||
return render(request, 'success.html', {'call_back':'edit lineup','id':event_id, 'errors':[error for error in formset.errors if error]}, status=200)
|
if (True in is_valid) and (False in is_valid):
|
||||||
|
messages.warning(request, 'Lineup partially submitted.')
|
||||||
|
elif (True in is_valid):
|
||||||
|
messages.success(request, 'Lineup submitted successfully.')
|
||||||
|
elif (True not in is_valid):
|
||||||
|
messages.error(request, f'Error submitting lineup.')
|
||||||
|
else:
|
||||||
|
messages.error(request, f'Error submitting lineup.')
|
||||||
|
# return HttpResponse(status=204)
|
||||||
|
# return render(request, 'success.html', {'call_back':'edit lineup','id':event_id, 'errors':[error for error in formset.errors if error]}, status=200)
|
||||||
previous_event = Event.objects.filter(id=event_id-1).first()
|
previous_event = Event.objects.filter(id=event_id-1).first()
|
||||||
|
|
||||||
event = Event.objects.get(id=event_id)
|
event = Event.objects.get(id=event_id)
|
||||||
|
|||||||
22
templates/messages.html
Normal file
22
templates/messages.html
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
{% if messages %}
|
||||||
|
{% for message in messages %}
|
||||||
|
{% if message.tags == 'success' %}
|
||||||
|
<div class="alert alert-success alert-dismissible fade show" role="alert">
|
||||||
|
<i class="bi bi-hand-thumbs-up"></i> {{ message|safe}}
|
||||||
|
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
{% if message.tags == 'error' %}
|
||||||
|
<div class="alert alert-danger alert-dismissible fade show" role="alert">
|
||||||
|
<i class="bi bi-hand-thumbs-down"></i> {{ message|safe}}
|
||||||
|
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
{% if message.tags == 'warning' %}
|
||||||
|
<div class="alert alert-warning alert-dismissible fade show" role="alert">
|
||||||
|
<i class="bi bi-exclamation-triangle"></i> {{ message|safe}}
|
||||||
|
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
Reference in New Issue
Block a user