Seed the Annual Evaluation 2026 form - #2479
Merged
Merged
Conversation
Facilitators fill out AWBW's Annual Evaluation each year; this seeds the whole SurveyMonkey questionnaire as one standalone published form so it lives in the portal and its submissions roll up on the results page. Percentages and counts are number fields (not sliders) so this stands alone — mergeable now, ahead of the slider type. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Model the identity, organization, credential, and age-group questions the same way the registration and CE-callout forms do, so their answers resolve to real records rather than free text: - Split name into First/Last with first_name/last_name identifiers, and mark name + primary email logged_out_only (prefill target for signed-in users). - Pronouns is a text field with the pronouns identifier (saves to the Person). - Rename the agency questions to Organization Name / Position / Website using the organization_* identifiers and registration widths. - Credentials become the CE-callout license fields (ce_license_*), so they can save to a ProfessionalLicense. - Primary age group is the dynamic primary_age_group dropdown (AgeRange options). - The four yearly-reach counts sit on one row (quarter width). - Retitle the form to 2026. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Layout pass from reviewing the rendered form: - Name row: First / Last / Pronouns share one row (third width); pronouns helper text is a hint, so the inputs align. - Organization Name and License type helper text moved to hints (alignment). - Country / language detail boxes are one-line half-width fields, parallel to their Yes/No, and still accept a long answer. - Workshop-percentage pair is half width; credentials are quarter width (one row). - Ethnicity percentages are third width; gender percentages are quarter width. - Removed the "add a secondary email address" yes/no question. - Moved the Federal Poverty Line question into the participants section. Also make the seed converge on re-run: existing fields are updated to the current definition and fields no longer defined are pruned, so layout tweaks show without dropping the form. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Rename "State where your license was issued" → "State license was issued", drop LEP from the license-type examples, and "outside of" → "outside the". - Match existing fields by field_identifier before name, so renaming an identified field updates it in place instead of colliding on the unique identifier and leaving a duplicate. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…er field Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🤖 suggested review level: 3 Read 📖 additive dev seed + rake task; worth a read to check question wording, field identifiers, and types
Seeds AWBW's Annual Evaluation as one standalone, published form — the full SurveyMonkey questionnaire facilitators complete each year — so it lives in the portal and its submissions roll up on
/forms/:id/results.Part of #136.
What / why
db/seeds/dev/annual_evaluation.rb(rake db:seed:annual_evaluation, also part ofdb:seed:dev): about you, organization info, your work, yearly reach, impact ratings, participant demographics, program impact on you, spread-the-word.Fields modeled like the registration / CE-callout forms
So answers resolve to real records (not free text), and match how the rest of the portal collects them:
first_name/last_name) and Primary Email arelogged_out_only, so once prefill lands a signed-in facilitator isn't re-asked. They save to the Person on submit.pronounsidentifier (saves to the Person).organization_*identifiers and registration widths.ce_license_kind/_number/_issuing_state/_expires_on), so they can save to aProfessionalLicense.primary_age_groupdropdown (options from the AgeRange categories; the seed's answers store category ids).quarterwidth).Numbers, not sliders (deliberate)
number_integer), so this PR is independent of the slider type (Add a slider (0–100) form-field type, and use it for the evaluation #2462) and mergeable now. Paired with Summarize number form questions on the results page #2477 (numeric results stats) they render as average / total / responses.Important: persistence is set up, not yet wired
The identifiers above make these fields ready to save to Person / Organization / ProfessionalLicense / primary age group — but the standalone submission flow (
PublicFormSubmission) today only creates the Person (name/email/pronouns) and stores every answer. Persisting the organization, license, and age-group (and updating an existing person, which is what makes the "what this submission changed" page light up) is the prefill / save-participant-data PR — the other half of #136.Notes for reviewer
config/features.ymlyet since it isn't auto-deployed — happy to add an entry when the form goes live in prod.Anything else to add?
Next: the prefill / save-participant-data PR that wires these identifiers through on submit and hides the
logged_out_onlyfields for signed-in users.