From b38a9b8ec9c0397bc680b765f0beb402e5059064 Mon Sep 17 00:00:00 2001
From: Christophe SCAYA <>
Date: Sat, 17 Sep 2022 21:49:41 +0200
Subject: [PATCH] =?UTF-8?q?Cr=C3=A9ation=20interface=20modif=20distances?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/templates/app/distances.html | 36 ++++++++++++++++++++++++++
app/urls.py | 3 ++-
app/views.py | 43 ++++++++++++++++++++++++++++++++
3 files changed, 81 insertions(+), 1 deletion(-)
create mode 100644 app/templates/app/distances.html
diff --git a/app/templates/app/distances.html b/app/templates/app/distances.html
new file mode 100644
index 0000000..6442b27
--- /dev/null
+++ b/app/templates/app/distances.html
@@ -0,0 +1,36 @@
+{% extends 'admin_template.html' %}{% block 'contenu' %}
+
+{% endblock %}
diff --git a/app/urls.py b/app/urls.py
index eb69beb..199be08 100644
--- a/app/urls.py
+++ b/app/urls.py
@@ -7,7 +7,8 @@ urlpatterns = [
path('', views.displayZone, name='displayZone'),
path('/', views.displayZone, name='displayZone'),
path('setEquipe/', views.setEquipe, name='setEquipe'),
+ path('dashboard/', views.dashboard, name='admin-dashboard'),
path('admin-dashboard/', views.dashboard, name='admin-dashboard'),
- path('admin-distances/', views.dashboard, name='admin-distances'),
+ path('admin-distances/', views.distances, name='admin-distances'),
path('dashboard/createNewGame', views.createNewGame, name='createNewGame'),
]
diff --git a/app/views.py b/app/views.py
index a94b81d..815651c 100644
--- a/app/views.py
+++ b/app/views.py
@@ -173,6 +173,49 @@ def dashboard(request):
}
return HttpResponse(template.render(context, request))
+def distances(request):
+ if request.method == 'POST':
+ for key, value in request.POST.items():
+ if key != 'csrfmiddlewaretoken':
+ zone1 = Zone.objects.filter(pk=key.split("_")[0])[0]
+ zone2 = Zone.objects.filter(pk=key.split("_")[1])[0]
+ if value == "":
+ value = 0
+ try:
+ distance = Distance.objects.filter(zone1=zone1,zone2=zone2)[0]
+ distance.distance = int(value)
+ distance.save()
+ except IndexError:
+ distance = Distance(zone1=zone1,zone2=zone2,distance=value)
+ distance.save()
+ try:
+ distance = Distance.objects.filter(zone1=zone2,zone2=zone1)[0]
+ distance.distance = int(value)
+ distance.save()
+ except IndexError:
+ distance = Distance(zone1=zone2,zone2=zone1,distance=value)
+ distance.save()
+ template = loader.get_template('app/distances.html')
+ liste_zones = Zone.objects.all().order_by("id")
+ data = list()
+ for zone_row in liste_zones:
+ row = list()
+ for zone_col in liste_zones:
+ if zone_col.id <= zone_row.id :
+ row.append({"class":"table-secondary","value":""})
+ else:
+ try:
+ distance = Distance.objects.filter(zone1=zone_row,zone2=zone_col)[0]
+ row.append({"class":"","value":distance.distance,"ref":str(zone_row.id)+"_"+str(zone_col.id)})
+ except IndexError:
+ row.append({"class":"","value":"","ref":str(zone_row.id)+"_"+str(zone_col.id)})
+ data.append({"zone":zone_row,"distances":row})
+ context = {
+ 'data':data,
+ 'title': "Gestion des distances",
+ }
+ return HttpResponse(template.render(context, request))
+
"""
Fonction createNewGame
Cette fonction efface les challenges présents en base pour en créer de nouveaux pour chacune des équipes