This repository has been archived on 2026-02-15. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
breakpilot-pwa/bpmn-processes/classroom-lesson.bpmn
Benjamin Admin bfdaf63ba9 fix: Restore all files lost during destructive rebase
A previous `git pull --rebase origin main` dropped 177 local commits,
losing 3400+ files across admin-v2, backend, studio-v2, website,
klausur-service, and many other services. The partial restore attempt
(660295e2) only recovered some files.

This commit restores all missing files from pre-rebase ref 98933f5e
while preserving post-rebase additions (night-scheduler, night-mode UI,
NightModeWidget dashboard integration).

Restored features include:
- AI Module Sidebar (FAB), OCR Labeling, OCR Compare
- GPU Dashboard, RAG Pipeline, Magic Help
- Klausur-Korrektur (8 files), Abitur-Archiv (5+ files)
- Companion, Zeugnisse-Crawler, Screen Flow
- Full backend, studio-v2, website, klausur-service
- All compliance SDKs, agent-core, voice-service
- CI/CD configs, documentation, scripts

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 09:51:32 +01:00

182 lines
9.1 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
xmlns:di="http://www.omg.org/spec/DD/20100524/DI"
xmlns:camunda="http://camunda.org/schema/1.0/bpmn"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
id="Definitions_Classroom"
targetNamespace="http://breakpilot.de/bpmn/classroom">
<bpmn:process id="ClassroomLessonProcess" name="Unterrichtsstunde" isExecutable="true">
<!-- Start Event -->
<bpmn:startEvent id="start" name="Stunde beginnen">
<bpmn:outgoing>flow_to_einstieg</bpmn:outgoing>
</bpmn:startEvent>
<!-- Phase 1: Einstieg -->
<bpmn:userTask id="phase_einstieg" name="Einstiegsphase" camunda:assignee="${teacherId}">
<bpmn:extensionElements>
<camunda:formData>
<camunda:formField id="duration" label="Dauer (Minuten)" type="long" defaultValue="10" />
<camunda:formField id="activity" label="Aktivitaet" type="string" />
</camunda:formData>
</bpmn:extensionElements>
<bpmn:incoming>flow_to_einstieg</bpmn:incoming>
<bpmn:outgoing>flow_to_erarbeitung1</bpmn:outgoing>
</bpmn:userTask>
<!-- Service Task: Content-Vorschlaege Einstieg -->
<bpmn:serviceTask id="suggest_einstieg" name="Content-Vorschlaege" camunda:delegateExpression="${contentSuggestionDelegate}">
<bpmn:incoming>flow_suggest_einstieg</bpmn:incoming>
<bpmn:outgoing>flow_from_suggest_einstieg</bpmn:outgoing>
</bpmn:serviceTask>
<!-- Phase 2: Erarbeitung I -->
<bpmn:userTask id="phase_erarbeitung1" name="Erarbeitung I" camunda:assignee="${teacherId}">
<bpmn:extensionElements>
<camunda:formData>
<camunda:formField id="duration" label="Dauer (Minuten)" type="long" defaultValue="15" />
<camunda:formField id="sozialform" label="Sozialform" type="enum">
<camunda:value id="einzelarbeit" name="Einzelarbeit" />
<camunda:value id="partnerarbeit" name="Partnerarbeit" />
<camunda:value id="gruppenarbeit" name="Gruppenarbeit" />
</camunda:formField>
<camunda:formField id="content" label="Lerneinheit" type="string" />
</camunda:formData>
</bpmn:extensionElements>
<bpmn:incoming>flow_to_erarbeitung1</bpmn:incoming>
<bpmn:outgoing>flow_to_erarbeitung_gateway</bpmn:outgoing>
</bpmn:userTask>
<!-- Gateway: Weitere Erarbeitung? -->
<bpmn:exclusiveGateway id="erarbeitung_gateway" name="Weitere Erarbeitung?">
<bpmn:incoming>flow_to_erarbeitung_gateway</bpmn:incoming>
<bpmn:outgoing>flow_to_erarbeitung2</bpmn:outgoing>
<bpmn:outgoing>flow_to_sicherung</bpmn:outgoing>
</bpmn:exclusiveGateway>
<!-- Phase 2b: Erarbeitung II (optional) -->
<bpmn:userTask id="phase_erarbeitung2" name="Erarbeitung II" camunda:assignee="${teacherId}">
<bpmn:incoming>flow_to_erarbeitung2</bpmn:incoming>
<bpmn:outgoing>flow_from_erarbeitung2</bpmn:outgoing>
</bpmn:userTask>
<!-- Phase 3: Sicherung -->
<bpmn:userTask id="phase_sicherung" name="Sicherungsphase" camunda:assignee="${teacherId}">
<bpmn:extensionElements>
<camunda:formData>
<camunda:formField id="duration" label="Dauer (Minuten)" type="long" defaultValue="10" />
<camunda:formField id="method" label="Methode" type="enum">
<camunda:value id="tafel" name="Tafelanschrieb" />
<camunda:value id="digital" name="Digitale Zusammenfassung" />
<camunda:value id="schueler" name="Schueler-Praesentation" />
</camunda:formField>
</camunda:formData>
</bpmn:extensionElements>
<bpmn:incoming>flow_to_sicherung</bpmn:incoming>
<bpmn:incoming>flow_from_erarbeitung2</bpmn:incoming>
<bpmn:outgoing>flow_to_transfer</bpmn:outgoing>
</bpmn:userTask>
<!-- Phase 4: Transfer -->
<bpmn:userTask id="phase_transfer" name="Transferphase" camunda:assignee="${teacherId}">
<bpmn:extensionElements>
<camunda:formData>
<camunda:formField id="duration" label="Dauer (Minuten)" type="long" defaultValue="8" />
<camunda:formField id="aufgabe" label="Transfer-Aufgabe" type="string" />
</camunda:formData>
</bpmn:extensionElements>
<bpmn:incoming>flow_to_transfer</bpmn:incoming>
<bpmn:outgoing>flow_to_reflexion</bpmn:outgoing>
</bpmn:userTask>
<!-- Phase 5: Reflexion -->
<bpmn:userTask id="phase_reflexion" name="Reflexion &amp; Abschluss" camunda:assignee="${teacherId}">
<bpmn:extensionElements>
<camunda:formData>
<camunda:formField id="duration" label="Dauer (Minuten)" type="long" defaultValue="5" />
<camunda:formField id="hausaufgabe" label="Hausaufgabe" type="string" />
<camunda:formField id="notizen" label="Stundennotizen" type="string" />
</camunda:formData>
</bpmn:extensionElements>
<bpmn:incoming>flow_to_reflexion</bpmn:incoming>
<bpmn:outgoing>flow_to_protokoll</bpmn:outgoing>
</bpmn:userTask>
<!-- Service Task: Stundenprotokoll -->
<bpmn:serviceTask id="create_protokoll" name="Stundenprotokoll erstellen" camunda:delegateExpression="${lessonProtocolDelegate}">
<bpmn:incoming>flow_to_protokoll</bpmn:incoming>
<bpmn:outgoing>flow_to_end</bpmn:outgoing>
</bpmn:serviceTask>
<!-- End Event -->
<bpmn:endEvent id="end" name="Stunde beendet">
<bpmn:incoming>flow_to_end</bpmn:incoming>
</bpmn:endEvent>
<!-- Boundary Timer Events -->
<bpmn:boundaryEvent id="timer_einstieg" attachedToRef="phase_einstieg" cancelActivity="false">
<bpmn:timerEventDefinition>
<bpmn:timeDuration>PT${einstiegDuration}M</bpmn:timeDuration>
</bpmn:timerEventDefinition>
<bpmn:outgoing>flow_timer_warning</bpmn:outgoing>
</bpmn:boundaryEvent>
<!-- Sequence Flows -->
<bpmn:sequenceFlow id="flow_to_einstieg" sourceRef="start" targetRef="phase_einstieg" />
<bpmn:sequenceFlow id="flow_to_erarbeitung1" sourceRef="phase_einstieg" targetRef="phase_erarbeitung1" />
<bpmn:sequenceFlow id="flow_to_erarbeitung_gateway" sourceRef="phase_erarbeitung1" targetRef="erarbeitung_gateway" />
<bpmn:sequenceFlow id="flow_to_erarbeitung2" sourceRef="erarbeitung_gateway" targetRef="phase_erarbeitung2">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${needsMoreWork == true}</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:sequenceFlow id="flow_to_sicherung" sourceRef="erarbeitung_gateway" targetRef="phase_sicherung">
<bpmn:conditionExpression xsi:type="bpmn:tFormalExpression">${needsMoreWork == false}</bpmn:conditionExpression>
</bpmn:sequenceFlow>
<bpmn:sequenceFlow id="flow_from_erarbeitung2" sourceRef="phase_erarbeitung2" targetRef="phase_sicherung" />
<bpmn:sequenceFlow id="flow_to_transfer" sourceRef="phase_sicherung" targetRef="phase_transfer" />
<bpmn:sequenceFlow id="flow_to_reflexion" sourceRef="phase_transfer" targetRef="phase_reflexion" />
<bpmn:sequenceFlow id="flow_to_protokoll" sourceRef="phase_reflexion" targetRef="create_protokoll" />
<bpmn:sequenceFlow id="flow_to_end" sourceRef="create_protokoll" targetRef="end" />
</bpmn:process>
<!-- BPMN Diagram -->
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="ClassroomLessonProcess">
<bpmndi:BPMNShape id="start_di" bpmnElement="start">
<dc:Bounds x="152" y="102" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="phase_einstieg_di" bpmnElement="phase_einstieg">
<dc:Bounds x="240" y="80" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="phase_erarbeitung1_di" bpmnElement="phase_erarbeitung1">
<dc:Bounds x="390" y="80" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="erarbeitung_gateway_di" bpmnElement="erarbeitung_gateway" isMarkerVisible="true">
<dc:Bounds x="545" y="95" width="50" height="50" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="phase_erarbeitung2_di" bpmnElement="phase_erarbeitung2">
<dc:Bounds x="520" y="200" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="phase_sicherung_di" bpmnElement="phase_sicherung">
<dc:Bounds x="670" y="80" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="phase_transfer_di" bpmnElement="phase_transfer">
<dc:Bounds x="820" y="80" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="phase_reflexion_di" bpmnElement="phase_reflexion">
<dc:Bounds x="970" y="80" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="create_protokoll_di" bpmnElement="create_protokoll">
<dc:Bounds x="1120" y="80" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="end_di" bpmnElement="end">
<dc:Bounds x="1272" y="102" width="36" height="36" />
</bpmndi:BPMNShape>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn:definitions>