Skip to content

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 faisant next_availability_by_lieux[lieu.id] etc
  • le passage de locales dans les partials a été revu et limité au minimum

Merge request reports