From a9c4a074d3b18cb6b50a4aca3bbba4e26f0d2ef0 Mon Sep 17 00:00:00 2001 From: Joel Brock Date: Tue, 9 Jun 2026 12:09:07 -0700 Subject: [PATCH] Form: drop sole required field; broaden currency field visibility MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit No fields on the survey should block submit — removes required:true from Preliminary_Market_Assessment so the form is fully optional end to end. Surfaces Stage 0 sources-and-uses currency fields (Total_cost_of_project, Member_equity_raised, Member_loans_raised, Member_preferred_shares_raised, Bank_debt_raised, Grants_Donations_Raised, Other_sources_raised) starting at Business Feasibility instead of Stabilize so they can be filled in earlier in the lifecycle. --- config/form.ts | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/config/form.ts b/config/form.ts index 4cbe86e..d81351b 100644 --- a/config/form.ts +++ b/config/form.ts @@ -239,7 +239,7 @@ const stage0: StageSectionConfig = { name: "Total_cost_of_project", label: "Total cost of project", type: "currency", - visibleWhen: visibleAtOrAfter(S.Stabilize), + visibleWhen: visibleAtOrAfter(S.BusinessFeasibility, S.StoreImplementation, S.Stabilize), civiField: `${G0}.Total_cost_of_project`, help: "Current estimate of the total cost of the project, up to store opening", }, @@ -253,7 +253,7 @@ const stage0: StageSectionConfig = { name: "Member_equity_raised", label: "Member-Owner equity raised", type: "currency", - visibleWhen: visibleAtOrAfter(S.Stabilize), + visibleWhen: visibleAtOrAfter(S.BusinessFeasibility, S.StoreImplementation, S.Stabilize), civiField: `${G0}.Member_equity_raised`, help: "Member-owner equity raised, as of the time of survey", }, @@ -267,7 +267,7 @@ const stage0: StageSectionConfig = { name: "Member_loans_raised", label: "Member-Owner loans raised", type: "currency", - visibleWhen: visibleAtOrAfter(S.Stabilize), + visibleWhen: visibleAtOrAfter(S.BusinessFeasibility, S.StoreImplementation, S.Stabilize), civiField: `${G0}.Member_loans_raised`, help: "Total amount (USD) raised from member-owner loans, as of the time of survey", }, @@ -281,16 +281,16 @@ const stage0: StageSectionConfig = { name: "Member_preferred_shares_raised", label: "Member-Owner preferred shares raised", type: "currency", - visibleWhen: visibleAtOrAfter(S.Stabilize), + visibleWhen: visibleAtOrAfter(S.BusinessFeasibility, S.StoreImplementation, S.Stabilize), civiField: `${G0}.Member_preferred_shares_raised`, help: "Total amount (USD) raised from preferred shares sold to member-owners in the latest Sources and Uses doc", }, // { name: "Bank_debt_total", label: "Bank debt total needed", type: "currency", civiField: `${G0}.Bank_debt_total` }, - { name: "Bank_debt_raised", label: "Bank debt raised", type: "currency", visibleWhen: visibleAtOrAfter(S.Stabilize), civiField: `${G0}.Bank_debt_raised`, help: "Total amount (USD) raised from bank debt (or other first position lender) in the latest Sources and Uses doc" }, + { name: "Bank_debt_raised", label: "Bank debt raised", type: "currency", visibleWhen: visibleAtOrAfter(S.BusinessFeasibility, S.StoreImplementation, S.Stabilize), civiField: `${G0}.Bank_debt_raised`, help: "Total amount (USD) raised from bank debt (or other first position lender) in the latest Sources and Uses doc" }, // { name: "Grant_Donations_Needed", label: "Grants / Donations Needed", type: "currency", civiField: `${G0}.Grant_Donations_Needed` }, - { name: "Grants_Donations_Raised", label: "Grants / Donations Raised", type: "currency", visibleWhen: visibleAtOrAfter(S.Stabilize), civiField: `${G0}.Grants_Donations_Raised`, help: "Total amount (USD) raised from Grants and Donations in the latest Sources and Uses doc" }, + { name: "Grants_Donations_Raised", label: "Grants / Donations Raised", type: "currency", visibleWhen: visibleAtOrAfter(S.BusinessFeasibility, S.StoreImplementation, S.Stabilize), civiField: `${G0}.Grants_Donations_Raised`, help: "Total amount (USD) raised from Grants and Donations in the latest Sources and Uses doc" }, // { name: "Other_sources_total", label: "Other sources total needed", type: "currency", civiField: `${G0}.Other_sources_total` }, - { name: "Other_sources_raised", label: "Other sources raised", type: "currency", visibleWhen: visibleAtOrAfter(S.Stabilize), civiField: `${G0}.Other_sources_raised`, help: "Total amount (USD) successfully raised from other sources in the latest Sources and Uses doc (e.g. community loans or grants, free fill, vendor credit, landlord contribution, etc). Does not include member-owner contributions (loans or equity) or bank debt." }, + { name: "Other_sources_raised", label: "Other sources raised", type: "currency", visibleWhen: visibleAtOrAfter(S.BusinessFeasibility, S.StoreImplementation, S.Stabilize), civiField: `${G0}.Other_sources_raised`, help: "Total amount (USD) successfully raised from other sources in the latest Sources and Uses doc (e.g. community loans or grants, free fill, vendor credit, landlord contribution, etc). Does not include member-owner contributions (loans or equity) or bank debt." }, // { name: "Date_Closed_Folded", label: "Date Closed / Folded", type: "date", civiField: `${G0}.Date_Closed_Folded` }, { name: "FTEs", @@ -315,7 +315,6 @@ const stage1: StageSectionConfig = { name: "Preliminary_Market_Assessment", label: "Preliminary Market Assessment", type: "date", - required: true, civiField: `${G1}.Preliminary_Market_Assessment`, help: "What date was your Preliminary Market Assessment completed?", },