diff --git a/.gitignore b/.gitignore
index cab46f5..843e064 100644
--- a/.gitignore
+++ b/.gitignore
@@ -33,3 +33,4 @@ yarn-error.log*
# Local Netlify folder
.netlify
functions/next_*
+.env
diff --git a/pages/vote/[pid]/[[...tid]].jsx b/pages/vote/[pid]/[[...tid]].jsx
index 28ee186..943f472 100644
--- a/pages/vote/[pid]/[[...tid]].jsx
+++ b/pages/vote/[pid]/[[...tid]].jsx
@@ -8,6 +8,7 @@ import { toast, ToastContainer } from "react-toastify";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { faCheck } from "@fortawesome/free-solid-svg-icons";
import { getDetails, castBallot, apiErrors } from "@services/api";
+import Error from "@components/Error";
import { translateGrades } from "@services/grades";
import config from "../../../next-i18next.config.js";
@@ -17,8 +18,14 @@ export async function getServerSideProps({ query: { pid, tid }, locale }) {
const [res, translations] = await Promise.all([
getDetails(
pid,
- (res) => ({ ok: true, ...res }),
- (err) => ({ ok: false, err })
+ (res) => {
+ console.log("DETAILS:", res);
+ return { ok: true, ...res };
+ },
+ (err) => {
+ console.log("ERR:", err);
+ return { ok: false, err: "Unknown error" };
+ }
),
serverSideTranslations(locale, [], config),
]);
diff --git a/services/api.js b/services/api.js
index 8f77576..5939a14 100644
--- a/services/api.js
+++ b/services/api.js
@@ -146,9 +146,12 @@ const getDetails = (pid, successCallback, failureCallback) => {
return fetch(detailsEndpoint.href)
.then((response) => {
if (!response.ok) {
+ console.log("NOK", response);
return Promise.reject(response.text());
}
- return response.json();
+ const res = response.json();
+ console.log("OK", res);
+ return res;
})
.then(successCallback || ((res) => res))
.catch(failureCallback || ((err) => err));
diff --git a/src/App.css b/src/App.css
deleted file mode 100644
index e69de29..0000000
diff --git a/src/App.jsx b/src/App.jsx
deleted file mode 100644
index f934cd1..0000000
--- a/src/App.jsx
+++ /dev/null
@@ -1,20 +0,0 @@
-import React from "react";
-
-import Routes from "./Routes";
-import Header from "./components/layouts/Header";
-import Footer from "./components/layouts/Footer";
-import AppContextProvider from "./AppContext";
-
-function App() {
- return (
- {props.value}
-
-
- {t( - "Voters received a link to vote by email. Each link can be used only once!" - )} -
- > - ) : ( - <> -{t("Voting address")}
-{t("Results address")}
-- Un principe simple et intuitif, qui change tout : l’électeur vote - en donnant son avis sur toutes les candidatures présentées, leur - attribuant la mention de son choix (par exemple. Très bien, Bien, - Assez bien, Passable, Insuffisant, À Rejeter). La candidature - retenue est celle jugée la plus méritante par la majorité de - l’électorat (celui qui obtient la meilleure mention « majoritaire - »). -
-- Le jugement majoritaire est un mode de scrutin inventé par deux - chercheurs Français du Centre National de la Recherche - Scientifique (CNRS) en 2011, Michel Balinski et{" "} - Rida Laraki. -
- -- Une mesure précise de l’opinion des participants au vote, à même - d’éclairer la décision collective. En demandant aux électeurs leur - opinion sur chaque option soumise au vote, on bénéficie de - beaucoup plus d’informations que dans le cadre du scrutin - uninominal qui, résumant l’opinion des électeurs à un choix, - ignore l’essentiel de l’information quant à ce qu’ils pensent. En - agrégeant un grand nombre d’informations, le Jugement Majoritaire - ne produit pas « juste » un gagnant qui obtiendrait la majorité - des voix. Il mesure précisément le crédit porté à chacune des - options et permet d’affiner autant que de pacifier la prise de - décision. -
- -- Le Jugement majoritaire s’applique à tout type de votation - collective, qu’il s’agisse d’élire un candidat, de retenir une ou - plusieurs idées lors d’un atelier collaboratif, de choisir entre - plusieurs projets, de classer les vins, etc. Il peut être utilisé - à toutes les échelles (locale, nationale, internationale) et dans - tous les milieux (écoles, entreprises, associations, coopératives, - collectivités publiques…). -
- -- Cette application de Jugement Majoritaire est ouverte à toute - personne désireuse de prendre une décision collective, entre amis, - entre collègues, entre membres d’un groupe. Elle est libre d’accès - et gratuite. Notre ambition est de vous proposer la meilleure - expérience de prise de décision collective et démocratique. -
- -- Cette application ne convient pas pour les votes à plus de 1000 - votants. Si c’est votre cas, nous vous invitons à nous contacter - par email à l’adresse{" "} - - contact@mieuxvoter.fr - - . Dans le cas d’un vote sur invitation nous vous suggérons de ne - pas dépasser 200 participants (le temps de création du vote peut - prendre quelques minutes). -
- -- Si vous rencontrez un problème en utilisant notre application, - prenez contact avec nous par email à l’adresse « - - app@mieuxvoter.fr - - », et prenez soin de bien décrire le problème rencontré dans votre - message. Ajoutez éventuellement dans votre description le lien de - votre vote. -
- -- Le nombre maximum de votants pour un vote sur invitation est de - 1000 personnes. Si toutefois votre besoin est supérieur à cette - limite, nous vous invitons à nous envoyer un email à l’adresse « - - contact@mieuxvoter.fr - - ». -
- -- Les liens fournis lors de la création de votre vote n’ont pas de - date d’expiration. Conservez-les précieusement afin de pouvoir - consulter les résultat dans le futur. -
- -- Dans le cas d’un vote sur invitation, seules les personnes dont le - courriel a été ajouté à la création du vote reçoivent une - invitation et peuvent donc voter. Chacune des invitations dispose - d’un lien unique auquel est associé un jeton à usage unique. Ce - jeton est détruit aussitôt que la participation au vote de - l’invité est enregistrée. Il garantit donc à l’organisateur que - chaque participant n’a pu voter qu’une seule fois. -
- -- Dans le cas d’un vote public, toute personne peut participer à - l’élection s’il dispose du lien de l’élection. Il n’y a dans ce - cas aucune limite de soumission d’un vote. Une même personne peut - donc voter plusieurs fois. -
- -- Le nombre de votants est indiqué sur la page de résultats de votre - élection. L’identité des votants est quant à elle effacée, afin de - respecter les conditions d’un vote démocratique où l’anonymat - garantit la sincérité des électeurs. -
- -- Une fois votre vote enregistré, vous ne pouvez plus le modifier. - En effet, votre vote étant anonymisé, ce qui nous empêche de faire - le lien entre vous et votre vote. -
- -- Vous ne pouvez pas récupérer un lien pour voter après qu’il vous - soit communiquer. Gardez le précieusement. Cependant si vous avez - le lien pour voter, nous pouvons vous transmettre le lien des - résultats. -
- -- Les candidats ou propositions sont triées de la mention - majoritaire la plus favorable à la plus défavorable. En cas - d’égalité, on calcule alors pour chaque candidat à départager: le - pourcentage d’électeurs attribuant strictement plus que la mention - majoritaire commune et le pourcentage d’électeurs attribuant - strictement moins que la mention majoritaire commune. La plus - grande des 4 valeurs détermine le résultat. -
- -- Afin de garantir la sécurité de vos données, leur transmission est - chiffrée et vos votes sont anonymisés. -
- -- L’application app.mieuxvoter.fr a pour seul et unique but de faire - découvrir le vote au Jugement Majoritaire. Elle n’a pas de but - politique, ni commercial. Mieux Voter attache la plus grande - importance au strict respect de la vie privée, et utilise ces - données uniquement de manière responsable et confidentielle, dans - une finalité précise. -
- -- « Mieux Voter » est une association loi 1901 qui promeut - l’utilisation du Jugement Majoritaire, nouvelle théorie du choix - social, comme un outil pour améliorer les décisions collectives et - les exercices de démocratie participative à l’usage de tous. -
- -
- Vous avez apprécié votre expérience de vote démocratique au
- Jugement Majoritaire ?
- Nous en sommes ravis ! Vous pouvez nous aider en faisant un don à
- l’association ici :
-
Cette Application est éditée par l’association loi 1901 - {" "} - “Mieux Voter” - , dont le siège social est situé au 59 rue Saint-André des Arts, à Paris (75006).
- -- Adresse email : - - contact@mieuxvoter.fr - -
-
- Directeur de la publication
-
Chloé Ridel
-
-
- Les illustrations et graphismes sur cette application sont l’œuvre de l’association Mieux Voter. -
- -- Dernière mise à jour de notre politique de confidentialité - effectuée le 27 avril 2020. -
-- Dans le cadre de la mise à disposition de son application web de - vote au jugement majoritaire, accessible sur Internet à l’adresse - app.mieuxvoter.fr, ci-après l’Application, l’association loi 1901 - « Mieux Voter » , dont le siège social est situé au 59 rue saint - andré des arts, à Paris (75006), ci-après l’Association, est - amenée à collecter et à traiter des informations dont certaines - sont qualifiées de « Données personnelles » . Mieux Voter attache - la plus grande importance au respect de la vie privée, et utilise - ces données uniquement de manière responsable et confidentielle et - dans une finalité précise. -
-- La présente politique de confidentialité détaille les conditions - d’utilisation et de traitement par l’Association des Données - personnelles (ci-après définies) collectées via l’Application. - L’Association s’engage à respecter les dispositions de la loi - n°78-17 du 6 janvier 1978 relative à l’informatique, aux fichiers - et aux libertés modifiée et au Règlement (UE) 2016/679 du - Parlement européen et du Conseil du 27 avril 2016 dit « RGPD » et - prendre toute précaution nécessaire pour préserver la sécurité des - Données personnelles confiées. -
-- En qualité de responsable de traitement, l’Association peut - traiter les Données personnelles. -
-- L’Association recueille sur l’Application les Données personnelles - dans une finalité précise. Ces données sont nécessaires à la - fourniture de notre service. Dans le cadre de la fourniture de ce - service, l’Association traite uniquement les données personnelles - suivantes (définies comme les « Données personnelles ») - strictement nécessaires à la fourniture du service : -
-- {" "} - La finalité de traitement de ces données personnelles est de - permettre à l’Association de fournir le service. Ces données sont - traitées au moment de la création du vote pour envoyer les - invitations et détruites aussitôt les invitations envoyées. Elles - ne sont jamais stockées sur nos serveurs. -
-- L’Association s’engage, au titre de son obligation de moyens, à - prendre toutes les précautions utiles et met en œuvre des mesures - techniques et organisationnelles appropriées en la matière pour - garantir un niveau de sécurité adapté et pour protéger les Données - personnelles contre les altérations, destructions et accès non - autorisés. -
- -{i + 1} | - {/*candidate.label*/} -
-
|
-
# | - {electionGrades.map((grade, i) => { - return ( -- - {grade.label}{" "} - - | - ); - })} -
---|---|
{i + 1} | - {gradeIds - .slice(0) - .reverse() - .map((id, i) => { - const value = candidate.profile[id]; - const percent = ( - (value / numVotes) * - 100 - ).toFixed(1); - return{percent} % | ; - })} -
{t("You can start another election.")}
- -{t("Thanks for your participation.")}
-