Ajouter charte et confidentialite
This commit is contained in:
parent
8de5e49200
commit
f04871c3b3
6 changed files with 68 additions and 13 deletions
|
|
@ -21,7 +21,8 @@ MODULES_CONSULTATION = [
|
|||
ModuleTuile(code="C5", nom="Gouvernance", description="Décisions du groupe", icone="📌", couleur="red"),
|
||||
ModuleTuile(code="C7", nom="Mon profil", description="Modifier, PIN, notifications", icone="👤", couleur="gray"),
|
||||
ModuleTuile(code="C9", nom="Postes à pourvoir", description="Postes disponibles, candidature", icone="🙋", couleur="yellow"),
|
||||
ModuleTuile(code="C11", nom="Principes d'utilisation", description="L'application comme outil de service", icone="🧭", couleur="indigo"),
|
||||
ModuleTuile(code="C11", nom="Charte d'utilisation", description="Outil de service et limites", icone="🧭", couleur="indigo"),
|
||||
ModuleTuile(code="C13", nom="Confidentialité", description="Données, accès et journal", icone="🔒", couleur="gray"),
|
||||
ModuleTuile(code="C12", nom="Mode papier", description="Formulaires de reprise en main", icone="🖨️", couleur="gray"),
|
||||
ModuleTuile(code="S1T", nom="Trésorerie", description="État des résultats, soldes, registre", icone="🏦", couleur="green"),
|
||||
]
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@ import AssembleeInvite from './pages/AssembleeInvite';
|
|||
import JournalActions from './pages/JournalActions';
|
||||
import GestionGroupes from './pages/GestionGroupes';
|
||||
import PrincipesUtilisation from './pages/PrincipesUtilisation';
|
||||
import Confidentialite from './pages/Confidentialite';
|
||||
import ModePapier from './pages/ModePapier';
|
||||
import BottomNav from './components/BottomNav';
|
||||
|
||||
|
|
@ -102,6 +103,7 @@ export default function App() {
|
|||
case 'G8': pageActive = <ConfigRepartition />; break;
|
||||
case 'C9': pageActive = <Impliquer />; break;
|
||||
case 'C11': pageActive = <PrincipesUtilisation />; break;
|
||||
case 'C13': pageActive = <Confidentialite />; break;
|
||||
case 'C12': pageActive = <ModePapier />; break;
|
||||
case 'C10': pageActive = <Tresorerie />; break;
|
||||
default: pageActive = <Accueil />;
|
||||
|
|
@ -120,6 +122,8 @@ export default function App() {
|
|||
// Pages publiques
|
||||
switch (page) {
|
||||
case 'inscription': return <Inscription />;
|
||||
case 'charte': return <PrincipesUtilisation />;
|
||||
case 'confidentialite': return <Confidentialite />;
|
||||
default: return <Login />;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ const COULEURS = {
|
|||
gray: 'bg-gray-50 border-gray-200 text-gray-700',
|
||||
};
|
||||
|
||||
const NAVIGABLE = ['C7', 'S1', 'S1T', 'S2', 'S3', 'S4', 'S5', 'C1', 'C2', 'C4', 'C5', 'C9', 'C11', 'C12', 'G2', 'G9', 'G11', 'G12', 'G13', 'G14', 'M0', 'M1', 'M2', 'M3', 'M4', 'M5', 'M6'];
|
||||
const NAVIGABLE = ['C7', 'S1', 'S1T', 'S2', 'S3', 'S4', 'S5', 'C1', 'C2', 'C4', 'C5', 'C9', 'C11', 'C12', 'C13', 'G2', 'G9', 'G11', 'G12', 'G13', 'G14', 'M0', 'M1', 'M2', 'M3', 'M4', 'M5', 'M6'];
|
||||
const MODULES_CONTEXTE = new Set(['S0', 'M0', 'M1', 'M2']);
|
||||
const MODULE_INVENTAIRES = {
|
||||
code: 'M5',
|
||||
|
|
@ -29,7 +29,7 @@ const CONTEXTES = {
|
|||
sections: [
|
||||
{ titre: 'À faire maintenant', codes: ['S5', 'C5', 'C9'] },
|
||||
{ titre: 'État', codes: ['S1T', 'C2', 'C1', 'C4'] },
|
||||
{ titre: 'Mon espace', codes: ['C7', 'C11', 'C12'] },
|
||||
{ titre: 'Mon espace', codes: ['C7', 'C11', 'C13', 'C12'] },
|
||||
],
|
||||
},
|
||||
reunion: {
|
||||
|
|
|
|||
39
frontend/src/pages/Confidentialite.jsx
Normal file
39
frontend/src/pages/Confidentialite.jsx
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
import React from 'react';
|
||||
import PageHeader from '../components/PageHeader';
|
||||
|
||||
const SECTIONS = [
|
||||
['Données recueillies', "L'application conserve les renseignements nécessaires au fonctionnement du groupe: prénom, coordonnées utiles, identifiant de connexion, date d'abstinence optionnelle, rôles, présences, décisions, finances du groupe et historique des changements."],
|
||||
['Utilisation', "Les données servent à soutenir les rencontres, assemblées, mandats, rapports, finances, communications internes, sauvegardes et reprises d'historique."],
|
||||
['Accès', "Les membres voient les informations nécessaires à leur participation. Les exécutifs et les postes autorisés ont des accès plus larges selon leurs responsabilités. Le sysadmin technique agit seulement pour soutenir l'application."],
|
||||
['Journal', "Les changements réussis sont journalisés pour comprendre ce qui a été modifié, par qui et quand. Ce journal existe pour protéger l'historique et corriger les erreurs, pas pour surveiller les membres."],
|
||||
['Isolation des groupes', "Les groupes sont isolés. Un membre connecté dans un groupe ne doit pas accéder aux données d'un autre groupe."],
|
||||
['Sauvegardes', "Les sauvegardes contiennent des données personnelles et doivent être protégées. Elles servent à restaurer le service en cas d'erreur ou d'incident."],
|
||||
["Droit à l'oubli", "Un membre peut demander l'anonymisation de ses renseignements. L'enregistrement n'est pas supprimé afin de préserver l'historique; l'ID technique et le prénom peuvent demeurer."],
|
||||
['Notifications', "Les notifications push sont optionnelles. Le membre choisit les catégories qu'il souhaite recevoir et peut les désactiver."],
|
||||
['Limites', "Aucun système n'est parfait. Les groupes doivent conserver leurs rapports importants et pouvoir reprendre les processus sur papier au besoin."],
|
||||
];
|
||||
|
||||
export default function Confidentialite() {
|
||||
return (
|
||||
<div className="min-h-screen bg-gray-100">
|
||||
<PageHeader titre="Confidentialité" sousTitre="Données, accès et journal" />
|
||||
<div className="p-4 space-y-4">
|
||||
<div className="bg-white rounded-2xl p-4 shadow-sm">
|
||||
<p className="text-sm text-gray-700 leading-relaxed">
|
||||
Cette politique résume comment l'application traite les données des groupes et des membres.
|
||||
Elle doit rester simple, compréhensible et conforme à l'esprit de service.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div className="space-y-2">
|
||||
{SECTIONS.map(([titre, texte]) => (
|
||||
<div key={titre} className="bg-white rounded-2xl p-4 shadow-sm">
|
||||
<p className="font-bold text-gray-800">{titre}</p>
|
||||
<p className="text-sm text-gray-600 mt-1 leading-relaxed">{texte}</p>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
|
@ -223,6 +223,14 @@ export default function Login() {
|
|||
Sysadmin
|
||||
</button>
|
||||
)}
|
||||
<div className="mb-3 flex items-center justify-center gap-4 text-xs">
|
||||
<button type="button" onClick={() => setPage('charte')} className="font-medium text-blue-200/75 underline-offset-4 active:text-white">
|
||||
Charte d'utilisation
|
||||
</button>
|
||||
<button type="button" onClick={() => setPage('confidentialite')} className="font-medium text-blue-200/75 underline-offset-4 active:text-white">
|
||||
Confidentialité
|
||||
</button>
|
||||
</div>
|
||||
<p className="text-center text-xs text-blue-300">100% logiciel libre · Hébergé au Québec</p>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -2,22 +2,25 @@ import React from 'react';
|
|||
import PageHeader from '../components/PageHeader';
|
||||
|
||||
const PRINCIPES = [
|
||||
['Outil de service', "L'application soutient les serviteurs; elle ne remplace jamais la conscience de groupe."],
|
||||
['Reprise sur papier', "Les rencontres, assemblées et rapports doivent pouvoir continuer même si l'informatique tombe."],
|
||||
['Sobriété des données', "On conserve seulement les renseignements utiles au fonctionnement du groupe."],
|
||||
['Transparence', "Le journal sert à comprendre les changements et protéger l'historique, pas à surveiller les membres."],
|
||||
['Outil de service', "L'application soutient les tâches du groupe. Elle ne remplace jamais la conscience de groupe, les réunions, ni les décisions prises par les membres."],
|
||||
['Autonomie du groupe', "Chaque groupe demeure responsable de ses données, de ses usages, de ses décisions et de ses comptes rendus."],
|
||||
['Limites du service', "Le soutien technique est offert au meilleur effort. Aucune disponibilité continue ou intervention d'urgence n'est promise."],
|
||||
['Reprise sur papier', "Les rencontres, assemblées, rapports et décisions doivent pouvoir continuer même si l'informatique devient indisponible."],
|
||||
['Sobriété des données', "On conserve seulement les renseignements utiles au fonctionnement du groupe et à la continuité de son historique."],
|
||||
['Transparence', "Le journal sert à comprendre les changements, corriger les erreurs et protéger l'historique. Il ne doit pas servir à surveiller les membres."],
|
||||
['Pouvoirs visibles', "Les accès viennent des postes occupés. Les actions sensibles doivent rester explicables au groupe."],
|
||||
['Participation libre', "L'application ne doit jamais devenir nécessaire pour assister à une réunion ou participer au groupe."],
|
||||
['Participation libre', "L'application ne doit jamais devenir nécessaire pour assister à une réunion, participer au groupe ou demander de l'aide."],
|
||||
['Frais éventuels', "S'il y a contribution financière, elle sert à couvrir l'hébergement, les sauvegardes et l'entretien minimal."],
|
||||
];
|
||||
|
||||
export default function PrincipesUtilisation() {
|
||||
return (
|
||||
<div className="min-h-screen bg-gray-100">
|
||||
<PageHeader titre="Principes d'utilisation" sousTitre="L'application comme outil de service" />
|
||||
<PageHeader titre="Charte d'utilisation" sousTitre="Outil de service et limites" />
|
||||
<div className="p-4 space-y-4">
|
||||
<div className="bg-white rounded-2xl p-4 shadow-sm">
|
||||
<p className="text-sm text-gray-700 leading-relaxed">
|
||||
Cette application aide le groupe à alléger les tâches, préserver l'historique et soutenir la transparence.
|
||||
Cette application est offerte comme outil de service. Elle aide à alléger les tâches, préserver l'historique et soutenir la transparence.
|
||||
Elle ne gouverne pas le groupe. Les décisions demeurent prises par les membres, selon les pratiques du groupe.
|
||||
</p>
|
||||
</div>
|
||||
|
|
@ -32,10 +35,10 @@ export default function PrincipesUtilisation() {
|
|||
</div>
|
||||
|
||||
<div className="bg-blue-50 border border-blue-100 rounded-2xl p-4">
|
||||
<p className="font-bold text-aa-blue">Boussole simple</p>
|
||||
<p className="font-bold text-aa-blue">Acceptation</p>
|
||||
<p className="text-sm text-blue-900 mt-1 leading-relaxed">
|
||||
Une fonctionnalité est saine si elle augmente la capacité du groupe à se servir lui-même.
|
||||
Elle devient fragile si elle augmente surtout le contrôle sur les membres.
|
||||
Utiliser l'application implique d'accepter ces principes. Une fonctionnalité est saine si elle augmente
|
||||
la capacité du groupe à se servir lui-même. Elle devient fragile si elle augmente surtout le contrôle sur les membres.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Reference in a new issue