From cbdd5571f9d634b979afe2206363fb5fe35f606a Mon Sep 17 00:00:00 2001 From: dahoud <41957584+DahoudG@users.noreply.github.com> Date: Fri, 17 Apr 2026 20:01:02 +0000 Subject: [PATCH] refactor: corriger formulaire organisation et supprimer alias morts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Formulaire organisation-form.xhtml: - Fix binding numeroRegistre→numeroEnregistrement (bug silencieux) - Fix réseaux sociaux: JSON brut→format lisible un par ligne - Fix tooltips: "Côte d'Ivoire"→générique multi-pays OrganisationsBean: - Villes: 20 CI→70+ villes UEMOA/CEMAC/Maroc - Régions: 19 CI→60+ régions multi-pays nouvelle.xhtml: - Supprimer bouton "Enregistrer" doublon dans le header detail.xhtml: - numeroRegistre→numeroEnregistrement - nomOrganisationParente→organisationParenteNom - typeLibelle→typeOrganisationLibelle OrganisationDetailBean: - getTypeLibelle()→getTypeOrganisationLibelle() --- .../client/view/OrganisationDetailBean.java | 7 +-- .../client/view/OrganisationsBean.java | 60 ++++++++++++++++--- .../pages/secure/organisation/detail.xhtml | 12 ++-- .../pages/secure/organisation/nouvelle.xhtml | 31 +--------- .../ui/includes/organisation-form.xhtml | 12 ++-- 5 files changed, 70 insertions(+), 52 deletions(-) diff --git a/src/main/java/dev/lions/unionflow/client/view/OrganisationDetailBean.java b/src/main/java/dev/lions/unionflow/client/view/OrganisationDetailBean.java index d3118e0..d82c490 100644 --- a/src/main/java/dev/lions/unionflow/client/view/OrganisationDetailBean.java +++ b/src/main/java/dev/lions/unionflow/client/view/OrganisationDetailBean.java @@ -321,13 +321,10 @@ public class OrganisationDetailBean implements Serializable { } /** - * Alias pour la vue (detail.xhtml) : libellé du type d'organisation. - * Délègue à typeLibelle du DTO si présent, sinon typeOrganisationLibelle. + * Libellé du type d'organisation pour la vue. */ - public String getTypeLibelle() { + public String getTypeOrganisationLibelle() { if (organisation == null) return ""; - String libelle = organisation.getTypeLibelle(); - if (libelle != null && !libelle.isBlank()) return libelle; return organisation.getTypeOrganisationLibelle() != null ? organisation.getTypeOrganisationLibelle() : ""; } diff --git a/src/main/java/dev/lions/unionflow/client/view/OrganisationsBean.java b/src/main/java/dev/lions/unionflow/client/view/OrganisationsBean.java index 3be2e3e..9f09f3c 100644 --- a/src/main/java/dev/lions/unionflow/client/view/OrganisationsBean.java +++ b/src/main/java/dev/lions/unionflow/client/view/OrganisationsBean.java @@ -552,14 +552,42 @@ public class OrganisationsBean implements Serializable { } /** - * Autocomplétion pour les villes de Côte d'Ivoire. + * Autocomplétion pour les principales villes d'Afrique de l'Ouest et Centrale. */ public List completerVilles(String query) { List villes = List.of( + // Côte d'Ivoire "Abidjan", "Bouaké", "Daloa", "Korhogo", "San-Pédro", "Yamoussoukro", "Man", "Divo", "Gagnoa", "Abengourou", - "Grand-Bassam", "Bingerville", "Anyama", "Agboville", - "Dabou", "Adzopé", "Bouaflé", "Issia", "Sinfra", "Vavoua"); + "Grand-Bassam", "Bingerville", + // Sénégal + "Dakar", "Thiès", "Saint-Louis", "Kaolack", "Ziguinchor", + "Rufisque", "Touba", "Mbour", "Diourbel", "Tambacounda", + // Mali + "Bamako", "Sikasso", "Mopti", "Koutiala", "Ségou", + "Kayes", "Gao", "Tombouctou", + // Burkina Faso + "Ouagadougou", "Bobo-Dioulasso", "Koudougou", "Banfora", + "Ouahigouya", "Kaya", + // Guinée + "Conakry", "Kankan", "Kindia", "Nzérékoré", "Labé", + // Togo + "Lomé", "Sokodé", "Kara", "Kpalimé", "Atakpamé", + // Bénin + "Cotonou", "Porto-Novo", "Parakou", "Abomey-Calavi", "Bohicon", + // Niger + "Niamey", "Zinder", "Maradi", "Agadez", "Tahoua", + // Cameroun + "Douala", "Yaoundé", "Bafoussam", "Garoua", "Maroua", + // Gabon + "Libreville", "Port-Gentil", "Franceville", + // Congo + "Brazzaville", "Pointe-Noire", + // RD Congo + "Kinshasa", "Lubumbashi", "Mbuji-Mayi", "Kisangani", + // Maroc + "Casablanca", "Rabat", "Marrakech", "Fès", "Tanger", "Agadir" + ); if (query == null || query.trim().isEmpty()) { return villes; } @@ -570,14 +598,32 @@ public class OrganisationsBean implements Serializable { } /** - * Autocomplétion pour les régions de Côte d'Ivoire. + * Autocomplétion pour les régions d'Afrique de l'Ouest et Centrale. */ public List completerRegions(String query) { List regions = List.of( + // Côte d'Ivoire "Lagunes", "Haut-Sassandra", "Savanes", "Vallée du Bandama", - "Moyen-Comoé", "Worodougou", "Sud-Comoé", "Marahoué", - "Sud-Bandama", "Gbêkê", "Nawa", "Gbôklé", "Cavally", - "Guémon", "Tonkpi", "Bagoué", "Poro", "Tchologo", "Béré"); + "Gbêkê", "Nawa", "Tonkpi", "Poro", "Sud-Comoé", + // Sénégal + "Dakar", "Thiès", "Diourbel", "Saint-Louis", "Ziguinchor", + "Kaolack", "Fatick", "Louga", "Matam", "Tambacounda", + // Mali + "Bamako", "Sikasso", "Mopti", "Ségou", "Kayes", "Koulikoro", + // Burkina Faso + "Centre", "Hauts-Bassins", "Boucle du Mouhoun", "Sahel", + // Guinée + "Conakry", "Kindia", "Nzérékoré", "Kankan", "Faranah", + // Togo + "Maritime", "Plateaux", "Centrale", "Kara", "Savanes", + // Bénin + "Littoral", "Atlantique", "Ouémé", "Borgou", "Zou", + // Cameroun + "Centre", "Littoral", "Ouest", "Nord", "Extrême-Nord", + // Maroc + "Casablanca-Settat", "Rabat-Salé-Kénitra", "Marrakech-Safi", + "Fès-Meknès", "Tanger-Tétouan-Al Hoceïma" + ); if (query == null || query.trim().isEmpty()) { return regions; } diff --git a/src/main/resources/META-INF/resources/pages/secure/organisation/detail.xhtml b/src/main/resources/META-INF/resources/pages/secure/organisation/detail.xhtml index 9da3cfd..57dc5ba 100644 --- a/src/main/resources/META-INF/resources/pages/secure/organisation/detail.xhtml +++ b/src/main/resources/META-INF/resources/pages/secure/organisation/detail.xhtml @@ -61,7 +61,7 @@ - @@ -210,11 +210,11 @@ - + - + @@ -606,7 +606,7 @@ - +
@@ -615,7 +615,7 @@ Rattachée à
- @@ -624,7 +624,7 @@
- +
Organisation parente diff --git a/src/main/resources/META-INF/resources/pages/secure/organisation/nouvelle.xhtml b/src/main/resources/META-INF/resources/pages/secure/organisation/nouvelle.xhtml index 9b90bd2..95eb014 100644 --- a/src/main/resources/META-INF/resources/pages/secure/organisation/nouvelle.xhtml +++ b/src/main/resources/META-INF/resources/pages/secure/organisation/nouvelle.xhtml @@ -13,55 +13,34 @@ - + - + - - - - - - - -

- - Les champs marqués d'un astérisque sont obligatoires -

-
- + - -
@@ -70,7 +49,6 @@ Toutes les données sont sécurisées et conformes
- - - - diff --git a/src/main/resources/META-INF/resources/ui/includes/organisation-form.xhtml b/src/main/resources/META-INF/resources/ui/includes/organisation-form.xhtml index 24cf85a..26aeeaa 100644 --- a/src/main/resources/META-INF/resources/ui/includes/organisation-form.xhtml +++ b/src/main/resources/META-INF/resources/ui/includes/organisation-form.xhtml @@ -103,7 +103,7 @@
@@ -239,13 +239,13 @@ value="#{model.reseauxSociaux}" rows="3" maxlength="1000" - placeholder='{"facebook":"@page_officielle", "twitter":"@compte", "linkedin":"entreprise/nom", "instagram":"@profil"}' + placeholder="Facebook: @page_officielle LinkedIn: entreprise/nom Instagram: @profil Twitter/X: @compte" autoResize="false"> - Format JSON recommandé - Maximum 1000 caractères + Un réseau par ligne (ex: Facebook: @mapage) — Maximum 1000 caractères
@@ -299,7 +299,7 @@ maxlength="100"> - + Ville du siège social @@ -336,7 +336,7 @@ maxlength="100"> - + Région administrative @@ -514,7 +514,7 @@ - +