Fristenrechner: forum & inbox-channel pre-filter (CMS / beA / Posteingang) #15
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Most users live in either national German or UPC world — let them set that once and have the whole tool narrow accordingly. Inbox channels (CMS / beA / Posteingang) are a natural shortcut for picking the forum:
m clarification (2026-05-08): channel does NOT change deadline math. § 41a-style 3-day-Eingangsfiktion or similar rules are not modeled here. The channel selector is purely a forum/proceeding-narrowing UX shortcut — picking CMS auto-narrows to UPC, picking beA auto-narrows to national-DE.
Scope
paliad.user_preferencesrow, or local-storage; cross-device matters).Out of scope
Context
t-paliad-157 items 5 + 6.
First two slices on
mai/feynman/fristenrechner:06bd276— Schema + backend wiring. Migration 064 addspaliad.users.forum_pref(text, CHECK enum:cms,bea,posteingang), wires it throughmodels.User, theuserColumnsSELECT, andUpdateProfileInput. Empty string clears (matches EscalationContactID convention).isValidForumPrefmirrors the DB CHECK so callers see typed errors. Migration applied live; tracker at v64.1df1bc7— Frontend chip strip on/tools/fristenrechner+ filter on Pathway A picker. Three chips (CMS, beA, Posteingang) plus an "Alle" reset. State priority: URL?inbox=→/api/mesaved pref → unset. Click writes URL, applies filter (hides non-matching.proceeding-groupvia newdata-forumattributes), and PATCHes/api/meopportunistically. 6 new i18n keys (DE+EN) underdeadlines.inbox.*. CSS bound to existing token palette.Mapping: CMS → UPC; beA / Posteingang → national-DE. EPA / DPMA fall out when a chip is active; users reach them via the existing B2 search or by clearing the chip.
Untouched (orthogonal to this slice):
Hard rules respected: not self-merged, NOT cronus, no
RAISE EXCEPTION, only existing CSS tokens.Slice 3 pushed:
e879298— inbox chip now drives the existing B2 fine-bucket forum filter (activeForums). Picking CMS auto-selects upc_cfi + upc_coa; picking beA / Posteingang auto-selects all four DE buckets (de_lg, de_olg, de_bgh, de_bpatg); "Alle" clears both.State-priority discipline keeps URL shares honest:
activeForumswith the inbox-derived set.?forum=is empty. An explicit?forum=wins over the saved pref so a CMS-narrowed share link still works for a recipient with a different default.What's covered by #15 now:
paliad.users.forum_prefschema + service + PATCH /api/me wiring./tools/fristenrechnerwith persistence + URL?inbox=override..proceeding-groupviadata-forum).What's deferred (worth a follow-up):
.upc-,.de-,.epa-,.dpma-suffixes) or a small migration adding aforums text[]column. Heuristic is brittle; migration is cleaner. Not in scope here — happy to file as a follow-up issue or fold into #16's IA-reframe work since it overlaps with the cascade restructure.Branch on
mai/feynman/fristenrechnerready for head merge.B1 follow-up shipped:
6ef14dd— inbox chip now narrows the B1 decision tree alongside Pathway A and B2.Migration 065 adds
paliad.event_categories.forums text[](CHECK on{upc, de, epa, dpma}, partial GIN index) plus a two-step backfill:upc-,.upc,-upc,.de-,-de-,epa,dpma). Token-bounded so.dpmadoesn't trip thederule.r116-eingabenis EPA-only.NULL stays neutral. Top-level branches, Mündliche Verhandlung sub-states, and court-generic events (Ladung, Kostenfestsetzung, Anordnung) intentionally stay reachable from every chip setting so the cross-jurisdictional middle of the cascade remains accessible. Mig applied live; tracker at v65.
Frontend:
EventCategoryNode.forums?exposed in the tree JSON;applyInboxFilterre-renders the cascade in place when the chip changes;inboxFilterAllowsForums(forums)gates each child render — neutral nodes always pass.#15 acceptance now complete:
paliad.users.forum_prefschema + service + PATCH /api/me wiring./tools/fristenrechnerwith persistence + URL?inbox=override.data-forum.paliad.event_categories.forums.Branch on
mai/feynman/fristenrechner(4 commits ahead), ready for merge.Two follow-up slices on
mai/feynman/fristenrechnerfrom m's 2026-05-08 17:50 feedback:ac15911— moved the inbox-channel chip out of the page header and into the B1 panel (above the cascade). Pathway A's Verlauf no longer filters on inbox — m's call: "Verlauf does not need to see that". B2 fine-bucket sync stays (B2 lives inside the Determinator). Thedata-forumattributes stay on the picker markup as documentation but no longer drive visibility.ef78f59— RoP.151-style rules (real duration chained off a court-set parent) now render "unbestimmt" instead of "wird vom Gericht bestimmt". Direct court-set events (Urteil / Beschluss / Anordnung) keep the original label. NewIsCourtSetIndirectflag on UIDeadline distinguishes the two cases; same split applied in the save-modal label.Items 2 + 4 from the batch (optional deadlines, more opponent-side proceeding types + role variants) remain open. Ready to take whichever m wants next.
Item 4 shipped:
fdbbc74— migration 069 adds 5 new opponent-side parent nodes + 17 leaves undercms-eingang.gegenseite:Each leaf wires to the existing
deadline_concepts(notice-of-appeal, statement-of-grounds-of-appeal, response-to-appeal, cross-appeal, reply-to-cross-appeal, application-for-provisional-measures, statement-of-defence, nichtzulassungsbeschwerde[-begruendung], revisionsfrist, revisionsbegruendung, rechtsbeschwerde[-begruendung]) withproceeding_type_codenarrowing so the result card pills only show the relevant proceeding.forumstag set per parent + leaf so the inbox-channel chip narrows correctly. Idempotent INSERTs (ON CONFLICT (slug) DO UPDATE). Mig applied live; tracker at v69.Branch on
mai/feynman/fristenrechneris 1 commit ahead of main.Role variants (Klägerseite vs Beklagtenseite, Berufungskläger vs -beklagte) are still on the Determinator-redesign side — naturally derived from the project context once Slice 1 (project picker) lands. Standing by for the next thread.