Feature/fas 561 us m4 mandataire selectionner les lots et le mode de reponse - #504
Open
lordinatrice wants to merge 7 commits into
Conversation
lordinatrice
force-pushed
the
feature/fas-561-us-m4-mandataire-selectionner-les-lots-et-le-mode-de-reponse
branch
from
August 19, 2026 11:10
90d4f48 to
d8796f0
Compare
…(FAS-561) MarketApplication#lot_selection_mode_choice_required? et #solo_counterpart (symétrique de #groupement_counterpart) permettent d'insérer une nouvelle étape entre application_mode et grouping_legal_type, uniquement quand le marché a des lots et que le candidat est en mode groupement/mixte.
…S-561) Candidate::SetLotSelectionModes répartit les lots choisis par le mandataire entre sa candidature solo et sa candidature groupement, en validant qu'au moins un lot est affecté à chaque mode requis (seul+groupement en mixte, groupement seul en mode groupement pur). Échoue proprement si la candidature groupement est introuvable plutôt que de lever une exception.
Candidate::LotSelectionModePresenter expose le mode actuel de chaque lot (seul/en groupement/ne pas répondre) en tenant compte des deux candidatures du mandataire, avec pré-positionnement par défaut sur "en groupement". mode_for résout un hash lot_id → mode précalculé une seule fois plutôt que de requêter les associations lot par lot. lots_by_type_sorted est centralisé sur PublicMarket et réutilisé par MarketApplicationPresenter, qui dupliquait la même requête.
Nouvelle étape lot_selection_mode dans le wizard groupement : le mandataire choisit pour chaque lot du marché s'il répond seul, en groupement ou pas du tout, avec une action de masse par typologie et un bouton Continuer désactivé tant que la répartition n'est pas valide. counterpart_next_wizard_step_path délègue à MarketApplication#next_required_wizard_step pour déterminer la prochaine étape requise côté groupement, plutôt que de dupliquer la liste des prédicats de step — ce qui garantit que la navigation entre solo et groupement (retour sur l'écran de choix du mode en lecture seule, puis Continuer) passe bien par l'étape de sélection des lots quand elle est requise.
Couvre l'affichage des options selon le mode candidat, le blocage du bouton Continuer tant qu'au moins un lot seul et un lot groupement (ou un lot groupement en mode groupement pur) ne sont pas choisis, le pré-positionnement par défaut, le regroupement par typologie, l'action de masse, la navigation avant/arrière dans le wizard, et la navigation en mode mixte depuis l'écran de choix du mode en lecture seule côté solo.
errors_from était dupliquée dans 5 interactors et ne faisait que reproduire ActiveModel::Errors#to_hash. Remplace tous les appels par la méthode Rails native.
lordinatrice
force-pushed
the
feature/fas-561-us-m4-mandataire-selectionner-les-lots-et-le-mode-de-reponse
branch
from
August 19, 2026 12:34
d8796f0 to
ec896b9
Compare
…pement Ajoute un point de synchronisation entre le choix du mode de candidature et la reconnexion via magic link : sans lui, Capybara/Selenium pouvait revisiter le lien avant que la requête de soumission du mode ne soit complètement traitée côté serveur, provoquant un scénario flaky préexistant (indépendant de FAS-561).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.