# #10 — Conditionner les prises de parole au secteur d'exposition

> Statut : 🟠 **Lot 2 — en attente** · direction arrêtée (B3) : bascule manuelle en admin, pas de compteur · reprise reportée

**Formulaire :** `offres_complementaires_2027` (id 59) · **Charge :** M
**Dépend de :** [#01](REEX2027-01-secteur-exposition.md), [#09](REEX2027-09-bandeau-prises-de-parole.md)

## Demande client

> Idéalement, la liste des Conférences et Masterclass restant disponibles sont conditionnées au
> bouton "secteur d'exposition" au début de l'inscription. Pour éviter ceci, qui n'est pas visible :

La capture jointe montre la section Masterclass actuelle : sous la case à cocher, un paragraphe de
5 lignes se termine par « **ATTENTION : L'AGORA PACKAGING EST SOLD OUT !** ». L'information la plus
importante — l'offre n'est plus disponible pour ce secteur — est noyée en fin de bloc, après les
conditions de sélection.

C'est le vrai problème à résoudre : **un exposant du secteur Emballages peut aujourd'hui cocher et
payer une Masterclass qui n'est plus disponible**, ce qui génère un remboursement et une reprise
manuelle côté RVR.

## Spécification

Filtrer l'affichage des prises de parole selon la valeur du champ « secteur d'exposition »
saisi au formulaire 1 ([#01](REEX2027-01-secteur-exposition.md)).

Trois comportements possibles par couple (secteur × format), à faire arbitrer :

1. **Masquer** l'offre indisponible ;
2. L'afficher **désactivée**, accompagnée d'un motif court et visible (« Complet pour le secteur
   Emballages ») ;
3. L'afficher normalement.

Recommandation : **2** plutôt que 1. Masquer purement laisse l'exposant sans explication et
générera des mails à l'équipe — l'inverse de l'objectif « faire gagner du temps à RVR ».

## Direction arrêtée (B3)

**Le compteur automatique est écarté.** Décompter les réservations pour fermer l'offre au seuil
atteint paraissait séduisant, mais suppose que le stock réel se résume aux réservations en ligne —
ce qui n'est pas le cas (créneaux attribués hors ligne, désistements, arbitrages de programmation).

**Retenu : une bascule manuelle en back-office**, une case par secteur indiquant s'il reste des
créneaux. L'équipe RVR garde la main, et le formulaire se contente de refléter cet état.

À cadrer à la reprise du ticket :

- **Où loger ces cases ?** Une page de configuration dans le plugin `reuseeconomyexpo` semble le
  plus propre. Un champ extra ne convient pas : il s'agit d'un réglage global à l'édition, pas
  d'une donnée rattachée à un auteur.
- **Granularité :** une case par secteur (6), ou une case par couple secteur × format (12) ? Le
  document parle de « 8 créneaux de Masterclass disponibles par secteur », ce qui suggère que les
  formats se gèrent séparément.
- **Millésimage :** le réglage doit être propre à l'édition, comme le reste du parcours
  (cf. [CLAUDE.md](../CLAUDE.md)).

## En attente

**La reprise du ticket est reportée**, à la demande. Le reste de la spécification ci-dessous
demeure valable.

## Contrainte technique

Le secteur est saisi dans `informations_contact_organisation` (étape 1) et exploité dans
`offres_complementaires_2027` (étape 4) : deux formulaires distincts, remplis à des moments
différents du parcours.

La lecture se fait par une boucle `FORMULAIRES_REPONSES` sur l'`id_auteur` en session, sur le
modèle de ce que fait déjà
[set_dossier_step.html](../squelettes/inclure/set_dossier_step.html) ou
[article-bloc-coexposants.html:1](../squelettes/compositions/article-bloc-coexposants.html#L1).

⚠️ Cas à gérer : l'exposant peut **revenir modifier** son secteur au formulaire 1 après avoir
réservé une Masterclass au formulaire 4. Prévoir le comportement (alerte, invalidation, blocage).

## Critères d'acceptation

- Un exposant ne peut pas réserver une prise de parole indisponible pour son secteur.
- Le motif d'indisponibilité est visible sans avoir à lire un paragraphe entier.
- Le comportement est correct si le secteur n'est pas encore renseigné.
- Le texte « AGORA PACKAGING EST SOLD OUT » codé en dur dans l'explication actuelle est retiré au
  profit du mécanisme automatique.
