refactor agent creneaux searches routes
Created by: adipasquale
refacto du code de "trouver un créneau" , preliminaire pour https://trello.com/c/dQzWcy1m/597-ajouter-un-filtre-par-service-dans-la-vue-trouver-un-cr%C3%A9neau
ce refacto va clairement plus loin que ce qui était utile pour ce ticket mais je n'ai pas pu m'empêcher de dérouler le fil ..
Fonctionnel
Quasiment aucun changement visible pour l'agent. La seule différence est que le formulaire était soumis en AJAX, et donc que la page ne se rafraichissait pas avant lorsqu'on le soumettait, ca se faisait de maniere invisible. l'UX est peut etre legerement moins bonne maintenant dans ce sens, MAIS ca a la grand avantage que les parametres GET sont maintenant bien dans l'URL et donc qu'on peut rafraichir ou partager l'url d'une recherche, ce qui n'etait pas possible avant.
Changements dans le code
- La route
by_lieu
a complètement disparu au profit de l'index maintenant plus générique - L'objet formulaire
AgentCreneauxSearchForm
est clarifié, renommé, redéplacé et raccourci pour ne contenir que la logique du formulaire (très peu) et pas celle de la recherche de créneaux - La recherche de créneaux elle meme est déléguée à un nouveau service :
SearchCreneauxForAgentsService
- L'action
index
n'envoie plus que deux instances variables :@form
et@search_results
contre beaucoup avant (@user, @organisation, @next_availability_by_lieux) - Ces dernieres instance variables
next_availability_by_lieux
n'existent plus du tout grace au format de resultat du service : un objet contenant le lieu, les creneaux et la next availability. C'est plus simple a manipuler partout dans les vues, ca evite de devoir aller chercher en faisantnext_availability_by_lieux[lieu.id]
etc - le passage de locales dans les partials a été revu et limité au minimum