feat(export): Ersteller im Export-Dialog manuell eingebbar
Der Export-Dialog hat ein neues optionales Feld "Ersteller". Ist es gefuellt, wird dieser Name im Bericht als Ersteller verwendet; bleibt es leer, gilt wie bisher die E-Mail des Lage-Erstellers. - export_incident: optionaler Query-Parameter creator, hat Vorrang vor der E-Mail-Ableitung - exportReport (api.js) haengt creator an die Export-URL - submitExport (app.js) liest das neue Feld aus - Eingabefeld im Export-Modal (dashboard.html) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Dieser Commit ist enthalten in:
@@ -1153,6 +1153,7 @@ async def export_incident(
|
||||
scope: str = Query("report", pattern="^(summary|report|full)$"),
|
||||
sections: str = Query(None),
|
||||
branding: str = Query("on", pattern="^(on|off)$"),
|
||||
creator: str = Query(None, max_length=120),
|
||||
current_user: dict = Depends(get_current_user),
|
||||
db: aiosqlite.Connection = Depends(db_dependency),
|
||||
):
|
||||
@@ -1171,10 +1172,13 @@ async def export_incident(
|
||||
row = await _check_incident_access(db, incident_id, current_user["id"], tenant_id)
|
||||
incident = dict(row)
|
||||
|
||||
# Ersteller-Name
|
||||
cursor = await db.execute("SELECT email FROM users WHERE id = ?", (incident["created_by"],))
|
||||
user_row = await cursor.fetchone()
|
||||
creator = user_row["email"] if user_row else "Unbekannt"
|
||||
# Ersteller-Name: manuell uebergebener Wert hat Vorrang, sonst E-Mail des Lage-Erstellers
|
||||
if creator and creator.strip():
|
||||
creator = creator.strip()
|
||||
else:
|
||||
cursor = await db.execute("SELECT email FROM users WHERE id = ?", (incident["created_by"],))
|
||||
user_row = await cursor.fetchone()
|
||||
creator = user_row["email"] if user_row else "Unbekannt"
|
||||
|
||||
# Organisation (fuer Dateimetadaten)
|
||||
organization_name = None
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren