Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
21089be416 | ||
|
|
429b8048a0 |
@@ -9,14 +9,47 @@ body {
|
||||
line-height: 1.6;
|
||||
font-size: 18px;
|
||||
color: #444;
|
||||
background-color: #efefef;
|
||||
padding: 0 10px;
|
||||
font-family: 'Arial'
|
||||
}
|
||||
|
||||
main,
|
||||
form {
|
||||
display: flex;
|
||||
flex-wrap: none;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3 {
|
||||
line-height: 1.2;
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
|
||||
}
|
||||
|
||||
button {
|
||||
cursor: pointer;
|
||||
margin-top: 1em;
|
||||
margin-bottom: 1em;
|
||||
padding: .375rem .75rem;
|
||||
border-width: 0px;
|
||||
border-radius: .5em;
|
||||
background-color: rgb(17, 95, 239);
|
||||
color: white;
|
||||
font-size: 1em;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
button:disabled {
|
||||
cursor: not-allowed;
|
||||
filter: grayscale(100%);
|
||||
}
|
||||
</style>
|
||||
+148
-86
@@ -1,63 +1,83 @@
|
||||
<template>
|
||||
<div>
|
||||
<main>
|
||||
<h1>Compte-rendu de la réunion AMAP</h1>
|
||||
<form @submit.prevent="$emit('submit', $event)">
|
||||
<h2>Les permanences de distribution</h2>
|
||||
<div>
|
||||
1) <b>La notion d’engagement</b> au sein de l’AMAP s’élargit, pour ne pas se restreindre à la
|
||||
<b>La notion d’engagement</b> au sein de l’AMAP s'élargirait, pour ne pas se restreindre à la
|
||||
réalisation de
|
||||
x
|
||||
permanences par an pour les distributions, mais pour l’<b>élargir à d’autres activités</b>, notamment
|
||||
pour
|
||||
les
|
||||
amapiens
|
||||
ne pouvant réaliser, une partie ou l’ensemble de leur permanence dans l’année. Les activités possibles
|
||||
sont :
|
||||
<ul>
|
||||
<li>
|
||||
organiser et réaliser la livraison des fruits d’été et des agrumes,
|
||||
</li>
|
||||
<li>
|
||||
réaliser la distribution des œufs,
|
||||
</li>
|
||||
<li>
|
||||
être Référent d’un resultsproduit.
|
||||
</li>
|
||||
<li>
|
||||
être Référent du local de distribution (si officiellement créé), Référent Impression,
|
||||
Ambassadeur
|
||||
Réseau
|
||||
AMAP, Référent Climatologue, ou Référent des nouveaux amapiens.
|
||||
</li>
|
||||
<li>
|
||||
être Référent panier solidaire.
|
||||
</li>
|
||||
</ul>
|
||||
ne pouvant réaliser, une partie ou l’ensemble de leur permanence dans l’année.
|
||||
|
||||
<div class="question">
|
||||
1.1) Les activités possibles
|
||||
seraient :
|
||||
<ul>
|
||||
<li>
|
||||
organiser et réaliser la livraison des fruits d’été et des agrumes,
|
||||
</li>
|
||||
<li>
|
||||
réaliser la distribution des œufs,
|
||||
</li>
|
||||
<li>
|
||||
être Référent d’un produit.
|
||||
</li>
|
||||
<li>
|
||||
être Référent du local de distribution (si pertinent), Référent Impression,
|
||||
Ambassadeur
|
||||
Réseau
|
||||
AMAP, Référent Climatologue (facilitateur des tensions et dysfonctionnements), ou Référent
|
||||
des
|
||||
nouveaux amapiens.
|
||||
</li>
|
||||
<li>
|
||||
être Référent panier solidaire.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<component :is="questionComponent" question-id="1.1" :results="results" />
|
||||
</div>
|
||||
|
||||
<div class="question">
|
||||
1.2) Parmi les activités citées plus haut, on ajoute également celle d’être Référent d’un produit.
|
||||
|
||||
<component :is="questionComponent" question-id="1.2" :results="results" />
|
||||
</div>
|
||||
|
||||
<div class="question">
|
||||
1.3) On ne change rien, la notion d’engagement ne s’élargit pas, les amapiens doivent réaliser leurs
|
||||
permanences dans l’année.
|
||||
|
||||
<component :is="questionComponent" question-id="1.3" :results="results" />
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<component :is="questionComponent" question-id="1" :results="results"
|
||||
:values="['Je suis ok avec ça.', 'Non, ça n’est pas une bonne idée.']"
|
||||
:colors="['#87E169', '#FF824B']" />
|
||||
</div>
|
||||
|
||||
<div>
|
||||
2) <b>Mesurer le niveau d’engagement de chacun</b> :
|
||||
<br>
|
||||
Propositions :
|
||||
<div>
|
||||
<div class="question">
|
||||
2.1) Estimer les heures que représentent chaque engagement/mission dans un souci d’égalité entre les
|
||||
engagements de chacun.
|
||||
|
||||
<component :is="questionComponent" question-id="2.1" :results="results" />
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<div class="question">
|
||||
2.2) Raisonner en terme de niveau (ex : Niveau 1 : peu de temps à passer → Niveau 4 : beaucoup de
|
||||
temps à passer).
|
||||
|
||||
<component :is="questionComponent" question-id="2.2" :results="results" />
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<div class="question">
|
||||
2.3) Ne pas estimer le nombre d’heures ou le niveau d’engagement, le fait que chacun participe à la
|
||||
vie de l’AMAP est suffisant, pas besoin de regarder dans le détail.
|
||||
|
||||
@@ -65,7 +85,7 @@
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="question">
|
||||
3) <b>« Que faire quand un amapien ne fait pas son quota de permanences de distribution dans
|
||||
l’année ? »</b>
|
||||
<br>
|
||||
@@ -78,30 +98,35 @@
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
4) <b>« Qui vérifie le nombre de permanences réalisées dans l’année et apporte l’information à
|
||||
|
||||
<div class="question">
|
||||
4) <b>« Qui vérifie le nombre de permanences réalisées par chaque amapien dans l’année et apporte
|
||||
l’information à
|
||||
l’AG ? »</b>
|
||||
<component :is="questionComponent" question-id="4" :results="results"
|
||||
:values="['Le référent Climatologue (facilitateur des tensions et dysfonctionnements)', 'L’administrateur Clic’Amap']"
|
||||
:colors="[]" />
|
||||
:colors="['#d6e9fa', '#d6e9fa']" />
|
||||
</div>
|
||||
<div>
|
||||
5) <b>Que faire si un amapien ne peut pas réaliser toutes ses permanences de distributions et ne peut
|
||||
participer à aucune des activités pré-citées ?</b>
|
||||
5) <b>Que faire si un amapien ne peut pas réaliser toutes ses permanences de distributions et ne
|
||||
peut
|
||||
participer à aucune activité pré-citée ?</b>
|
||||
<br>
|
||||
Propositions :
|
||||
<div>
|
||||
5.1) On ajoute le sujet à l’ordre du jour lors d’une AG pour écouter les explications de la personne
|
||||
<div class="question">
|
||||
5.1) On ajoute le sujet à l’ordre du jour lors d’une AG pour écouter les explications de la
|
||||
personne
|
||||
concernant son incapacité à respecter les engagements de l’AMAP.
|
||||
|
||||
<component :is="questionComponent" question-id="5.1" :results="results" />
|
||||
</div>
|
||||
<div>
|
||||
<div class="question">
|
||||
5.2) Un amapien réalise un entretien avec l’amapien concerné pour discuter et lui expliquer son
|
||||
exclusion de l’AMAP.
|
||||
|
||||
<component :is="questionComponent" question-id="5.2" :results="results" />
|
||||
</div>
|
||||
<div>
|
||||
<div class="question">
|
||||
5.3) On n’attend que la prise de conscience vienne de l’amapien.
|
||||
|
||||
<component :is="questionComponent" question-id="5.3" :results="results" />
|
||||
@@ -111,64 +136,83 @@
|
||||
6) <b>« Qui aborde le sujet avec l’amapien concerné ? »</b>
|
||||
<br>
|
||||
Propositions :
|
||||
<div>
|
||||
<div class="question">
|
||||
6.1) Le référent Climatologue (tensions et dysfonctionnements).
|
||||
|
||||
<component :is="questionComponent" question-id="6.1" :results="results" />
|
||||
</div>
|
||||
<div class="question">
|
||||
6.2) Le Référent des nouveaux amapiens (qui gère les arrivées et les départs).
|
||||
|
||||
<component :is="questionComponent" question-id="6.2" :results="results" />
|
||||
</div>
|
||||
<div class="question">
|
||||
6.3) Un amapien tiré au sort
|
||||
|
||||
<component :is="questionComponent" question-id="6.3" :results="results" />
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
7) <b>Pour que chaque amapien aient moins de distributions à faire dans l’année :</b>
|
||||
7) <b>Pour diminuer le nombre de distributions à réaliser dans l’année, pour chaque amapien :</b>
|
||||
<br>
|
||||
Propositions :
|
||||
<div>
|
||||
<div class="question">
|
||||
7.1) Une seule personne par distribution.
|
||||
|
||||
<component :is="questionComponent" question-id="7.1" :results="results" />
|
||||
</div>
|
||||
<div>
|
||||
<div class="question">
|
||||
7.2) Aucune personne pour la distribution.
|
||||
|
||||
<component :is="questionComponent" question-id="7.2" :results="results" />
|
||||
</div>
|
||||
<div>
|
||||
<div class="question">
|
||||
7.3) À certaines distributions un seul amapien (pour les distributions « light »), et à d’autres
|
||||
deux.
|
||||
|
||||
<component :is="questionComponent" question-id="7.3" :results="results" />
|
||||
</div>
|
||||
<div class="question">
|
||||
7.4) On ne change rien, et on reste avec 2 personnes par distribution
|
||||
|
||||
<component :is="questionComponent" question-id="7.4" :results="results" />
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
8) <b>« Est-ce qu'on propose aux amapiens qui sont également producteurs de ne pas faire de permanences
|
||||
de distribution, ou moins ? (ex : Flavie, Alessandro, Laura, Mathieu) »</b>
|
||||
<div class="question">
|
||||
8) <b>« Est-ce qu'on propose aux amapiens qui sont également producteurs de ne pas faire de
|
||||
permanences
|
||||
de distribution, ou bien moins de distributions ? (ex : Flavie, Alessandro, Laura, Mathieu) »</b>
|
||||
|
||||
<component :is="questionComponent" question-id="8" :results="results"
|
||||
:values="['Oui, 2 fois moins de distributions.', 'Oui, l’ensemble de leur distributions.', 'Non.']"
|
||||
:values="['Oui, 2 fois moins de distributions.', 'Oui, aucune distribution', 'Non, autant de distributions que les autres']"
|
||||
:colors="['#4DB544', '#87E169', '#FF824B']" />
|
||||
</div>
|
||||
<div>
|
||||
9) <b>Cas par cas :</b> Colette Payen-Vigne,Valérie Lambert, et Laura Math nous font par de leur
|
||||
impossibilité de réaliser les permanences de distribution les vendredi soir.
|
||||
<div>
|
||||
→ Valérie : Depuis 4 ans elle s’occupe des cerises en été et elle nous dit que ça occupe plus que 4
|
||||
<div class="question">
|
||||
9.1) → Valérie : Depuis 4 ans elle s’occupe des cerises en été et elle nous dit que ça occupe
|
||||
plus
|
||||
que 4
|
||||
distributions, et donc qu’en terme d’engagement, elle fait sa part.
|
||||
|
||||
<component :is="questionComponent" question-id="9-Valérie" :results="results"
|
||||
<component :is="questionComponent" question-id="9.1" :results="results"
|
||||
:values="['Je suis ok avec ça.', 'Non, je ne suis pas d’accord.']"
|
||||
:colors="['#87E169', '#FF824B']" />
|
||||
</div>
|
||||
<div>
|
||||
→ Laura : elle est référente Viande pour la ferme de Bellevue des produits, et nous dit avoir
|
||||
<div class="question">
|
||||
9.2) → Laura : elle est référente Viande pour la ferme de Bellevue des produits, et nous dit
|
||||
avoir
|
||||
trouver une organisation pour faire des permanences de distribution le vendredi soir.
|
||||
|
||||
<component :is="questionComponent" question-id="9-Laura" :results="results"
|
||||
<component :is="questionComponent" question-id="9.2" :results="results"
|
||||
:values="['Je suis ok avec ça.', 'Non, je ne suis pas d’accord.']"
|
||||
:colors="['#87E169', '#FF824B']" />
|
||||
</div>
|
||||
<div>
|
||||
→ Colette : elle propose de distribuer les œufs de temps en temps, pour faire sa part.
|
||||
<div class="question">
|
||||
9.3) → Colette : elle propose de distribuer les œufs de temps en temps, pour faire sa part.
|
||||
|
||||
<component :is="questionComponent" question-id="9-Colette" :results="results"
|
||||
<component :is="questionComponent" question-id="9.3" :results="results"
|
||||
:values="['Je suis ok avec ça.', 'Non, je ne suis pas d’accord.']"
|
||||
:colors="['#87E169', '#FF824B']" />
|
||||
</div>
|
||||
@@ -177,34 +221,35 @@
|
||||
</div>
|
||||
<h2>Règlement des adhésions Alliance</h2>
|
||||
<div>
|
||||
10) <b>Qu’est qu’on fait lorsque qu’après deux relances par mail un amapien n’a pas donné de nouvelles
|
||||
10) <b>Qu’est qu’on fait lorsque qu’après deux relances par mail un amapien n’a pas donné de
|
||||
nouvelles
|
||||
et n’a pas payé son adhésion ?</b>
|
||||
<br>
|
||||
Propositions :
|
||||
<div>
|
||||
<div class="question">
|
||||
10.1) L'AMAP demande à l'amapien de quitter l'AMAP.
|
||||
|
||||
<component :is="questionComponent" question-id="10.1" :results="results" />
|
||||
</div>
|
||||
<div>
|
||||
<div class="question">
|
||||
10.2) Réaliser une relance individuelle par téléphone ou de vive voix.
|
||||
|
||||
<component :is="questionComponent" question-id="10.2" :results="results" />
|
||||
</div>
|
||||
<div>
|
||||
<div class="question">
|
||||
10.3) Réaliser une relance collective par SMS.
|
||||
|
||||
<component :is="questionComponent" question-id="10.3" :results="results" />
|
||||
</div>
|
||||
<div>
|
||||
11) <b>Envoyer le premier appel de paiement d’adhésion par SMS.</b>
|
||||
<div class="question">
|
||||
11) <b>Parmi les personnes en retard pour le paiement de leur adhésion, le dernier retardataire,
|
||||
paye sa bouteille aux autres.</b>
|
||||
|
||||
<component :is="questionComponent" question-id="11" :results="results" :values="['Oui', 'Non']"
|
||||
:colors="['#87E169', '#FF824B']" />
|
||||
</div>
|
||||
<div>
|
||||
12) <b>Parmi les personnes en retard pour le paiement de leur adhésion, le dernier retardataire,
|
||||
paye sa bouteille aux autres.</b>
|
||||
<div class="question">
|
||||
12) <b>Envoyer le premier appel de paiement d’adhésion par SMS.</b>
|
||||
|
||||
<component :is="questionComponent" question-id="12" :results="results" :values="['Oui', 'Non']"
|
||||
:colors="['#87E169', '#FF824B']" />
|
||||
@@ -212,27 +257,28 @@
|
||||
</div>
|
||||
<h2>Récupération des produits le vendredi</h2>
|
||||
<div>
|
||||
13) <b>« Pour la récupération des produits le vendredi soir, combien d’absences sont tolérées par l'AMAP
|
||||
13) <b>« Pour la récupération des produits le vendredi soir, combien d’absences sont tolérées par
|
||||
l'AMAP
|
||||
? »</b>
|
||||
<br>
|
||||
Propositions :;
|
||||
<div>
|
||||
<div class="question">
|
||||
13.1) 1 absence par mois.
|
||||
|
||||
<component :is="questionComponent" question-id="13.1" :results="results" />
|
||||
</div>
|
||||
<div>
|
||||
<div class="question">
|
||||
13.2) 2 absences par mois.
|
||||
|
||||
<component :is="questionComponent" question-id="13.2" :results="results" />
|
||||
</div>
|
||||
<div>
|
||||
<div class="question">
|
||||
13.3) 5 absences par an.
|
||||
|
||||
<component :is="questionComponent" question-id="13.3" :results="results" />
|
||||
</div>
|
||||
<div>
|
||||
13.4) Auècune absences tolérées.
|
||||
<div class="question">
|
||||
13.4) Aucune absence tolérée.
|
||||
|
||||
<component :is="questionComponent" question-id="13.4" :results="results" />
|
||||
</div>
|
||||
@@ -240,37 +286,46 @@
|
||||
14) <b>Gestion des produits livrés le mardi</b>
|
||||
<br>
|
||||
Propositions :
|
||||
<div>
|
||||
<div class="question">
|
||||
14.1) « Réaliser des permanences de distributions aussi le mardi soir (donc le mardi et le
|
||||
vendredi) ? »
|
||||
|
||||
<component :is="questionComponent" question-id="14.1" :results="results" />
|
||||
</div>
|
||||
<div>
|
||||
14.2) Définir la règle suivante : celui qui vient chercher ses produits avant la distribution du
|
||||
vendredi soir doit alors réaliser l’inventaire de l’ensemble des produits livrés des autres
|
||||
<div class="question">
|
||||
14.2) Définir la règle suivante : celui qui vient chercher ses produits avant la
|
||||
distribution du
|
||||
vendredi soir doit alors réaliser l’nventaire du produit livré pour l’ensemble des autres
|
||||
amapiens, et mettre dans les cagettes si nécessaire (ex : boite d’oeufs).
|
||||
|
||||
<component :is="questionComponent" question-id="14.2" :results="results" />
|
||||
</div>
|
||||
<div class="question">
|
||||
14.3) Tout le monde vient chercher ses produits le vendredi et pas avant. Les produits livrés le
|
||||
mardi attendront donc jusqu’à vendredi pour être récupérés.
|
||||
|
||||
<component :is="questionComponent" question-id="14.3" :results="results" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<h2>Annexes</h2>
|
||||
<div>
|
||||
15) <b>L’organisation des sacs individuels pour le pain</b>
|
||||
<div>
|
||||
15.1) Mettre les pains directement dans les cagettes (sans sac) en début de distribution, et ranger
|
||||
<div class="question">
|
||||
15.1) Mettre les pains directement dans les cagettes (sans sac) en début de distribution, et
|
||||
ranger
|
||||
les pains restants, dans les sacs, uniquement en fin de distribution.
|
||||
|
||||
<component :is="questionComponent" question-id="15.1" :results="results" />
|
||||
</div>
|
||||
<div>
|
||||
15.2) Abandonner le principe de sac nominatif, étant donné qu’ils sont placés dans les cagettes (sur
|
||||
<div class="question">
|
||||
15.2) Abandonner le principe de sac nominatif, étant donné qu’ils sont placés dans les cagettes
|
||||
(sur
|
||||
laquelle le nom est déjà inscrit).
|
||||
|
||||
<component :is="questionComponent" question-id="15.2" :results="results" />
|
||||
</div>
|
||||
<div>
|
||||
<div class="question">
|
||||
15.3) Garder le fonctionnement actuel avec sac nominatif dans la cagette, et rangement des pains
|
||||
dans les sacs.
|
||||
|
||||
@@ -279,10 +334,8 @@
|
||||
</div>
|
||||
|
||||
<slot name="submit" />
|
||||
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</main>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
@@ -296,4 +349,13 @@ interface Props {
|
||||
const { questionComponent, results = {} } = defineProps<Props>()
|
||||
|
||||
defineEmits(['submit'])
|
||||
</script>
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.question {
|
||||
background: rgb(255, 255, 255);
|
||||
border-radius: .5em;
|
||||
padding: 1em;
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
</style>
|
||||
@@ -1,5 +1,8 @@
|
||||
<template>
|
||||
<div class="emphased">
|
||||
<div>
|
||||
<input class="hidden" checked ref="input" type="radio" value="unset" :name="questionId">
|
||||
</div>
|
||||
<RadioButton v-for="(val, index) in values" :key="index" :index="index" :question-id="questionId" :val="val"
|
||||
:color="colors[index] ?? 'unset'" />
|
||||
</div>
|
||||
@@ -21,15 +24,29 @@ const { values = ["Très bien", "Bien", "Passable", "Insuffisant", "À rejeter"]
|
||||
<style scoped="true" lang="css">
|
||||
.emphased {
|
||||
position: relative;
|
||||
margin-top: 2em;
|
||||
margin-bottom: 2em;
|
||||
margin-top: 1em;
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
display: inline-flex;
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
|
||||
.emphased div {
|
||||
border-left: 1px solid #444;
|
||||
}
|
||||
|
||||
.emphased div:last-child {
|
||||
border-right: 1px solid #444;
|
||||
border-radius: 0 .5em .5em 0;
|
||||
}
|
||||
|
||||
.emphased div:nth-child(2),
|
||||
.emphased div:first-child {
|
||||
border-radius: .5em 0 0 .5em;
|
||||
border-left: none;
|
||||
}
|
||||
|
||||
|
||||
.hidden {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
@@ -47,8 +47,7 @@ const total = computed(() => (Object.values(filtered_results.value).reduce((acc,
|
||||
<style scoped="true" lang="css">
|
||||
.emphased {
|
||||
position: relative;
|
||||
margin-top: 2em;
|
||||
margin-bottom: 2em;
|
||||
margin-top: 1em;
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
display: inline-flex;
|
||||
@@ -69,14 +68,18 @@ const total = computed(() => (Object.values(filtered_results.value).reduce((acc,
|
||||
|
||||
.emphased div {
|
||||
padding: 3px;
|
||||
border: 1px solid #444;
|
||||
border-right: none;
|
||||
text-overflow: ellipsis;
|
||||
border-left: 1px solid #444;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-wrap: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.emphased div:last-child {
|
||||
border-right: 1px solid #444;
|
||||
border-radius: 0 .5em .5em 0;
|
||||
}
|
||||
|
||||
.emphased div:first-child {
|
||||
border-radius: .5em 0 0 .5em;
|
||||
border-left: none;
|
||||
}
|
||||
</style>
|
||||
@@ -28,7 +28,6 @@ function use() {
|
||||
<style scoped="true">
|
||||
div {
|
||||
padding: 3px;
|
||||
border: 1px solid #444;
|
||||
border-right: none;
|
||||
text-overflow: ellipsis;
|
||||
flex: 1 1 0;
|
||||
|
||||
@@ -3,10 +3,11 @@ export default defineNuxtRouteMiddleware(async (to, _from) => {
|
||||
|
||||
const code = to.query.code;
|
||||
if (to.path === "/poll") {
|
||||
console.log(`${runtimeConfig.public.apiBase}/check/${code}`)
|
||||
const { error } = await useFetch(`${runtimeConfig.public.apiBase}/check/${code}`);
|
||||
if (error.value && error.value.statusCode !== 200) {
|
||||
if(error.value.statusCode == 403){
|
||||
return navigateTo({path:"/results", query:to.query});
|
||||
return navigateTo({path:"/finished", query:to.query});
|
||||
}
|
||||
throw createError({
|
||||
statusCode: error.value.statusCode,
|
||||
@@ -17,7 +18,18 @@ export default defineNuxtRouteMiddleware(async (to, _from) => {
|
||||
return;
|
||||
}
|
||||
|
||||
if(to.path === "/finished"){
|
||||
return
|
||||
}
|
||||
|
||||
if(to.path === "/results"){
|
||||
if(code != "fc6d9f50-68af-4df5-95d4-36745c2938c9"){
|
||||
throw createError({
|
||||
statusCode: 403,
|
||||
statusMessage: "Invalid code",
|
||||
message: "Vous ne pouvez pas accéder aux résultats avec ce code !"
|
||||
});
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
export default defineNuxtConfig({
|
||||
compatibilityDate: '2025-05-15',
|
||||
devtools: { enabled: true },
|
||||
modules: ['@nuxt/eslint'],
|
||||
modules: ['@nuxt/eslint', '@nuxt/image'],
|
||||
runtimeConfig:{
|
||||
public: {
|
||||
apiBase: '/api'
|
||||
|
||||
Generated
+573
@@ -8,6 +8,7 @@
|
||||
"hasInstallScript": true,
|
||||
"dependencies": {
|
||||
"@nuxt/eslint": "^1.4.1",
|
||||
"@nuxt/image": "^1.10.0",
|
||||
"eslint": "^9.27.0",
|
||||
"nuxt": "^3.17.4",
|
||||
"vue": "^3.5.15",
|
||||
@@ -1281,6 +1282,16 @@
|
||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@fastify/accept-negotiator": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@fastify/accept-negotiator/-/accept-negotiator-1.1.0.tgz",
|
||||
"integrity": "sha512-OIHZrb2ImZ7XG85HXOONLcJWGosv7sIvM2ifAPQVhg9Lv7qdmMBNVaai4QTdyuaqbKM5eO6sLSQOYI7wEQeCJQ==",
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"engines": {
|
||||
"node": ">=14"
|
||||
}
|
||||
},
|
||||
"node_modules/@fastify/busboy": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-3.1.1.tgz",
|
||||
@@ -2415,6 +2426,30 @@
|
||||
"eslint": "^9.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@nuxt/image": {
|
||||
"version": "1.10.0",
|
||||
"resolved": "https://registry.npmjs.org/@nuxt/image/-/image-1.10.0.tgz",
|
||||
"integrity": "sha512-/B58GeEmme7bkmQUrXzEw8P9sJb9BkMaYZqLDtq8ZdDLEddE3P4nVya8RQPB+p4b7EdqWajpPqdy1A2ZPLev/A==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@nuxt/kit": "^3.16.0",
|
||||
"consola": "^3.4.2",
|
||||
"defu": "^6.1.4",
|
||||
"h3": "^1.15.1",
|
||||
"image-meta": "^0.2.1",
|
||||
"knitwork": "^1.2.0",
|
||||
"ohash": "^2.0.11",
|
||||
"pathe": "^2.0.3",
|
||||
"std-env": "^3.8.1",
|
||||
"ufo": "^1.5.4"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.20.6"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"ipx": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@nuxt/kit": {
|
||||
"version": "3.17.4",
|
||||
"resolved": "https://registry.npmjs.org/@nuxt/kit/-/kit-3.17.4.tgz",
|
||||
@@ -4928,6 +4963,71 @@
|
||||
"license": "Apache-2.0",
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/bare-fs": {
|
||||
"version": "4.1.5",
|
||||
"resolved": "https://registry.npmjs.org/bare-fs/-/bare-fs-4.1.5.tgz",
|
||||
"integrity": "sha512-1zccWBMypln0jEE05LzZt+V/8y8AQsQQqxtklqaIyg5nu6OAYFhZxPXinJTSG+kU5qyNmeLgcn9AW7eHiCHVLA==",
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"bare-events": "^2.5.4",
|
||||
"bare-path": "^3.0.0",
|
||||
"bare-stream": "^2.6.4"
|
||||
},
|
||||
"engines": {
|
||||
"bare": ">=1.16.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"bare-buffer": "*"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"bare-buffer": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/bare-os": {
|
||||
"version": "3.6.1",
|
||||
"resolved": "https://registry.npmjs.org/bare-os/-/bare-os-3.6.1.tgz",
|
||||
"integrity": "sha512-uaIjxokhFidJP+bmmvKSgiMzj2sV5GPHaZVAIktcxcpCyBFFWO+YlikVAdhmUo2vYFvFhOXIAlldqV29L8126g==",
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"engines": {
|
||||
"bare": ">=1.14.0"
|
||||
}
|
||||
},
|
||||
"node_modules/bare-path": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/bare-path/-/bare-path-3.0.0.tgz",
|
||||
"integrity": "sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==",
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"bare-os": "^3.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/bare-stream": {
|
||||
"version": "2.6.5",
|
||||
"resolved": "https://registry.npmjs.org/bare-stream/-/bare-stream-2.6.5.tgz",
|
||||
"integrity": "sha512-jSmxKJNJmHySi6hC42zlZnq00rga4jjxcgNZjY9N5WlOe/iOoGRtdwGsHzQv2RlH2KOYMwGUXhf2zXd32BA9RA==",
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"streamx": "^2.21.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"bare-buffer": "*",
|
||||
"bare-events": "*"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"bare-buffer": {
|
||||
"optional": true
|
||||
},
|
||||
"bare-events": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/base64-js": {
|
||||
"version": "1.5.1",
|
||||
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
|
||||
@@ -4966,6 +5066,58 @@
|
||||
"url": "https://github.com/sponsors/antfu"
|
||||
}
|
||||
},
|
||||
"node_modules/bl": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
|
||||
"integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"buffer": "^5.5.0",
|
||||
"inherits": "^2.0.4",
|
||||
"readable-stream": "^3.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/bl/node_modules/buffer": {
|
||||
"version": "5.7.1",
|
||||
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
|
||||
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/feross"
|
||||
},
|
||||
{
|
||||
"type": "patreon",
|
||||
"url": "https://www.patreon.com/feross"
|
||||
},
|
||||
{
|
||||
"type": "consulting",
|
||||
"url": "https://feross.org/support"
|
||||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"base64-js": "^1.3.1",
|
||||
"ieee754": "^1.1.13"
|
||||
}
|
||||
},
|
||||
"node_modules/bl/node_modules/readable-stream": {
|
||||
"version": "3.6.2",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
|
||||
"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"inherits": "^2.0.3",
|
||||
"string_decoder": "^1.1.1",
|
||||
"util-deprecate": "^1.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 6"
|
||||
}
|
||||
},
|
||||
"node_modules/boolbase": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
|
||||
@@ -5747,6 +5899,13 @@
|
||||
"node": ">=4"
|
||||
}
|
||||
},
|
||||
"node_modules/cssfilter": {
|
||||
"version": "0.0.10",
|
||||
"resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz",
|
||||
"integrity": "sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==",
|
||||
"license": "MIT",
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/cssnano": {
|
||||
"version": "7.0.7",
|
||||
"resolved": "https://registry.npmjs.org/cssnano/-/cssnano-7.0.7.tgz",
|
||||
@@ -5931,6 +6090,32 @@
|
||||
"callsite": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/decompress-response": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz",
|
||||
"integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==",
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"mimic-response": "^3.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/deep-extend": {
|
||||
"version": "0.6.0",
|
||||
"resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
|
||||
"integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"engines": {
|
||||
"node": ">=4.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/deep-is": {
|
||||
"version": "0.1.4",
|
||||
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
|
||||
@@ -7223,6 +7408,16 @@
|
||||
"url": "https://github.com/sindresorhus/execa?sponsor=1"
|
||||
}
|
||||
},
|
||||
"node_modules/expand-template": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
|
||||
"integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==",
|
||||
"license": "(MIT OR WTFPL)",
|
||||
"optional": true,
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/exsolve": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/exsolve/-/exsolve-1.0.5.tgz",
|
||||
@@ -7550,6 +7745,13 @@
|
||||
"node": ">= 0.8"
|
||||
}
|
||||
},
|
||||
"node_modules/fs-constants": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
|
||||
"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==",
|
||||
"license": "MIT",
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/fs.realpath": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
||||
@@ -7722,6 +7924,13 @@
|
||||
"git-up": "^8.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/github-from-package": {
|
||||
"version": "0.0.0",
|
||||
"resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
|
||||
"integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==",
|
||||
"license": "MIT",
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/glob": {
|
||||
"version": "8.1.0",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz",
|
||||
@@ -8154,6 +8363,41 @@
|
||||
"url": "https://opencollective.com/ioredis"
|
||||
}
|
||||
},
|
||||
"node_modules/ipx": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/ipx/-/ipx-2.1.0.tgz",
|
||||
"integrity": "sha512-AVnPGXJ8L41vjd11Z4akIF2yd14636Klxul3tBySxHA6PKfCOQPxBDkCFK5zcWh0z/keR6toh1eg8qzdBVUgdA==",
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"@fastify/accept-negotiator": "^1.1.0",
|
||||
"citty": "^0.1.5",
|
||||
"consola": "^3.2.3",
|
||||
"defu": "^6.1.4",
|
||||
"destr": "^2.0.2",
|
||||
"etag": "^1.8.1",
|
||||
"h3": "^1.10.0",
|
||||
"image-meta": "^0.2.0",
|
||||
"listhen": "^1.5.6",
|
||||
"ofetch": "^1.3.3",
|
||||
"pathe": "^1.1.2",
|
||||
"sharp": "^0.32.6",
|
||||
"svgo": "^3.2.0",
|
||||
"ufo": "^1.3.2",
|
||||
"unstorage": "^1.10.1",
|
||||
"xss": "^1.0.14"
|
||||
},
|
||||
"bin": {
|
||||
"ipx": "bin/ipx.mjs"
|
||||
}
|
||||
},
|
||||
"node_modules/ipx/node_modules/pathe": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz",
|
||||
"integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==",
|
||||
"license": "MIT",
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/iron-webcrypto": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.2.1.tgz",
|
||||
@@ -8992,6 +9236,19 @@
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/mimic-response": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz",
|
||||
"integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==",
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/min-indent": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
|
||||
@@ -9067,6 +9324,13 @@
|
||||
"url": "https://github.com/sponsors/isaacs"
|
||||
}
|
||||
},
|
||||
"node_modules/mkdirp-classic": {
|
||||
"version": "0.5.3",
|
||||
"resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
|
||||
"integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==",
|
||||
"license": "MIT",
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/mlly": {
|
||||
"version": "1.7.4",
|
||||
"resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.4.tgz",
|
||||
@@ -9157,6 +9421,13 @@
|
||||
"integrity": "sha512-9ca1h0Xjvo9bEkE4UOxgAzLV0jHKe6LMaxo37ND2DAhhAtd0j8pR1Wxz+/goMrZO8AEZTWCmyaOsFI/W5AdpCQ==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/napi-build-utils": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-2.0.0.tgz",
|
||||
"integrity": "sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==",
|
||||
"license": "MIT",
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/napi-postinstall": {
|
||||
"version": "0.2.4",
|
||||
"resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.2.4.tgz",
|
||||
@@ -9307,6 +9578,19 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/node-abi": {
|
||||
"version": "3.75.0",
|
||||
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.75.0.tgz",
|
||||
"integrity": "sha512-OhYaY5sDsIka7H7AtijtI9jwGYLyl29eQn/W623DiN/MIv5sUqc4g7BIDThX+gb7di9f6xK02nkp8sdfFWZLTg==",
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"semver": "^7.3.5"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/node-addon-api": {
|
||||
"version": "7.1.1",
|
||||
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz",
|
||||
@@ -10568,6 +10852,95 @@
|
||||
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
|
||||
}
|
||||
},
|
||||
"node_modules/prebuild-install": {
|
||||
"version": "7.1.3",
|
||||
"resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz",
|
||||
"integrity": "sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==",
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"detect-libc": "^2.0.0",
|
||||
"expand-template": "^2.0.3",
|
||||
"github-from-package": "0.0.0",
|
||||
"minimist": "^1.2.3",
|
||||
"mkdirp-classic": "^0.5.3",
|
||||
"napi-build-utils": "^2.0.0",
|
||||
"node-abi": "^3.3.0",
|
||||
"pump": "^3.0.0",
|
||||
"rc": "^1.2.7",
|
||||
"simple-get": "^4.0.0",
|
||||
"tar-fs": "^2.0.0",
|
||||
"tunnel-agent": "^0.6.0"
|
||||
},
|
||||
"bin": {
|
||||
"prebuild-install": "bin.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
}
|
||||
},
|
||||
"node_modules/prebuild-install/node_modules/chownr": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
|
||||
"integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
|
||||
"license": "ISC",
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/prebuild-install/node_modules/detect-libc": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz",
|
||||
"integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==",
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/prebuild-install/node_modules/readable-stream": {
|
||||
"version": "3.6.2",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
|
||||
"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"inherits": "^2.0.3",
|
||||
"string_decoder": "^1.1.1",
|
||||
"util-deprecate": "^1.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 6"
|
||||
}
|
||||
},
|
||||
"node_modules/prebuild-install/node_modules/tar-fs": {
|
||||
"version": "2.1.3",
|
||||
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.3.tgz",
|
||||
"integrity": "sha512-090nwYJDmlhwFwEW3QQl+vaNnxsO2yVsd45eTKRBzSzu+hlb1w2K9inVq5b0ngXuLVqQ4ApvsUHHnu/zQNkWAg==",
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"chownr": "^1.1.1",
|
||||
"mkdirp-classic": "^0.5.2",
|
||||
"pump": "^3.0.0",
|
||||
"tar-stream": "^2.1.4"
|
||||
}
|
||||
},
|
||||
"node_modules/prebuild-install/node_modules/tar-stream": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
|
||||
"integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"bl": "^4.0.3",
|
||||
"end-of-stream": "^1.4.1",
|
||||
"fs-constants": "^1.0.0",
|
||||
"inherits": "^2.0.3",
|
||||
"readable-stream": "^3.1.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/precinct": {
|
||||
"version": "12.2.0",
|
||||
"resolved": "https://registry.npmjs.org/precinct/-/precinct-12.2.0.tgz",
|
||||
@@ -10761,6 +11134,39 @@
|
||||
"node": ">= 0.6"
|
||||
}
|
||||
},
|
||||
"node_modules/rc": {
|
||||
"version": "1.2.8",
|
||||
"resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
|
||||
"integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
|
||||
"license": "(BSD-2-Clause OR MIT OR Apache-2.0)",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"deep-extend": "^0.6.0",
|
||||
"ini": "~1.3.0",
|
||||
"minimist": "^1.2.0",
|
||||
"strip-json-comments": "~2.0.1"
|
||||
},
|
||||
"bin": {
|
||||
"rc": "cli.js"
|
||||
}
|
||||
},
|
||||
"node_modules/rc/node_modules/ini": {
|
||||
"version": "1.3.8",
|
||||
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
|
||||
"integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
|
||||
"license": "ISC",
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/rc/node_modules/strip-json-comments": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
|
||||
"integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/rc9": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/rc9/-/rc9-2.1.2.tgz",
|
||||
@@ -11246,6 +11652,74 @@
|
||||
"integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
|
||||
"license": "ISC"
|
||||
},
|
||||
"node_modules/sharp": {
|
||||
"version": "0.32.6",
|
||||
"resolved": "https://registry.npmjs.org/sharp/-/sharp-0.32.6.tgz",
|
||||
"integrity": "sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==",
|
||||
"hasInstallScript": true,
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"color": "^4.2.3",
|
||||
"detect-libc": "^2.0.2",
|
||||
"node-addon-api": "^6.1.0",
|
||||
"prebuild-install": "^7.1.1",
|
||||
"semver": "^7.5.4",
|
||||
"simple-get": "^4.0.1",
|
||||
"tar-fs": "^3.0.4",
|
||||
"tunnel-agent": "^0.6.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.15.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://opencollective.com/libvips"
|
||||
}
|
||||
},
|
||||
"node_modules/sharp/node_modules/color": {
|
||||
"version": "4.2.3",
|
||||
"resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz",
|
||||
"integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==",
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"color-convert": "^2.0.1",
|
||||
"color-string": "^1.9.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12.5.0"
|
||||
}
|
||||
},
|
||||
"node_modules/sharp/node_modules/color-convert": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
|
||||
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"color-name": "~1.1.4"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=7.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/sharp/node_modules/detect-libc": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz",
|
||||
"integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==",
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/sharp/node_modules/node-addon-api": {
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-6.1.0.tgz",
|
||||
"integrity": "sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==",
|
||||
"license": "MIT",
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/shebang-command": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
|
||||
@@ -11363,6 +11837,53 @@
|
||||
"url": "https://github.com/sponsors/isaacs"
|
||||
}
|
||||
},
|
||||
"node_modules/simple-concat": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
|
||||
"integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/feross"
|
||||
},
|
||||
{
|
||||
"type": "patreon",
|
||||
"url": "https://www.patreon.com/feross"
|
||||
},
|
||||
{
|
||||
"type": "consulting",
|
||||
"url": "https://feross.org/support"
|
||||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/simple-get": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz",
|
||||
"integrity": "sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/feross"
|
||||
},
|
||||
{
|
||||
"type": "patreon",
|
||||
"url": "https://www.patreon.com/feross"
|
||||
},
|
||||
{
|
||||
"type": "consulting",
|
||||
"url": "https://feross.org/support"
|
||||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"decompress-response": "^6.0.0",
|
||||
"once": "^1.3.1",
|
||||
"simple-concat": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/simple-git": {
|
||||
"version": "3.27.0",
|
||||
"resolved": "https://registry.npmjs.org/simple-git/-/simple-git-3.27.0.tgz",
|
||||
@@ -11856,6 +12377,21 @@
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/tar-fs": {
|
||||
"version": "3.0.9",
|
||||
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.9.tgz",
|
||||
"integrity": "sha512-XF4w9Xp+ZQgifKakjZYmFdkLoSWd34VGKcsTCwlNWM7QG3ZbaxnTsaBwnjFZqHRf/rROxaR8rXnbtwdvaDI+lA==",
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"pump": "^3.0.0",
|
||||
"tar-stream": "^3.1.5"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"bare-fs": "^4.0.1",
|
||||
"bare-path": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/tar-stream": {
|
||||
"version": "3.1.7",
|
||||
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz",
|
||||
@@ -12030,6 +12566,19 @@
|
||||
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
|
||||
"license": "0BSD"
|
||||
},
|
||||
"node_modules/tunnel-agent": {
|
||||
"version": "0.6.0",
|
||||
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
|
||||
"integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"safe-buffer": "^5.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/type-check": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
|
||||
@@ -13185,6 +13734,30 @@
|
||||
"node": ">=12"
|
||||
}
|
||||
},
|
||||
"node_modules/xss": {
|
||||
"version": "1.0.15",
|
||||
"resolved": "https://registry.npmjs.org/xss/-/xss-1.0.15.tgz",
|
||||
"integrity": "sha512-FVdlVVC67WOIPvfOwhoMETV72f6GbW7aOabBC3WxN/oUdoEMDyLz4OgRv5/gck2ZeNqEQu+Tb0kloovXOfpYVg==",
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"commander": "^2.20.3",
|
||||
"cssfilter": "0.0.10"
|
||||
},
|
||||
"bin": {
|
||||
"xss": "bin/xss"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/xss/node_modules/commander": {
|
||||
"version": "2.20.3",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
|
||||
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
|
||||
"license": "MIT",
|
||||
"optional": true
|
||||
},
|
||||
"node_modules/y18n": {
|
||||
"version": "5.0.8",
|
||||
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@nuxt/eslint": "^1.4.1",
|
||||
"@nuxt/image": "^1.10.0",
|
||||
"eslint": "^9.27.0",
|
||||
"nuxt": "^3.17.4",
|
||||
"vue": "^3.5.15",
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
<template>
|
||||
<main>
|
||||
Merci d'avoir participé !
|
||||
<br>
|
||||
Les résultats seront communiqués quand tous les amapiens souhaitant participer auront voté.
|
||||
</main>
|
||||
|
||||
</template>
|
||||
@@ -0,0 +1,36 @@
|
||||
<template>
|
||||
<main>
|
||||
<div>
|
||||
<h1>Présentation du vote au jugement majoritaire</h1>
|
||||
<div>Le jugement majoritaire est une nouvelle méthode de vote inventée par deux directeurs de recherche
|
||||
du CNRS, Rida Laraki et Michel Balinski.</div>
|
||||
<div>L'électeur vote en évaluant toutes les propositions, à partir d'une échelle de valeur (par exemple:
|
||||
Très bien, Bien, Passable, Insuffisant, À rejeter). C’est la proposition la mieux évaluée par une
|
||||
majorité qui l’emporte.</div>
|
||||
<NuxtImg src="/JM1.jpeg" />
|
||||
<NuxtImg src="/JM2.webp" />
|
||||
La proposition gagnante est celle qui est le mieux évaluée par une majorité. Dans l’exemple ci-
|
||||
dessus, 50 % des votants ont attribué au minimum la mention « Bien » à la proposition n°2.
|
||||
</div>
|
||||
<NuxtLink v-if="isValid" :to="`/poll?code=${code}`"><button> Passer aux votes pour l'AMAP </button></NuxtLink>
|
||||
<button v-else disabled="true">Afin d'accéder au vote, veuillez utiliser le lien qui vous a été fourni</button>
|
||||
</main>
|
||||
</template>
|
||||
|
||||
|
||||
<script setup lang="ts">
|
||||
|
||||
const isValid = ref(false)
|
||||
|
||||
const route = useRoute()
|
||||
|
||||
const code = route.query.code;
|
||||
|
||||
const runtimeConfig = useRuntimeConfig()
|
||||
console.log(`${runtimeConfig.public.apiBase}/check/${code}`)
|
||||
const { error } = await useFetch(`${runtimeConfig.public.apiBase}/check/${code}`);
|
||||
|
||||
if (!error.value || error.value.statusCode === 403 || error.value.statusCode === 200) {
|
||||
isValid.value = true
|
||||
}
|
||||
</script>
|
||||
+16
-10
@@ -1,7 +1,8 @@
|
||||
<template>
|
||||
<MainPoll :question-component="QuestionChoice" @submit="submitForm">
|
||||
<template #submit>
|
||||
<button type="submit" id="form-submit">Valider</button>
|
||||
<div id="error">{{ errorMessage }}</div>
|
||||
<button id="form-submit" type="submit">Valider</button>
|
||||
</template>
|
||||
</MainPoll>
|
||||
</template>
|
||||
@@ -15,28 +16,33 @@ const runtimeConfig = useRuntimeConfig()
|
||||
|
||||
const route = useRoute()
|
||||
|
||||
const errorMessage = ref("")
|
||||
|
||||
|
||||
async function submitForm(e: Event) {
|
||||
const target = e.target
|
||||
if (!target || !(target instanceof HTMLFormElement)) {
|
||||
throw Error("Form target not found")
|
||||
}
|
||||
const formObject = Object.fromEntries(new FormData(target))
|
||||
const filtered = Object.keys(Object.fromEntries(Object.entries(formObject).filter(([key, value]) => value == "unset"
|
||||
))).sort((a, b) => (Number(a) || Number(a[0])) - (Number(b) || Number(b[0])))
|
||||
console.log(filtered)
|
||||
if (filtered.length > 0) {
|
||||
errorMessage.value = `Vous n'avez pas répondu à toutes les questions ! Veuillez répondre aux questions suivantes : ${filtered.join(", ")}`
|
||||
return
|
||||
}
|
||||
await $fetch(`${runtimeConfig.public.apiBase}/vote/${route.query.code}`, {
|
||||
method: "POST",
|
||||
body: Object.fromEntries(new FormData(target))
|
||||
})
|
||||
|
||||
navigateTo({ path: "/results", query: route.query })
|
||||
navigateTo({ path: "/finished", query: route.query })
|
||||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
#form-submit {
|
||||
padding: .375rem .75rem;
|
||||
border-width: 0px;
|
||||
border-color: rgb(0, 0, 0);
|
||||
border-radius: 5px;
|
||||
background-color: rgb(17, 95, 239);
|
||||
color: white;
|
||||
font-size: 1em;
|
||||
#error {
|
||||
color: #E94A4D;
|
||||
}
|
||||
</style>
|
||||
+3
-5
@@ -1,10 +1,8 @@
|
||||
<template>
|
||||
<div v-if="data">
|
||||
<MainPoll :question-component="QuestionResult" :results="data" />
|
||||
</div>
|
||||
<div v-else>
|
||||
<MainPoll v-if="data" :question-component="QuestionResult" :results="data" />
|
||||
<main v-else>
|
||||
Couldn't fetch poll results ! Please contact the website administrator
|
||||
</div>
|
||||
</main>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 40 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 138 KiB |
Reference in New Issue
Block a user