Browse Source

Interdiction du scan quand course terminée

master
scayac 2 months ago
parent
commit
58b9a821de
  1. 4
      main/templates/scan.html
  2. 15
      main/views.py

4
main/templates/scan.html

@ -9,6 +9,9 @@
<h6 class="m-0 font-weight-bold text-primary">Scanner un coureur</h6> <h6 class="m-0 font-weight-bold text-primary">Scanner un coureur</h6>
</div> </div>
<div class="card-body"> <div class="card-body">
{% if course and course.fin %}
<div class="alert alert-danger text-center mb-0">Cette course est terminée. Le scan n'est plus possible.</div>
{% else %}
<div id="reader" style="width:100%; max-width:400px; margin:auto;"></div> <div id="reader" style="width:100%; max-width:400px; margin:auto;"></div>
<div class="mt-4 position-relative" style="max-width:400px; margin:auto;"> <div class="mt-4 position-relative" style="max-width:400px; margin:auto;">
<label id="manualCoureurLabel">Saisie manuelle :</label> <label id="manualCoureurLabel">Saisie manuelle :</label>
@ -22,6 +25,7 @@
{% if error %} {% if error %}
<div class="alert alert-danger mt-3">{{ error }}</div> <div class="alert alert-danger mt-3">{{ error }}</div>
{% endif %} {% endif %}
{% endif %}
</div> </div>
</div> </div>
<div class="card shadow mb-4"> <div class="card shadow mb-4">

15
main/views.py

@ -273,6 +273,7 @@ def scan_view(request):
error = None error = None
course = None course = None
if request.method == 'POST' and request.headers.get('x-requested-with') == 'XMLHttpRequest': if request.method == 'POST' and request.headers.get('x-requested-with') == 'XMLHttpRequest':
course_id = request.POST.get('course_id') course_id = request.POST.get('course_id')
qrcode = request.POST.get('qrcode') qrcode = request.POST.get('qrcode')
@ -281,7 +282,9 @@ def scan_view(request):
else: else:
# S'assurer que l'utilisateur scanne uniquement ses propres courses # S'assurer que l'utilisateur scanne uniquement ses propres courses
course = get_object_or_404(Course, id=course_id, owner=request.user) course = get_object_or_404(Course, id=course_id, owner=request.user)
if course.fin:
error = "Cette course est terminée. Le scan n'est plus possible."
else:
# Le QR code contient maintenant l'identifiant unique du Coureur # Le QR code contient maintenant l'identifiant unique du Coureur
coureur = None coureur = None
try: try:
@ -357,17 +360,19 @@ def scan_view(request):
course_id = request.GET.get('course_id') course_id = request.GET.get('course_id')
if course_id: if course_id:
course = get_object_or_404(Course, id=course_id, owner=request.user) course = get_object_or_404(Course, id=course_id, owner=request.user)
if course.fin:
error = "Cette course est terminée. Le scan n'est plus possible."
# Formatage de la date pour affichage JJ/MM/AAAA # Formatage de la date pour affichage JJ/MM/AAAA
date_str = format_date(course.date) if course else '' date_str = format_date(course.date) if course_id and 'course' in locals() else ''
# nombre actuel de scans pour cette course # nombre actuel de scans pour cette course
scan_count = Arrivee.objects.filter(course=course).count() if course else 0 scan_count = Arrivee.objects.filter(course=course).count() if course_id and 'course' in locals() else 0
return render(request, 'scan.html', { return render(request, 'scan.html', {
'title': f'Scan course : {course.nom} ({date_str})' if course else '', 'title': f'Scan course : {course.nom} ({date_str})' if course_id and 'course' in locals() else '',
'courses': courses, 'courses': courses,
'result': result, 'result': result,
'error': error, 'error': error,
'course': course, 'course': course if course_id and 'course' in locals() else None,
'scan_count': scan_count 'scan_count': scan_count
}) })

Loading…
Cancel
Save