Browse Source

Création interface modif distances

master
Christophe SCAYA 3 years ago
parent
commit
b38a9b8ec9
  1. 36
      app/templates/app/distances.html
  2. 3
      app/urls.py
  3. 43
      app/views.py

36
app/templates/app/distances.html

@ -0,0 +1,36 @@ @@ -0,0 +1,36 @@
{% extends 'admin_template.html' %}{% block 'contenu' %}
<form id="form" action="{% url "app:admin-distances" %}" method="POST">{% csrf_token %}
<table class="table">
<thead>
<tr>
<th scope="col" ></th>{% for row in data %}
<th scope="col">{{row.zone.nom}}</th>{% endfor %}
</tr>
</thead>
<tbody>{% for row in data %}
<tr>
<td>{{row.zone.nom}}</td>{% for col in row.distances %}
{% if col.class != "table-secondary" %}
<td class="{{col.class}}"><input type="number" name="{{col.ref}}" onchange="changeHandler(event)" class="form-control" maxlength="2" value="{{col.value}}"></td>
{% else %}
<td class="{{col.class}}">{{col.value}}</td>
{% endif %}{% endfor %}
</tr>{% endfor %}
</tbody>
</table>
<input id="update" type="submit" value="Valider">
<input type="button" value="Reset" onclick="resetForm()">
</form>
<script>
function resetForm() {
document.getElementById("form").reset();
var inputs = document.querySelectorAll('input'), i;
for (i = 0; i < inputs.length-2; ++i) {
inputs[i].parentNode.className = "";
}
}
function changeHandler(evt) {
evt.target.parentNode.className = "table-warning";
}
</script>{% endblock %}

3
app/urls.py

@ -7,7 +7,8 @@ urlpatterns = [ @@ -7,7 +7,8 @@ urlpatterns = [
path('', views.displayZone, name='displayZone'),
path('<int:zone_id>/', 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'),
]

43
app/views.py

@ -173,6 +173,49 @@ def dashboard(request): @@ -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

Loading…
Cancel
Save