Commit cd902360 authored by JonathanMM's avatar JonathanMM

Ajout d'un système de vote

parent e6eb5fa6
...@@ -54,6 +54,10 @@ switch($_GET['action']) ...@@ -54,6 +54,10 @@ switch($_GET['action'])
echo json_encode(getFreeDockResume($codeStation, "-1month", 360)); echo json_encode(getFreeDockResume($codeStation, "-1month", 360));
exit(); exit();
break; break;
case 'vote':
echo json_encode(compterVote($codeStation, $_GET['statut']));
exit();
break;
} }
function getBikeInstantane($codeStation) function getBikeInstantane($codeStation)
...@@ -404,4 +408,20 @@ function getDataFreeDockResume($codeStation, $filtre, $periode) ...@@ -404,4 +408,20 @@ function getDataFreeDockResume($codeStation, $filtre, $periode)
) )
); );
} }
function compterVote($codeStation, $statut)
{
global $pdo;
$vote = null;
if($statut == 'oui')
$vote = 1;
elseif($statut == 'non')
$vote = 0;
else
return false;
$pdo->exec('INSERT INTO signalement (code, estFonctionnel) VALUES ('.$codeStation.', '.$vote.')');
return true;
}
?> ?>
\ No newline at end of file
...@@ -131,9 +131,29 @@ function displayDetails() ...@@ -131,9 +131,29 @@ function displayDetails()
updateGraph(); updateGraph();
} }
function voteOui()
{
vote(true);
}
function voteNon()
{
vote(false);
}
function vote(statut)
{
getData('api.php?action=vote&statut='+(statut ? 'oui' : 'non')+'&codeStation='+codeStation).then(function(data) {
if(data)
alert('Votre vote a été pris en compte');
});
}
$(document).ready( function () { $(document).ready( function () {
$("#dureeGraphiqueSelect").change(changerGraphe); $("#dureeGraphiqueSelect").change(changerGraphe);
$("#typeGraphiqueSelect").change(changerGraphe); $("#typeGraphiqueSelect").change(changerGraphe);
$("#displayDetails").change(displayDetails); $("#displayDetails").change(displayDetails);
$("#boutonFonctionneOui").click(voteOui);
$("#boutonFonctionneNon").click(voteNon);
changerGraphe(); changerGraphe();
}); });
\ No newline at end of file
...@@ -34,6 +34,22 @@ INNER JOIN statusConso c ON c.id = s.idConso ...@@ -34,6 +34,22 @@ INNER JOIN statusConso c ON c.id = s.idConso
WHERE s.code = '.$code.' AND c.date >= "'.$filtreDate.'" WHERE s.code = '.$code.' AND c.date >= "'.$filtreDate.'"
ORDER BY s.code ASC'); ORDER BY s.code ASC');
$statusStation = $requete->fetchAll(); $statusStation = $requete->fetchAll();
//Filtre semaine
$hier = new DateTime("-1week");
$filtreSemaine = $hier->format('Y-m-d H:i:s');
//Signalements
$requete = $pdo->query('SELECT *
FROM signalement
WHERE code = '.$code.' AND dateSignalement >= "'.$filtreSemaine.'"
ORDER BY dateSignalement DESC');
$signalements = $requete->fetchAll();
$resumeSignalement = array(true => 0, false => 0);
foreach($signalements as $sign)
{
$resumeSignalement[$sign['estFonctionnel'] == 1]++;
}
?> ?>
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
...@@ -68,6 +84,22 @@ $statusStation = $requete->fetchAll(); ...@@ -68,6 +84,22 @@ $statusStation = $requete->fetchAll();
<li>Nom : <?php echo $station['name']; ?></li> <li>Nom : <?php echo $station['name']; ?></li>
<li>Date d'ouverture : <?php echo $station['dateOuverture']; ?></li> <li>Date d'ouverture : <?php echo $station['dateOuverture']; ?></li>
<li>Adresse la plus proche (selon <a href="https://adresse.data.gouv.fr/">BAN</a>) : <?php echo $station['adresse']; ?></li> <li>Adresse la plus proche (selon <a href="https://adresse.data.gouv.fr/">BAN</a>) : <?php echo $station['adresse']; ?></li>
<li>Signalement des utilisateurs sur l'état de la station (dernière semaine) :
<?php
if(array_sum($resumeSignalement) == 0)
echo 'Aucun';
else
{
if($resumeSignalement[true] > 0)
echo 'Fonctionne = '.$resumeSignalement[true].'; ';
if($resumeSignalement[false] > 0)
echo 'Ne fonctionne pas = '.$resumeSignalement[false].'; ';
echo 'Dernier signalement : '.($signalements[0]['estFonctionnel'] == 1 ? 'Fonctionne' : 'Ne fonctionne pas').' à '.(new DateTime($signalements[0]['dateSignalement']))->format('d/m H:i');
}
?>
<button id="boutonFonctionneOui">La station fonctionne</button>
<button id="boutonFonctionneNon">La station ne fonctionne pas</button>
</li>
</ul> </ul>
<h2>Graphique</h2> <h2>Graphique</h2>
<select id="typeGraphiqueSelect"> <select id="typeGraphiqueSelect">
......
...@@ -105,6 +105,18 @@ CREATE TABLE `statusConso` ( ...@@ -105,6 +105,18 @@ CREATE TABLE `statusConso` (
`nbFreeEDock` int(11) DEFAULT NULL `nbFreeEDock` int(11) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED; ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED;
-- --------------------------------------------------------
--
-- Structure de la table `signalement`
--
CREATE TABLE `signalement` (
`id` int(11) NOT NULL,
`code` int(11) NOT NULL,
`dateSignalement` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP,
`estFonctionnel` tinyint(1) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --
-- Index pour les tables exportées -- Index pour les tables exportées
-- --
...@@ -136,6 +148,12 @@ ALTER TABLE `status` ...@@ -136,6 +148,12 @@ ALTER TABLE `status`
ALTER TABLE `statusConso` ALTER TABLE `statusConso`
ADD PRIMARY KEY (`id`); ADD PRIMARY KEY (`id`);
--
-- Index pour la table `signalement`
--
ALTER TABLE `signalement`
ADD PRIMARY KEY (`id`);
-- --
-- AUTO_INCREMENT pour les tables exportées -- AUTO_INCREMENT pour les tables exportées
-- --
...@@ -155,6 +173,13 @@ ALTER TABLE `status` ...@@ -155,6 +173,13 @@ ALTER TABLE `status`
-- --
ALTER TABLE `statusConso` ALTER TABLE `statusConso`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
--
-- AUTO_INCREMENT pour la table `signalement`
--
ALTER TABLE `signalement`
MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment