====== Permrequest - Module de gestion de demandes de permissions ======
===== Besoins =====
* Transférer [[fonctionnalites:geonature:developpements-prioritaires#gestion_des_demandes_de_permissions| les fonctionnalités existante dans la version GeoNature 2.10]] branche ''feat/sinp'' de gestion des demandes d'accès dans un module ''gn_module_permrequest'' compatible avec la dernière version de GeoNature (v2.17.0).
* L'utilisateur et le validateur doivent pouvoir modifier des demandes. L'utilisateur peut seulement modifier ses demandes
* Un utilisateur doit pouvoir consulter ses demandes.
===== Modules existants =====
* [[https://github.com/PnX-SI/gn_module_permrequests| Module Permrequest]]
* [[https://github.com/naturalsolutions/gn_module_permission_request/tree/develop| Module Permission Request]]
===== Améliorations du code=====
* Renommer le schéma ''pr_permrequest''
* Refactoriser les constantes dans les migrations Alembic
* Gérer les dépendances et les configs d'outils dans pyproject.toml
* Réordonner les colonnes de la table ''t_permission_request''
* Garder la table ''t_permission_request'' au singulier et dans le schéma ''pr_permission_request''
* Ajouter le champ ''extras'' (json) ou ''additional_data'' (plus standard dans la base GN) dans la table ''t_permission_request'' du schéma ''pr_permission_request'' : il servira à stocker les valeurs du formulaire dynamique.
===== À faire =====
* Gérer plusieurs permissions par demande : Lecture & Export
* Ajouter un paramètre de config pour masquer la séléction d'une demande de données sensible : avec le passage en OpenData des 2 SINP, la demande concerne forcément des données sensibles...
* Ajouter un ou deux paramètres de config pour masquer la sélection de la portée et définir sa valeur par défaut
* Ajouter la gestion du formulaire dynamique au formulaire de demande
* Ajouter la possibilité de valider une charte après avoir fait la demande : la charte doit être basée sur un template modifiable par l'administrateur du GeoNature.
* Ajouter un paramètre de config pour définir la période par défaut de validité de la demande
* Ajouter un paramètre de config pour définir la durée max d'une demande
* Corriger le template par défaut de la notification DB PERMISSION_REQUEST_VALIDATION_UPDATE
* Activer la traduction du calendrier en français
* Améliorer la sélection des taxons de la demande : devrait fonctionner comme pour les zones géo. A minima, corriger le problème d'affichage des noms des taxons quand on réaffiche la demande.
* Améliorer la sélection des zones géo : les zones géo devraient être triées par type.
* Gérer les modifications d'une demande de permissions par l'utilisateur : après validation les utilisateurs ne peuvent plus modifier la réponse à l'exception des admins.
===== À voir/À confirmer =====
* Comment gérer les modifications d'une demande de permissions par l'utilisateur ? : ne pas donner la permission de modification à l'utilisateur si la demande est validée.
* Est ce que l'on empêche un utilisateur de supprimer sa demande de permissions ? : non, il peut supprimer. Mais il faudrait afficher une modale de confirmation.
* Actuellement 1 seule permission est créée par demande : c'est l'action R (lecture) mais il faudrait également créer une permission sur l'action E (Export) ?
* Est qu'on peut simplifier les migrations Alembic ? : renommer/refactoriser les migrations par thème : ''initialize_schema'', ''add_permissions'', ''add_notifications'', ''add_samples''.