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' %} +
{% csrf_token %} + + + +{% for row in data %} +{% endfor %} + + +{% for row in data %} + +{% for col in row.distances %} +{% if col.class != "table-secondary" %} + +{% else %} + +{% endif %}{% endfor %} +{% endfor %} + +
{{row.zone.nom}}
{{row.zone.nom}}{{col.value}}
+ + +
+{% 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