Sectorisation par Site à l'échelle de la commune
Created by: adipasquale
https://trello.com/c/3poo0MxG/859-sectorisation-par-site
- 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 deAgentAuthController
(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.