Add a seating messages setting, so a house chooses when a booker is told how their party is sitting

Implements the design in the issue summary.

The house names the rung it starts speaking at, as a floor on SeatingCloseness::getRank(). Everything is the default, so nothing a site says today changes.

  • SeatingMessages, six answers, and SeatingMessagesResolver beside AreaChoiceResolver.
  • SeatingCloseness::isWorthSaying() had no callers anywhere; it takes the house's answer rather than a second method being added beside it. The sentence is built only when it says yes.
  • Both emitters of the row a party left ask the same method. The consolidation path builds its own assignment and computes no closeness, so a condition written only beside the ladder would have leaked there.
  • The field is display-configurable with no form display options: the flag is what registers the field rule, so the tenant and the resource type answer through their existing screens, and the control stays off the resource form.
  • A refusal is not on this ladder and does not become optional.

Coverage: a unit test over every rung against every answer, and two kernel scenarios beside the ones they silence.

Merge request reports

Loading