Stage Sign Widgets¶
Stage-specific widgets injected into the SignProjectDialog based on which project stage the user is signing.
Architecture¶
SignProjectDialog uses lazy imports via _STAGE_WIDGET_MAP to load the correct widget for the current stage. All widgets extend BaseStageSignWidget, which defines the shared signal contract:
validation_changed(bool)- controls whether the sign button is enabledsign_button_text_requested(str)- dynamically updates the sign button label
Widgets¶
| Widget | Stage | Purpose |
|---|---|---|
CPStageSignWidget |
Vorplanung | Optional DP release with keyword validation ("Freigeben") |
DPStageSignWidget |
Detailplanung | Optional versioned release with minor/major bump and keyword validation ("Bestaetigen") |
EPlanStageSignWidget |
E-Planung | Placeholder (no additional options) |
SoftwareStageSignWidget |
Software | Placeholder (no additional options) |
ComServStageSignWidget |
IBWartung | Placeholder (no additional options) |
Adding a New Stage Widget¶
- Create a
.uifile inui/and generate the pyui file inpyui/ - Create a widget class extending
BaseStageSignWidget - Override
get_stage_data()to return stage-specific data - Emit
validation_changed/sign_button_text_requestedas needed - Register the widget in
_STAGE_WIDGET_MAPinsign_project_dialog.py - Add a
StylesheetsPathDef instartup_system/constants/paths.py