Skip to content

Feature/fas 561 us m4 mandataire selectionner les lots et le mode de reponse - #504

Open
lordinatrice wants to merge 7 commits into
feature/fas-573-groupement-composition-invitationsfrom
feature/fas-561-us-m4-mandataire-selectionner-les-lots-et-le-mode-de-reponse
Open

Feature/fas 561 us m4 mandataire selectionner les lots et le mode de reponse#504
lordinatrice wants to merge 7 commits into
feature/fas-573-groupement-composition-invitationsfrom
feature/fas-561-us-m4-mandataire-selectionner-les-lots-et-le-mode-de-reponse

Conversation

@lordinatrice

@lordinatrice lordinatrice commented Aug 18, 2026

Copy link
Copy Markdown
Collaborator
Capture d’écran 2026-08-19 à 13 10 19

@linear

linear Bot commented Aug 18, 2026

Copy link
Copy Markdown

FAS-561

@lordinatrice
lordinatrice force-pushed the feature/fas-561-us-m4-mandataire-selectionner-les-lots-et-le-mode-de-reponse branch from 90d4f48 to d8796f0 Compare August 19, 2026 11:10
…(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
lordinatrice force-pushed the feature/fas-561-us-m4-mandataire-selectionner-les-lots-et-le-mode-de-reponse branch from d8796f0 to ec896b9 Compare August 19, 2026 12:34
…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).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant