Arbetsledarvyn: organisationsöversikt med status och statistik
Rollen arbetsledare får sin vy enligt Master Prompt ('se alla ärenden,
följa status, skapa statistik'):
- Ny behörighetsstyrd endpoint GET /api/oversikt (arbetsledare/admin):
organisationens alla ärenden med status, antal händelser, deltagande
tekniker, objekt och felbeskrivning — allt härlett ur händelseloggen
i en SQL-fråga, aldrig lagrat separat. Tekniker nekas med 403.
- Ny sida /felsokning/oversikt: statistikpanel (totalt/pågående/
avslutade + genomsnittlig ledtid), ärendelista med status och
'Öppna ärendet' som hämtar händelserna till enheten — konfliktfri
flätning om en lokal kopia redan finns. Länkas från kontopanelen
för arbetsledare/admin.
- Integrationstestet utökat: tekniker nekas översikten, arbetsledaren
ser organisationens ärenden och härledningarna (felbeskrivning,
status, händelseantal) stämmer.
Ej implementerat (medvetet): omfördelning av ärenden — överlämnings-
händelsen täcker handover tills en ansvarig-modell införs.
Verifierat: integrationstestets 17 kontroller gröna mot Postgres 16,
28 vitest-tester gröna, produktionsbygge ok, Playwright-röktest grönt.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012EQg3rJsrQ1ZNTvkzmQAtt
This commit is contained in:
@@ -98,6 +98,28 @@ export async function skapaAnvandare(
|
||||
}
|
||||
}
|
||||
|
||||
// Organisationsöversikt (arbetsledare/admin; servern verifierar).
|
||||
export interface OversiktsRad {
|
||||
id: string;
|
||||
nummer: number;
|
||||
skapad: string;
|
||||
delningskod: string | null;
|
||||
metodik_id: string | null;
|
||||
antal_handelser: number;
|
||||
forsta: string | null;
|
||||
senaste: string | null;
|
||||
avslutat: boolean;
|
||||
objekt: string | null;
|
||||
felbeskrivning: string | null;
|
||||
tekniker: string[] | null;
|
||||
}
|
||||
|
||||
export async function hamtaOversikt(): Promise<OversiktsRad[]> {
|
||||
const res = await plattformFetch("/api/oversikt");
|
||||
if (!res.ok) throw new Error(`Fel ${res.status}`);
|
||||
return ((await res.json()) as { arenden: OversiktsRad[] }).arenden;
|
||||
}
|
||||
|
||||
// Autentiserat anrop mot plattformen. En utgången token rensas (401) så
|
||||
// att appen faller tillbaka till lokalt läge tills nästa inloggning.
|
||||
export async function plattformFetch(vag: string, init?: RequestInit): Promise<Response> {
|
||||
|
||||
Reference in New Issue
Block a user