Commit Graph

17 Commits

Author SHA1 Message Date
dahoud
f930ae7341 feat: PHASE 1 - Adresses et Rôles/Permissions
PHASE 1.1 - Entité Adresse:
- Création entité Adresse avec types (SIEGE_SOCIAL, BUREAU, DOMICILE, AUTRE)
- Relations flexibles: Organisation, Membre, Evenement
- Enum TypeAdresse dans module API (DRY/WOU)
- Repository et Service AdresseService
- Relations bidirectionnelles mises à jour

PHASE 1.2 - Système Rôles et Permissions:
- Entité Role avec types (SYSTEME, ORGANISATION, PERSONNALISE)
- Entité Permission avec structure MODULE > RESSOURCE > ACTION
- Tables de liaison MembreRole et RolePermission
- Repositories pour toutes les entités
- Services RoleService et PermissionService
- Relations bidirectionnelles dans Membre

Respect strict DRY/WOU:
- Enums dans module API réutilisables
- Patterns de service cohérents
- Relations JPA standardisées
2025-11-30 01:31:12 +00:00
dahoud
9e2da68c6e feat(client): Reutilisation inscription.xhtml pour modification membre (DRY/WOU)
SUPPRESSION:
- modifier.xhtml supprime (duplication inutile)

MODIFICATION inscription.xhtml:
- Ajout f:metadata avec viewParam id et viewAction
- Titre dynamique: Inscription ou Modification selon param.id
- Icone dynamique: user-plus (creation) ou pencil (modification)
- Description dynamique selon le mode

MODIFICATION MembreInscriptionBean:
- Ajout membreIdString (String) pour recevoir param URL
- Ajout modeModification (boolean) pour detecter le mode
- Ajout chargerMembreSiModification() : charge membre si ID fourni
- Remplissage automatique des champs avec donnees existantes
- Gestion erreurs ID invalide

MODIFICATION liste.xhtml:
- Bouton Modifier redirige vers inscription.xhtml?id=UUID

UNE SEULE PAGE pour creation ET modification (DRY/WOU)!
Meme formulaire, meme logique, comportement adapte selon presence param id.
2025-11-29 22:57:14 +00:00
dahoud
6096ce6e07 fix(client): Conversion manuelle String vers UUID dans MembreListeBean
- Changement membreSelectionneId (UUID) vers membreSelectionneIdString (String)
- Conversion manuelle avec UUID.fromString() dans chargerMembreSelectionne()
- Gestion erreur IllegalArgumentException pour ID invalide
- Suppression du converter JSF qui n existe pas par defaut

Solution simple et robuste sans creer de converter personnalise.
Le bouton Modifier fonctionne maintenant!
2025-11-29 22:51:36 +00:00
dahoud
8e8581fff3 fix(client): Ajout import FacesMessage manquant dans MembreListeBean
- Ajout de import jakarta.faces.application.FacesMessage
- Resout erreurs de compilation pour les methodes chargerMembreSelectionne et modifierMembreSelectionne
- Permet affichage des messages de succes et erreur
2025-11-29 22:48:21 +00:00
dahoud
a1f05441b0 feat(client): Creation page modification membre exhaustive et formulaire reutilisable
NOUVELLES PAGES:
- modifier.xhtml : Page dediee pour modifier un membre (exhaustive)
- membre-form.xhtml : Fragment reutilisable pour formulaire membre (DRY/WOU)

STRUCTURE DU FORMULAIRE (blocs thematiques):
- Identite : nom, prenom, dateNaissance, nationalite
- Contact : email, telephone
- Localisation : adresse, ville, region, quartier
- Professionnel : profession, statutMatrimonial
- Piece identite : typeIdentite, numeroIdentite
- Organisation : association, role, membreBureau, responsable
- Photo : photoUrl

BEAN (MembreListeBean):
- Ajout membreSelectionneId, membreSelectionne
- Ajout chargerMembreSelectionne() : charge membre par ID
- Ajout modifierMembreSelectionne() : sauvegarde modifications
- Ajout getOrganisationsSelectItems() : dropdown organisations (TODO)
- Correction modifierMembre() : redirige vers modifier.xhtml

BOUTON MODIFIER dans liste.xhtml:
- Navigation directe vers modifier.xhtml au lieu de popup
- Coherence avec inscription.xhtml

Respecte DRY/WOU avec formulaire reutilisable membre-form.xhtml
2025-11-29 22:45:39 +00:00
dahoud
1de5fe4534 fix(client): Remplacement des données fictives par N/A et 0 dans MembreDTO
- cotisationStatut : 'À jour' → 'N/A' (en attente intégration module Cotisations)
- cotisationColor : 'text-green-500' → 'text-500' (gris neutre)
- dernierPaiement : 'Nov 2025' → 'N/A'
- tauxParticipation : '75' → '0'
- evenementsAnnee : '12' → '0'

Plus de données fictives dans le système !
Les vraies données seront affichées une fois les modules Cotisations et Événements intégrés.

Respecte le principe : 'Je ne veux aucune données fictives dans le système.
Tout doit pouvoir être CRUD réellement.'
2025-11-29 21:53:59 +00:00
dahoud
5db3a5a6c9 docs(api): Documentation des champs auto-générés dans MembreDTO
- numeroMembre : Marqué AUTO-GÉNÉRÉ, ne pas afficher dans formulaire création
- dateNaissance : Marquée AUTO-GÉNÉRÉE à il y a 18 ans si non fournie
- dateAdhesion : Marquée AUTO-GÉNÉRÉE à LocalDate.now() si non fournie

Documentation claire pour les développeurs frontend :
- Champs OBLIGATOIRES : nom, prénom, email, statut, associationId
- Champs OPTIONNELS : tous les autres
- Champs AUTO-GÉNÉRÉS : à ne pas afficher dans les formulaires de création

Cette documentation guide la création des formulaires pour ne demander
que les informations essentielles à l'utilisateur.
2025-11-29 21:43:24 +00:00
dahoud
f0e40d3eec fix(client): Ajout des propriétés manquantes dans MembreDTO pour liste.xhtml
- Ajout des champs : membreBureau, responsable, dateAdhesion, region, ville, quartier, role
- Ajout des propriétés dérivées :
  * typeMembre, typeSeverity, typeIcon : basés sur responsable/membreBureau
  * statutIcon : icône selon le statut
  * entite : nom de l'association
  * anciennete : calcul depuis dateInscription
  * cotisationStatut, cotisationColor, dernierPaiement : valeurs par défaut (TODO)
  * tauxParticipation, evenementsAnnee : valeurs par défaut (TODO)

- Résout PropertyNotFoundException pour typeSeverity et autres propriétés
- Les propriétés de cotisation et participation sont des placeholders à remplacer par vraies données
2025-11-29 21:08:05 +00:00
dahoud
4a27f6f039 fix(client): Ajout de la propriété dérivée initiales dans MembreDTO
- Ajout de la méthode getInitiales() qui retourne les initiales du membre
- Calcule les initiales à partir du prénom et du nom (première lettre de chaque)
- Retourne les initiales en majuscules
- Résout l'erreur PropertyNotFoundException pour la propriété initiales
2025-11-29 20:50:20 +00:00
dahoud
4075357e47 fix(client): Ajout de la propriété photoUrl dans MembreDTO côté client
- Ajout du champ photoUrl avec @Size(max=255) pour aligner avec le DTO serveur
- Ajout des getters et setters correspondants
- Résout l'erreur PropertyNotFoundException lors de l'affichage des membres
2025-11-29 20:14:26 +00:00
dahoud
c877065500 feat(client): Réorganisation des composants réutilisables par type et correction des erreurs EL
- Réorganisation de la structure des composants dans des sous-dossiers :
  * buttons/ : tous les composants de boutons
  * cards/ : card-header, card-simple, filter-bar, stat-card
  * columns/ : composants de colonnes pour datatables
  * dialogs/ : confirm-dialog, form-dialog
  * forms/ : tous les composants de formulaires
  * layout/ : menu, topbar, footer, config, rightpanel, page-header, organisation-logo
  * tables/ : data-table

- Correction des erreurs EL dans les composants :
  * Suppression des expressions EL dans les commentaires XML
  * Protection des paramètres optionnels (styleClass) avec 'not empty'
  * Simplification de confirm-dialog avec valeurs fixes
  * Correction de organisation-logo (rendered sur balise HTML)

- Ajout de nouvelles pages pour les organisations :
  * detail.xhtml : consultation exhaustive d'une organisation
  * nouvelle.xhtml : création complète d'une organisation

- Mise à jour de toutes les références vers les nouveaux chemins (37+ fichiers)
- Maintien de l'approche DRY/WOU avec composants réutilisables
2025-11-29 19:10:01 +00:00
dahoud
5b831086f1 Refactroring 2025-11-29 04:18:14 +00:00
dahoud
8007910494 Refactroring 2025-11-29 02:55:52 +00:00
dahoud
087cd3694b Refactoring - Version OK 2025-11-17 17:53:04 +00:00
dahoud
3f00a26308 Refactoring - Version OK 2025-11-17 16:00:58 +00:00
dahoud
291847924c Clean project: remove test files, debug logs, and add documentation 2025-10-05 13:41:33 +00:00
DahoudG
b2a23bdf89 first commit 2025-08-20 21:00:35 +00:00