From 75ea6825b219cc85160fe06e8d172c600107c42f Mon Sep 17 00:00:00 2001 From: Chaim Date: Sat, 11 Apr 2026 16:36:50 +0000 Subject: [PATCH] Remove committee_type from case wizard and header MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The committee_type field in FastAPI's CaseCreateRequest is a leftover with no meaningful UI. Appeals against a ועדה מקומית / ועדה מחוזית are legally distinguishable by case-number range, not by a picked committee label; appeals against a ועדת ערר decision go to בית משפט לעניינים מנהליים and never enter this system at all. The backend retains its "ועדה מקומית" default, which is what we'd send anyway. Drop the Select from the wizard's basics step and the "ועדה" row from the case detail header. The Case TS type keeps the optional field so existing API responses still parse cleanly. Co-Authored-By: Claude Opus 4.6 (1M context) --- .taskmaster/tasks/tasks.json | 8 +++---- web-ui/src/components/cases/case-header.tsx | 4 ---- web-ui/src/components/wizard/case-wizard.tsx | 24 ++------------------ web-ui/src/lib/schemas/case.ts | 7 ------ 4 files changed, 6 insertions(+), 37 deletions(-) diff --git a/.taskmaster/tasks/tasks.json b/.taskmaster/tasks/tasks.json index f190bf1..16dc144 100644 --- a/.taskmaster/tasks/tasks.json +++ b/.taskmaster/tasks/tasks.json @@ -834,13 +834,13 @@ "description": "Port new case wizard, bulk upload, inline forms on case detail. Use react-hook-form + zod with schemas in lib/schemas/.ts. Build shared from shadcn Card + Progress + Tabs. Build (react-dropzone + shadcn). Integrate SSE for upload progress via lib/sse.ts. Plan: ~/.claude/plans/joyful-marinating-sutton.md.", "details": "See full plan at ~/.claude/plans/joyful-marinating-sutton.md for architecture, critical files, risks, and open questions. This task is phase 4 of 7 in the legal-ai UI rewrite from vanilla HTML to Next.js 15 + shadcn/ui.", "testStrategy": "Users can create a new case via the multi-step wizard (case appears in Gitea + Paperclip), upload documents with live SSE progress, and edit case fields inline.", - "status": "in-progress", + "status": "done", "dependencies": [ "85" ], "priority": "medium", "subtasks": [], - "updatedAt": "2026-04-11T16:18:28.714Z" + "updatedAt": "2026-04-11T16:25:55.569Z" }, { "id": "87", @@ -884,9 +884,9 @@ ], "metadata": { "version": "1.0.0", - "lastModified": "2026-04-11T16:18:28.714Z", + "lastModified": "2026-04-11T16:25:55.570Z", "taskCount": 58, - "completedCount": 52, + "completedCount": 53, "tags": [ "master" ] diff --git a/web-ui/src/components/cases/case-header.tsx b/web-ui/src/components/cases/case-header.tsx index 8966990..2a9c137 100644 --- a/web-ui/src/components/cases/case-header.tsx +++ b/web-ui/src/components/cases/case-header.tsx @@ -55,10 +55,6 @@ export function CaseHeader({ data }: { data?: CaseDetail }) { עודכן
{formatDate(data?.updated_at)}
-
- ועדה -
-
{data?.committee_type ?? "—"}
diff --git a/web-ui/src/components/wizard/case-wizard.tsx b/web-ui/src/components/wizard/case-wizard.tsx index 30b89fe..88700d6 100644 --- a/web-ui/src/components/wizard/case-wizard.tsx +++ b/web-ui/src/components/wizard/case-wizard.tsx @@ -16,7 +16,7 @@ import { import { PartiesField } from "@/components/wizard/parties-field"; import { useCreateCase } from "@/lib/api/cases"; import { - caseCreateSchema, committeeTypes, expectedOutcomes, + caseCreateSchema, expectedOutcomes, type CaseCreateInput, } from "@/lib/schemas/case"; @@ -31,7 +31,7 @@ type StepKey = (typeof STEPS)[number]["key"]; /* Fields validated at each step — lets the user fix just what's on screen * before moving forward, instead of surfacing all errors from page 1. */ const STEP_FIELDS: Record = { - basics: ["case_number", "title", "committee_type"], + basics: ["case_number", "title"], parties: ["appellants", "respondents"], details: ["subject", "hearing_date", "expected_outcome", "notes", "property_address", "permit_number"], }; @@ -57,7 +57,6 @@ export function CaseWizard() { subject: "", property_address: "", permit_number: "", - committee_type: "ועדה מקומית", hearing_date: "", notes: "", expected_outcome: "", @@ -137,25 +136,6 @@ export function CaseWizard() { -
- - ( - - )} - /> -
)} diff --git a/web-ui/src/lib/schemas/case.ts b/web-ui/src/lib/schemas/case.ts index 022342c..d5d2386 100644 --- a/web-ui/src/lib/schemas/case.ts +++ b/web-ui/src/lib/schemas/case.ts @@ -24,12 +24,6 @@ const dateString = z message: "תאריך חייב להיות בפורמט YYYY-MM-DD", }); -export const committeeTypes = [ - "ועדה מקומית", - "ועדה מחוזית", - "ועדת ערר", -] as const; - export const expectedOutcomes = [ { value: "", label: "— לא נקבע —" }, { value: "rejection", label: "דחייה" }, @@ -54,7 +48,6 @@ export const caseCreateSchema = z.object({ subject: z.string().trim().max(500), property_address: z.string().trim().max(200), permit_number: z.string().trim().max(100), - committee_type: z.enum(committeeTypes), hearing_date: dateString, notes: z.string().trim().max(2000), expected_outcome: z.enum(