Skip to content
EntryWick documentation

For whoever decides what a registrant is asked.

Forms — the builder

Who opens it: whoever decides what a registrant is asked.

What they came to do: build the questions, in pages, with the ones that only apply to some people hidden until they do.

True when they leave: the form asks what the organization needs and nothing it does not, and a registrant on a phone can finish it.

Decisions already made

  • A form is a document, not a table of columns. forms.schema holds pages and fields (docs/schemas/form.schema.json), so a question can be added without a migration and an event template can carry a whole form in a file.
  • A field either maps somewhere or is an answer. map: attendee.first_name writes the column; anything under attendee.answers.* is kept as the registrant's own answer and is exportable, printable and rule-readable. A field with no map is asked and forgotten, which is almost never what anybody means.
  • Versions, not edits. Saving writes the next version; a submission records the version it was made with, so "what did we ask in March?" has an answer. A live form's earlier versions keep the answers already given.
  • Conditional logic is a list of rules, evaluated on both sides. schema.logic shows, hides, requires and sets; the browser evaluates it so the form does not round-trip, and the server evaluates it again on submit because the browser is not to be trusted. form_conditional_logic is the plan's key for it.
  • Re-importing an event template gives its forms a new code, never a new version — a registration form points at a form row, and versioning over the first event's form would silently change what that event collects (EVENT_TEMPLATE_FORMAT §4.4).
  • A file a registrant uploads is scanned before it is kept (form-uploads.md).
  • Consent is a field type, carrying the document it consents to and a version, so a signature means something a year later (photo-release.md).

Open questions

  • There is no preview of the form as a registrant sees it from this screen; the way to look is to open the registration form's public link, which is right but is two steps.
  • Nothing warns that a question is asked twice in different words across two forms of the same event.