Grist-fill-form: Fill forms with existing rows

Fill Forms for Existing Rows in Grist

I made a thing:

This allows collecting form responses analogous to Grist Forms, with the main difference being that this focuses on adding data to an existing row, whereas Grist’s built-in forms appear to focus on adding new rows. Accordingly, this can show data existing in the row to the user, to help them answer.

  • Forms are configured in a YAML file. See config.yml for an example.
  • Multiple forms can be configured by NAME, this is the identifier under forms. This appears in the URL as https://HOSTNAME/form/NAME/KEY.
  • The configured key_column identifies the column being searched for KEY. This identifies the row being edited and is expected to be unique.
  • Forms have a Markdown header which is expanded as a Jinja templates. Column values for the selected row are available as variables.
  • Forms can optionally send a notification email when submitted. This email is likewise expanded as a Jinja template, and its sending can be made contingent on user-submitted data.
  • Right now, only two form widgets are supported: text and yesno. There is no form validation beyond marking some fields optional.
  • The UI is moderately pleasant-to-look-at Bootstrap 5.

Forms are public and require no authentication beyond knowledge of the KEY.

I guess this could be considered an elaborate feature request for Grist Forms. :grin:

2 Likes

This sounds great indeed.
Do you have any example to show?

I don’t, unfortunately. My deployment is for an internal information-gathering tool that I can’t easily open up to the world. And even then, each form link can only be submitted once. Here’s a screenshot of what that looks like:

This is what you get from this configuration:

1 Like

Ok, thank you, this is enough to understand