Browse Source

Correction bug tableau résultats quand arrivée en direct

Modifications icônes boutons interface
master
scayac 3 months ago
parent
commit
ed1fdecb2a
  1. 35
      templates/course_detail.html
  2. 10
      templates/main.html

35
templates/course_detail.html

@ -81,7 +81,12 @@ @@ -81,7 +81,12 @@
<td>{% if a.temps %}{{ a.temps|seconds_to_hms }}{% endif %}</td>
</tr>
{% empty %}
<tr><td colspan="4">Aucun coureur arrivé.</td></tr>
<tr>
<td>Aucun coureur arrivé.</td>
<td></td>
<td></td>
<td></td>
</tr>
{% endfor %}
</tbody>
</table>
@ -104,14 +109,26 @@ const wsUrl = `${wsScheme}://${window.location.host}/ws/course/${courseId}/`; @@ -104,14 +109,26 @@ const wsUrl = `${wsScheme}://${window.location.host}/ws/course/${courseId}/`;
const socket = new WebSocket(wsUrl);
socket.onmessage = function(e) {
// Recharge juste le tbody via AJAX
fetch(window.location.href, { headers: { 'X-Requested-With': 'XMLHttpRequest' } })
.then(response => response.text())
.then(html => {
const table = document.getElementById('arriveesTable').getElementsByTagName('tbody')[0];
table.innerHTML = html;
$('#arriveesTable').DataTable();
});
// Ajoute dynamiquement la nouvelle ligne reçue via WebSocket
let data;
try {
data = JSON.parse(e.data);
} catch {
return;
}
// Vérifie le format des données reçues
let rowData;
if (Array.isArray(data)) {
rowData = data;
} else if (typeof data === 'object' && data !== null) {
// Transforme l'objet en tableau dans l'ordre attendu
rowData = [data.rang, data.nom || (data.coureur && data.coureur.nom), data.classe || (data.coureur && data.coureur.classe), data.temps];
} else {
// Format inconnu, ignore
return;
}
var dt = $('#arriveesTable').DataTable();
dt.row.add(rowData).draw(false);
};
// Modal confirmation fin de course

10
templates/main.html

@ -38,18 +38,20 @@ @@ -38,18 +38,20 @@
</div>
<div class="card-body d-flex justify-content-center gap-3">
<button class="btn btn-success mb-2" id="btnNewCourse">
<i class="fas fa-plus"></i>
&nbsp;Créer une nouvelle course
<i class="fas fa-plus" title="Créer une nouvelle course"></i>
&nbsp;
<i class="fas fa-running" title="Créer une nouvelle course"></i>
</button>
<a href="{% url 'dossards' %}" class="btn btn-warning mb-2 ml-2">
<i class="fas fa-plus" title="Générer les dossards"></i>
&nbsp;Générer les dossards
&nbsp;
<i class="fas fa-qrcode" title="Générer les dossards"></i>
</a>
<form action="{% url 'logout' %}" method="post" style="display:inline;">
{% csrf_token %}
<input type="hidden" name="next" value="{% url 'login' %}">
<button type="submit" class="btn btn-danger mb-2 ml-2">
<i class="fas fa-sign-out-alt"></i> Déconnexion
<i class="fas fa-sign-out-alt"></i>
</button>
</form>
</div>

Loading…
Cancel
Save