Geotrek-admin
Geotrek-admin copied to clipboard
#32 - Ajouter un champs "Prestataires" sur les interventions
scope: Dev
- Intégrer un champ “Intervenant” dans le module "Interventins"
- Dans le module “Chantiers”, recenser automatiquement dans le champ “Prestataires” l’ensemble des intervenants identifiés sur les interventions affectées au chantier listé
Ajouter un bouton " [+] " pour que les gestionnaires locaux puissent compléter le champ liste de nouveaux prestataires (selon le principe de nouveaux liens internet du module “Itinéraires”)
Plusieurs sujets :
- Que faire des informations déjà saisies dans "Prestataires" si on fusionner avec les données issues de "Intervenants"
- Soit un champ est calculé, soit il est saisi manuellement mais pas les deux en même temps.
Proposition :
- Avoir un champ dans le module "chantiers" : "intervenants des interventions" (nom à préciser) qui regroupe l'ensemble des intervenants issus des interventions associées. Ce champ serait différent du champ prestataires.
Question :
- Pourquoi faut-il que les utilisateurs puissent ajouter des informations dans les prestataires sur le chantiers plutôt que de les saisir directement comme intervenants sur les interventions ?
Oui je pense qu'il faut choisir sur l'un ou l'autre.
- Soit on saisit les prestataires globalement au niveau des chantiers et c'est tout (comme c'est le cas actuellement)
- Soit on saisir les prestataires de manière plus précise au niveau des interventions, et on agrège et affiche la somme des prestataires des interventions du chantier sur la fiche du chantier sans pouvoir les modifier ou compléter au niveau du chantier. Mais je crois que c'est ce qui est demandé. Je ne vois pas de demande de pouvoir modifier ou ajouter des prestataires directement au niveau du chantier.
Dans tous les cas, cela pose la question des données existantes en effet...
Ce n'est pas anodin pour ceux qui gèrent des travaux il me semble, ça change la logique. La logique initiale pour les travaux étant :
- Une intervention est le détail d'une opération faite sur le terrain
- Les chantiers permettent de regrouper toutes les interventions d'un projet plus global, éventuellement sous-traité avec un financement et un ou plusieurs prestataires
Ça me semble lourd de détailler le prestataire au niveau de chaque intervention et non plus au niveau global du chantier, mais c'est peut-être nécessaire d'être plus précis et détaillé quand un chantier est composé de différentes interventions avec différents prestataires ?
Par contre, je ne sais pas comment on pourra migrer le données existantes qui sont globales au niveau des chantiers à un niveau plus fin des interventions. Comment savoir quels prestataires ont fait quelles interventions quand un chantier est associé à plusieurs prestataires ?
Après discussion avec mon collègue qui gère les sentiers, pour lui il est très important de garder le renseignement des prestataires au niveau des chantiers. En effet, quasiment tous nos chantiers sont attribués à un seul prestataire, et il serait lourd et moins lisible de devoir le répéter à chaque intervention.
Pourquoi pas donc proposer AUSSI ce champs au niveau des interventions, optionnel. Mais je ne pense pas, de ce fait, qu'on doit agréger les prestataires des interventions au niveau du chantier comprenant ces interventions. Et c'est vraiment pas idéal de saisir une information similaire à 2 niveaux différents, potentiellement redondant et incohérent.
A discuter pour trouver la bonne solution.
En terme de procédure de marchés public, les structures peuvent faire appel à plusieurs prestataires (par exemple dans le Gard sur le lot débroussaillage affecté au chantier "Travaux PDESI 2021-2024", nous avons 3 prestataires qui interviennent). Cette demande d'identifier le prestataire au niveau du module "Intervention" nous permettra de filtrer les interventions et les coûts réalisés par chacun des prestataires. Et inversement, sur des petites interventions, le gestionnaire peut réaliser des commandes directes sur la base d'un devis, on pourrait alors avoir plusieurs entreprises différentes intervenant sur l'année.
Solution retenue :
- Au niveau des interventions on ajoute un champ "Prestataire" qui est une foreignkey vers le même modèle que les prestataires actuels des chantiers
- On ajoute un filtre sur la liste des interventions pour filtrer par prestataire
- On garde également cette information sur les chantiers
- Dans l'affichage du chantier on affiche les deux :
- Prestataire chantier : le nom du prestataire
- Prestataire intervention : la liste des prestataires des interventions associées
- Ajuster le filtre de chantiers pour prendre en compte le fait d'aller chercher dans les interventions des chantiers les différents prestataires.
@babastienne @DepartementGard plutôt qu'une foreignkey ce serait pas plus intéressant de mettre un ManyToMany pour pouvoir sélectionner plusieurs "Prestataire" pour une intervention ?
Je ne suis pas certain que cela soit souhaitable ni fréquent qu'une intervention soit réalisée par plusieurs partenaires. Et c'est peut-être pas mal que le prestataire soit forcément unique sur une intervention, mais multiple (comme actuellement) sur les chantiers (qui sont des regroupements de plusieurs interventions).
Je suis d'accord avec @camillemonchicourt : foreignKey plutôt que m2m
@camillemonchicourt en fait actuellement le champ "prestataire" sur les chantiers est un Many2Many. Donc peut-être que par soucis de compatibilité / reproduction du même comportement on pourrait mettre un M2M plutôt qu'une FK sur les interventions ?
Je pense qu'en pratique ce sera rarement utilisé mais qui peut le plus peut le moins, on donne la possibilité et ceux qui souhaitent pourront l'exploiter, non ?
Oui c'est bien ce que je disais dans mon dernier message et qui me semble idéal et souhaitable :
- FK sur les interventions. Une intervention est un opération unique et simple sur le terrain comme le remplacement d'une lame de signalétique, le débroussaillage d'un sentier...) donc il me semble bien qu'une intervention ne puisse avoir qu'un seul prestataire
- M2M sur les chantiers comme actuellement, car un chantier regroupe plusieurs interventions et peut donc avoir plusieurs prestataires
Donc pour moi c'est idéal qu'ils soient différents car les interventions et les chantiers sont des objets de niveau différent, et ainsi bien confirmer la position et le rôle différent de chacun de ces objets.
Mais si c'est plus simple ou utile pour certains d'avoir aussi du M2M sur les prestataires des interventions, ça m'ira aussi.
Le champ contractor
devait être une FK sur le modèle intervention (voir commentaire précédent), hors cela a été développé comme une M2M. Il faudrait corriger cela dans un fix je pense.
Après discussion avec @juggler31 il semble que pour plus de simplicité et de liberté d'usage, lors du développement, le fait d'utiliser un champ M2M ai été volontaire .
Pour cela il s'est référé au commentaire qui disait si c'est plus simple ou utile pour certains d'avoir aussi du M2M sur les prestataires des interventions, ça m'ira aussi
.
C'est vrai qu'après réflexion : qui peut le plus peut le moins. Si on laisse un champ en FK on aura peut-être besoin de le faire évoluer plus tard en M2M pour convenir aux usages de certains territoires. Si c'est dès le début un M2M ca ne change rien pour les territoires qui voudraient avoir une unicité (1 intervention = 1 prestataire), il suffira de ne pas mettre plusieurs valeurs.
Je propose donc qu'on reste comme ça.
Oui mais si le champs le permet, alors ne peut pas garantir que cela sera saisi de manière homogène et cohérente. Et il me semblait pertinent d'orienter sur :
- Un chantier peut avoir plusieurs prestataires
- Une intervention ne peut avoir qu'un seul prestataire
Mais OK, on verra à l'usage si cela pose soucis de permettre de mettre plusieurs prestataires sur une intervention, ou si, au contraire, c'est utile et pertinent.
Sur la fiche d'un chantier, j'ai un NONE qui est affiché pour les prestataires de ses interventions :
TODO :
- [x] Sur le module chantiers, dans les filtres, renommer le filtre "Prestatires des interventions" en "Prestataires" (vérifier que ça couvre bien les deux champs prestatiartes sur les interventions et sur les chantiers)
- [x] Corriger l'afficher du
None