feat(sprint-13.A+B web 2026-04-25): formulaire org enrichi conformité + 3 pages stubs détectées Sprint 12
S13.A — Formulaire organisation enrichi
- ui/includes/organisation-form.xhtml : nouvelle fieldset 🛡️ Conformité réglementaire
- selectOneMenu referentielComptable : SYSCOHADA / SYCEBNL / PCSFD_UMOA + auto
- inputText complianceOfficerId (UUID) avec tooltip Instr. BCEAO 001-03-2025
- Insérée entre fieldset Budget & Mission
S13.B — 3 pages stubs (détectées par test ViewPathsConsistency Sprint 12)
- pages/secure/evenement/bilan-detail.xhtml : stub bilan détail événement (panel "en construction")
- pages/admin/parametres.xhtml : hub paramètres admin (3 boutons : profil, préférences, notifications)
- pages/membre/parametres.xhtml : hub paramètres membre (3 boutons identiques)
- Tous les outcomes utilisent #{paths.xxx} (DRY centralisation Sprint 12)
- ViewPathsConsistencyTest : KNOWN_MISSING_PAGES vidé (tous les paths existent)
Bump dépendance api 1.0.8 → 1.0.9 (OrganisationResponse exposant les 2 champs)
Quarkus inchangé (3.27.3)
ACTION USER : `mvn install` après que api 1.0.9 soit en m2 local.
This commit is contained in:
2
pom.xml
2
pom.xml
@@ -142,7 +142,7 @@
|
||||
<dependency>
|
||||
<groupId>dev.lions.unionflow</groupId>
|
||||
<artifactId>unionflow-server-api</artifactId>
|
||||
<version>1.0.8</version>
|
||||
<version>1.0.9</version>
|
||||
</dependency>
|
||||
|
||||
<!-- Lions User Manager Client - Module réutilisable de gestion d'utilisateurs Keycloak -->
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
<!DOCTYPE html>
|
||||
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:h="http://xmlns.jcp.org/jsf/html"
|
||||
xmlns:f="http://xmlns.jcp.org/jsf/core"
|
||||
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
|
||||
xmlns:p="http://primefaces.org/ui"
|
||||
template="/templates/main-template.xhtml">
|
||||
|
||||
<ui:define name="title">UnionFlow - Paramètres administrateur</ui:define>
|
||||
|
||||
<ui:define name="content">
|
||||
<div class="grid">
|
||||
<div class="col-12">
|
||||
<div class="card">
|
||||
<h2 class="text-900 font-medium text-3xl m-0">Paramètres administrateur</h2>
|
||||
<p class="text-600 mt-1 mb-4">
|
||||
Préférences personnelles de l'administrateur — interface, notifications, sécurité.
|
||||
</p>
|
||||
|
||||
<div class="grid">
|
||||
<div class="col-12 md:col-4">
|
||||
<p:commandButton value="Profil personnel"
|
||||
icon="pi pi-user"
|
||||
action="#{paths.personnelProfil}"
|
||||
styleClass="w-full p-button-outlined" />
|
||||
</div>
|
||||
<div class="col-12 md:col-4">
|
||||
<p:commandButton value="Préférences"
|
||||
icon="pi pi-cog"
|
||||
action="#{paths.personnelPreferences}"
|
||||
styleClass="w-full p-button-outlined" />
|
||||
</div>
|
||||
<div class="col-12 md:col-4">
|
||||
<p:commandButton value="Notifications"
|
||||
icon="pi pi-bell"
|
||||
action="#{paths.personnelNotifications}"
|
||||
styleClass="w-full p-button-outlined" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p:divider styleClass="my-4" />
|
||||
|
||||
<p:panel header="Page en construction" styleClass="surface-100">
|
||||
<p class="text-700">
|
||||
Cette page centralise les paramètres administrateur (configuration globale,
|
||||
module d'audit, logs, sauvegarde). Les sous-sections sont accessibles via
|
||||
les boutons ci-dessus en attendant la version complète.
|
||||
</p>
|
||||
</p:panel>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ui:define>
|
||||
</ui:composition>
|
||||
@@ -0,0 +1,53 @@
|
||||
<!DOCTYPE html>
|
||||
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:h="http://xmlns.jcp.org/jsf/html"
|
||||
xmlns:f="http://xmlns.jcp.org/jsf/core"
|
||||
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
|
||||
xmlns:p="http://primefaces.org/ui"
|
||||
template="/templates/main-template.xhtml">
|
||||
|
||||
<ui:define name="title">UnionFlow - Mes paramètres</ui:define>
|
||||
|
||||
<ui:define name="content">
|
||||
<div class="grid">
|
||||
<div class="col-12">
|
||||
<div class="card">
|
||||
<h2 class="text-900 font-medium text-3xl m-0">Mes paramètres</h2>
|
||||
<p class="text-600 mt-1 mb-4">
|
||||
Gérez votre profil, vos notifications et vos préférences d'affichage.
|
||||
</p>
|
||||
|
||||
<div class="grid">
|
||||
<div class="col-12 md:col-4">
|
||||
<p:commandButton value="Mon profil"
|
||||
icon="pi pi-user"
|
||||
action="#{paths.personnelProfil}"
|
||||
styleClass="w-full p-button-outlined" />
|
||||
</div>
|
||||
<div class="col-12 md:col-4">
|
||||
<p:commandButton value="Mes préférences"
|
||||
icon="pi pi-cog"
|
||||
action="#{paths.personnelPreferences}"
|
||||
styleClass="w-full p-button-outlined" />
|
||||
</div>
|
||||
<div class="col-12 md:col-4">
|
||||
<p:commandButton value="Mes notifications"
|
||||
icon="pi pi-bell"
|
||||
action="#{paths.personnelNotifications}"
|
||||
styleClass="w-full p-button-outlined" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p:divider styleClass="my-4" />
|
||||
|
||||
<p:panel header="Page en construction" styleClass="surface-100">
|
||||
<p class="text-700">
|
||||
Vue centralisée des paramètres membre. Sous-sections accessibles via
|
||||
les boutons ci-dessus.
|
||||
</p>
|
||||
</p:panel>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ui:define>
|
||||
</ui:composition>
|
||||
@@ -0,0 +1,37 @@
|
||||
<!DOCTYPE html>
|
||||
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:h="http://xmlns.jcp.org/jsf/html"
|
||||
xmlns:f="http://xmlns.jcp.org/jsf/core"
|
||||
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
|
||||
xmlns:p="http://primefaces.org/ui"
|
||||
template="/templates/main-template.xhtml">
|
||||
|
||||
<ui:define name="title">UnionFlow - Bilan détaillé événement</ui:define>
|
||||
|
||||
<ui:define name="content">
|
||||
<div class="grid">
|
||||
<div class="col-12">
|
||||
<div class="card">
|
||||
<div class="flex justify-content-between align-items-center mb-3">
|
||||
<h2 class="text-900 font-medium text-3xl m-0">Bilan détaillé</h2>
|
||||
<p:button value="Retour aux bilans" icon="pi pi-arrow-left"
|
||||
outcome="#{paths.evenementBilan}"
|
||||
styleClass="p-button-outlined" />
|
||||
</div>
|
||||
|
||||
<p:messages />
|
||||
|
||||
<p:panel header="Page en construction" styleClass="surface-100">
|
||||
<p class="text-700">
|
||||
La vue détaillée du bilan d'un événement (statistiques participants,
|
||||
recettes/dépenses, indicateurs satisfaction) est en cours de développement.
|
||||
</p>
|
||||
<p class="text-600 mt-2">
|
||||
En attendant, consulte la liste des bilans pour la vue synthétique.
|
||||
</p>
|
||||
</p:panel>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ui:define>
|
||||
</ui:composition>
|
||||
@@ -650,6 +650,48 @@
|
||||
</div>
|
||||
</p:fieldset>
|
||||
|
||||
<!-- ═══════════════════════════════════════════════════════════════ -->
|
||||
<!-- SECTION 6.5 : CONFORMITÉ (Sprint 1 — Instr. BCEAO + OHADA) -->
|
||||
<!-- ═══════════════════════════════════════════════════════════════ -->
|
||||
<p:fieldset legend="🛡️ Conformité réglementaire" toggleable="true" collapsed="true" styleClass="mb-3">
|
||||
<div class="formgrid grid">
|
||||
|
||||
<!-- Référentiel comptable -->
|
||||
<div class="field col-12 md:col-6">
|
||||
<p:outputLabel for="referentiel" value="Référentiel comptable" styleClass="font-semibold" />
|
||||
<p:selectOneMenu id="referentiel"
|
||||
value="#{model.referentielComptable}">
|
||||
<f:selectItem itemLabel="-- Auto (selon type d'organisation) --" itemValue="" />
|
||||
<f:selectItem itemLabel="SYSCOHADA — Système comptable OHADA (associations, coopératives)" itemValue="SYSCOHADA" />
|
||||
<f:selectItem itemLabel="SYCEBNL — Entités à but non lucratif (mutuelles santé, ONG)" itemValue="SYCEBNL" />
|
||||
<f:selectItem itemLabel="PCSFD_UMOA — Plan comptable SFD UEMOA (microfinance art. 44)" itemValue="PCSFD_UMOA" />
|
||||
</p:selectOneMenu>
|
||||
<p:tooltip for="referentiel" position="top"
|
||||
value="Détermine bilan, compte de résultat et annexes (Acte uniforme OHADA + BCEAO)" />
|
||||
<small class="text-500">
|
||||
<i class="pi pi-info-circle mr-1"/>
|
||||
Si vide : appliqué automatiquement selon typeOrganisation
|
||||
</small>
|
||||
</div>
|
||||
|
||||
<!-- Compliance Officer -->
|
||||
<div class="field col-12 md:col-6">
|
||||
<p:outputLabel for="complianceOfficer" value="Compliance Officer (UUID membre)"
|
||||
styleClass="font-semibold" />
|
||||
<p:inputText id="complianceOfficer"
|
||||
value="#{model.complianceOfficerId}"
|
||||
placeholder="00000000-0000-0000-0000-000000000000" />
|
||||
<p:tooltip for="complianceOfficer" position="top"
|
||||
value="Désignation obligatoire selon Instr. BCEAO 001-03-2025 (LBC/FT). Doit être un membre rattaché à la direction, distinct du trésorier (séparation des pouvoirs)." />
|
||||
<small class="text-500">
|
||||
<i class="pi pi-shield mr-1"/>
|
||||
Instr. BCEAO 001-03-2025 — LBC/FT
|
||||
</small>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</p:fieldset>
|
||||
|
||||
<!-- ═══════════════════════════════════════════════════════════════ -->
|
||||
<!-- SECTION 7 : MISSION & ACTIVITÉS -->
|
||||
<!-- ═══════════════════════════════════════════════════════════════ -->
|
||||
|
||||
@@ -25,15 +25,10 @@ class ViewPathsConsistencyTest {
|
||||
"REDIRECT_SUFFIX", "ROOT", "INDEX");
|
||||
|
||||
/**
|
||||
* Pages référencées par le code mais pas encore implémentées (dette pré-Sprint 12).
|
||||
*
|
||||
* <p>Action : créer les xhtml correspondants dans un sprint dédié, puis retirer cette liste.
|
||||
* Le fait de centraliser via {@link ViewPaths} a permis de détecter ces pages fantômes.
|
||||
* Pages référencées par le code mais pas encore implémentées.
|
||||
* Sprint 13.B a créé les 3 stubs détectés par Sprint 12 — set vide.
|
||||
*/
|
||||
private static final java.util.Set<String> KNOWN_MISSING_PAGES = java.util.Set.of(
|
||||
"EVENEMENT_BILAN_DETAIL",
|
||||
"ADMIN_PARAMETRES",
|
||||
"MEMBRE_PARAMETRES");
|
||||
private static final java.util.Set<String> KNOWN_MISSING_PAGES = java.util.Set.of();
|
||||
|
||||
@Test
|
||||
@DisplayName("Chaque constante ViewPaths pointe vers un .xhtml existant en classpath")
|
||||
|
||||
Reference in New Issue
Block a user