From ff4b1b59b7c221dbaeb1180cd24226aa688c4ac6 Mon Sep 17 00:00:00 2001 From: Thomas Bouquet <thomas.bouquet@student-cs.fr> Date: Sat, 6 Mar 2021 12:33:23 +0100 Subject: [PATCH] Ajout du classement du sprint + bonne date --- back/src/controllers/equipe.controller.js | 16 ++++- back/src/routes/api.js | 1 + front/src/components/Classement.js | 9 +++ .../components/Classement/ClassementSprint.js | 65 +++++++++++++++++++ .../LeaderboardSB/ClassementEquipe.js | 2 +- .../LeaderboardSB/ClassementIndividuel.js | 2 +- front/src/components/Login/SubmitForm.js | 2 +- 7 files changed, 93 insertions(+), 4 deletions(-) create mode 100644 front/src/components/Classement/ClassementSprint.js diff --git a/back/src/controllers/equipe.controller.js b/back/src/controllers/equipe.controller.js index 829dca1b..b4fc9067 100644 --- a/back/src/controllers/equipe.controller.js +++ b/back/src/controllers/equipe.controller.js @@ -50,6 +50,20 @@ function getClassementEquipe(req, res) { con.end(); } +function getSprint(req, res) { + var con = mysql.createConnection(dbConfig); + var query = "Equipe.name as name,score FROM Score JOIN Equipe ON Equipe.id=Score.equipeId WHERE (Equipe.deleted = 0 AND (Score.deleted = 0 AND Score.participantId = 'sprint')) ORDER BY score DESC;" + con.connect(); + con.query(query, (err, result) => { + if (err) { + console.log(err) + return res.send({ success: false }) + } + return res.send(result) + }); + con.end(); +} + function getEquipes(req, res) { var con = mysql.createConnection(dbConfig); var query = "SELECT id,name FROM Equipe WHERE deleted = 0 ORDER BY name ASC;" @@ -124,4 +138,4 @@ function deleteEquipe(req, res) { } -module.exports = { getClassementEquipe, getEquipes, addNewEquipe, updateEquipe, deleteEquipe, getEquipesByUserId } +module.exports = { getClassementEquipe, getEquipes, addNewEquipe, updateEquipe, deleteEquipe, getEquipesByUserId, getSprint } diff --git a/back/src/routes/api.js b/back/src/routes/api.js index 492c5485..c00bcef7 100644 --- a/back/src/routes/api.js +++ b/back/src/routes/api.js @@ -20,6 +20,7 @@ router.get('/nombre_participants', controller.participant.getNombreParticipants) router.get('/participants_by_id', controller.participant.getParticipantsById); router.get('/participants_ids', controller.participant.getParticipantsIdentifiants); router.get('/my_scores', controller.participant.getResultatsPersonnels); +router.get('/sprint', controller.equipe.getSprint) router.get('/administrateurs/login', controller.administrateur.getAdminsLogins); router.get('/staffeurs/login', controller.staffeurs.getStaffeursLogins); diff --git a/front/src/components/Classement.js b/front/src/components/Classement.js index bf0258c0..f3c00ef6 100644 --- a/front/src/components/Classement.js +++ b/front/src/components/Classement.js @@ -2,6 +2,7 @@ import React, { Component } from "react"; import { MDBContainer, MDBRow, MDBCol, MDBTabPane, MDBTabContent, MDBNav, MDBNavItem, MDBNavLink, MDBIcon } from "mdbreact"; import ClassIndiv from './Classement/ClassementIndividuel'; import ClassEquipe from './Classement/ClassementEquipe'; +import ClassSprint from './Classement/ClassementSprint'; class Classement extends Component { state = { @@ -38,6 +39,11 @@ class Classement extends Component { <MDBIcon icon="users" className="mr-1" /> Associations </MDBNavLink> </MDBNavItem> + <MDBNavItem> + <MDBNavLink link to="#" active={this.state.items["default"] === "3"} onClick={this.togglePills("default", "3")} > + <MDBIcon icon="running" className="mr-1" /> Sprint + </MDBNavLink> + </MDBNavItem> </MDBNav> <MDBTabContent activeItem={this.state.items["default"]}> <MDBTabPane tabId="1"> @@ -46,6 +52,9 @@ class Classement extends Component { <MDBTabPane tabId="2"> <ClassEquipe /> </MDBTabPane> + <MDBTabPane tabId="2"> + <ClassSprint /> + </MDBTabPane> </MDBTabContent> </MDBCol> </MDBRow> diff --git a/front/src/components/Classement/ClassementSprint.js b/front/src/components/Classement/ClassementSprint.js new file mode 100644 index 00000000..a5339b21 --- /dev/null +++ b/front/src/components/Classement/ClassementSprint.js @@ -0,0 +1,65 @@ +import React, { useState, useEffect } from 'react'; +import axios from 'axios'; +import { MDBDataTableV5 } from 'mdbreact'; +import eventData from "../../eventData/eventData.json"; + +export default function ClassEquipe() { + + var data = []; + var [participants,setParticipants] = useState([]); + useEffect(() => { + const interval = setInterval(() => { + axios.get('/api/sprint').then((response) => setParticipants(response.data)); + }, 500); + return () => clearInterval(interval); + }, []); + + function RefreshData() { + var i = 1; + participants.map((item) => + data.push( + { + rank: i++, + association: item.name, + distance: item.score, + dons: Math.trunc(item.score*eventData.argentParMetre)+" €" + }, + ) + ); + return({ + columns: [ + { + label: '# Rang', + field: 'rank', + sort: 'disabled', + width: 100, + }, + { + label: 'Association', + field: 'association', + width: 150, + sort: 'disabled', + attributes: { + 'aria-controls': 'DataTable', + 'aria-label': 'Association', + }, + }, + { + label: 'Distance (m)', + field: 'distance', + sort: 'disabled', + width: 100, + }, + { + label: 'Dons rapportés', + field: 'dons', + sort: 'disabled', + width: 100, + }, + ], + rows: data}) + } + + + return <MDBDataTableV5 paging={false} hover striped info={false} data={RefreshData()} searchLabel="Rechercher" responsiveLg />; +} \ No newline at end of file diff --git a/front/src/components/LeaderboardSB/ClassementEquipe.js b/front/src/components/LeaderboardSB/ClassementEquipe.js index f9320858..058b1ad6 100644 --- a/front/src/components/LeaderboardSB/ClassementEquipe.js +++ b/front/src/components/LeaderboardSB/ClassementEquipe.js @@ -22,7 +22,7 @@ const BasicTable = () => { <tr> <th>#</th> <th>Association</th> - <th>Distance</th> + <th>Distance (m)</th> <th>Participants</th> </tr> </MDBTableHead> diff --git a/front/src/components/LeaderboardSB/ClassementIndividuel.js b/front/src/components/LeaderboardSB/ClassementIndividuel.js index f7290b45..100eef11 100644 --- a/front/src/components/LeaderboardSB/ClassementIndividuel.js +++ b/front/src/components/LeaderboardSB/ClassementIndividuel.js @@ -22,7 +22,7 @@ const BasicTable = () => { <th>#</th> <th>Rameuse/Rameur</th> <th>Association(s)</th> - <th>Distance</th> + <th>Distance (m)</th> </tr> </MDBTableHead> <MDBTableBody> diff --git a/front/src/components/Login/SubmitForm.js b/front/src/components/Login/SubmitForm.js index 0f9b0ffa..267ac754 100644 --- a/front/src/components/Login/SubmitForm.js +++ b/front/src/components/Login/SubmitForm.js @@ -9,7 +9,7 @@ function Submit(props) { var realId; var realName; - if (timenow < 0/*eventData.dateFin*/) { + if (timenow <= eventData.dateFin) { realId = props.participant.value; realName = props.participant.label } -- GitLab