Skip to content

Sectorisation par Site à l'échelle de la commune

Vincent Agnano requested to merge feature/sectorisation-site into master

Created by: adipasquale

https://trello.com/c/3poo0MxG/859-sectorisation-par-site

️ Grosse PR ~1500 lignes + 1000l. de seeds et CSV.

️ À lire absolument commit par commit

  • Les deux premiers commits sont des refactos qui pourraient être faits dans des PRs indépendantes.
  • Puis il y a deux migrations : la création de Zones et l'ajout de organisations#human_id
  • J'ajoute ensuite plein de seeds (900 zones depuis un CSV).
  • Ensuite j'ajoute des interfaces agents admin departement pour modifier les Zones en CRUD classique
  • Puis une interface qui permet de modifier tous les organisations.human_id du departement d'un coup
  • Puis un service pour importer des fichiers de zones aux formats CSV ou XLS + l'interface qui permet de l'utiliser
  • Puis une vue carte un peu hacky avec mapboxgl
  • enfin je filtre les recherches utilisateurs en utilisant les zones

TODO apres review:

  • afficher le city code plutot que le code postal dans l'autocomplete d'adresse BAN
  • traduire les labels du zone form
  • rajouter des hints pour expliquer la difference code commune code postal
  • traduire la pagination
  • corriger wording create zone submit
  • fix active in sectorisation menu
  • add update zone policy
  • retirer champ departement du zone form
  • add uniqueness validation human_id by dpt
  • remove intermediate zone form
  • in zones search form filter organisations on departement
  • remove admin_departement policy
  • add setup introductory page
  • fix menu links look
  • add env variable to enable sectorisation per departement + make it exclusive. no zone found = no search results
  • deplacer les controlleurs dans un namespace departements

Zones ameliorables :

  • contexte pundit pourrait etre changé pour inclure le departement + ameliorer la policy des zones
  • AgentDepartementAuthController pourrait ne pas heriter de AgentAuthController (il n'y a pas de current_organisation dans le departement)
  • le dernier commit coté user est dur a lire, je pourrais extraire un refacto prealable
  • je ne supporte que l'encoding utf-8 je suis a peu pres sur que ca ne va pas suffire. on pourrait utiliser la gem chardet.

choix techniques:

  • dans la table zones j'ai préféré utiliser une string plutot qu'un entier énuméré. je trouve ca extremement utile de pouvoir lire les valeurs dans la table SQL sans avoir a avoir la reference du code sous les yeux. ca va un peu a l'encontre du reste de la codebase.

Screenshots:

Screenshot 2020-06-17 at 12 00 33 Screenshot 2020-06-17 at 12 00 49 Screenshot 2020-06-17 at 12 01 03 Screenshot 2020-06-17 at 12 01 08 Screenshot 2020-06-17 at 12 01 11 Screenshot 2020-06-17 at 12 01 19 Screenshot 2020-06-17 at 12 02 22

Merge request reports