Skip to content

Status pipeline manager: unify duplicated status config + colors #415

Description

@hamin2006

Context

Submission statuses are the backbone of the reviewer table, kanban board, email templates, analytics, and result previews — but they exist as two out-of-sync JSON lists in forms.config with no UI to manage them. Changing the pipeline currently means raw SQL.

Current behavior

  • config.application.subfields[status].options drives the table dropdown, status chips w/ counts, board columns, and bulk/assignment flows (12 statuses live on form 19, incl. might_interview, emailed_for_interview, waitlisted).
  • config.application.status[] (9 statuses on form 19, {id,label,description}) drives the email-template picker and the Settings result previews.
  • The two lists drift independently (form 19 is currently out of sync). No editor for either.
  • Chip colors are a hardcoded STATUS_COLORS map in columns.tsx (9 keys); statuses outside it render unstyled. Board fallback pipeline is hardcoded in board/page.tsx.
  • config.application.status[*].pageId ("offerPage") has no consumer anywhere.

Desired behavior

  • Single admin editor (natural home: Settings or Questions tab) to add/remove/reorder/relabel statuses and assign colors, writing a single source of truth.
  • One canonical status list; the reviewer pipeline (subfields options), email-template picker, previews, and analytics derive from it (either unify the JSON shape or auto-sync the two keys on save).
  • Colors stored per status in config with a fallback for unconfigured statuses.
  • Pipeline order (board columns) follows the configured list order.
  • Migration/backfill for existing forms (form 19, 10, …) to the canonical shape.

Acceptance criteria

  • UI to add, rename, delete (guarded: in-use), reorder, and color statuses
  • Table chips/columns, board, email picker, and previews all reflect one canonical list
  • Existing forms migrated; no drift between the two config keys afterward
  • Statuses without a configured color get a deterministic fallback color

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    BacklogNot in the works at the momentfeature

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions