diff --git a/src/models.py b/src/models.py index 17c3345..573afa2 100644 --- a/src/models.py +++ b/src/models.py @@ -25,11 +25,13 @@ class TokenResponse(BaseModel): class OrgCreate(BaseModel): name: str = Field(min_length=1, max_length=200) slug: str = Field(min_length=1, max_length=100, pattern="^[a-z0-9-]+$") + output_language: str = Field(default="de", pattern="^(de|en)$") class OrgUpdate(BaseModel): name: Optional[str] = Field(default=None, max_length=200) is_active: Optional[bool] = None + output_language: Optional[str] = Field(default=None, pattern="^(de|en)$") class OrgResponse(BaseModel): @@ -43,6 +45,7 @@ class OrgResponse(BaseModel): created_at: str globe_access: bool = False network_access: bool = False + output_language: str = "de" class LicenseCreate(BaseModel): diff --git a/src/routers/organizations.py b/src/routers/organizations.py index 58a2b56..a936665 100644 --- a/src/routers/organizations.py +++ b/src/routers/organizations.py @@ -25,6 +25,15 @@ async def _enrich_org(db: aiosqlite.Connection, row: aiosqlite.Row) -> dict: lic = await cursor.fetchone() org["license_status"] = lic["status"] if lic else "none" org["license_type"] = lic["license_type"] if lic else "" + + # output_language aus organization_settings (Default 'de') + cursor = await db.execute( + "SELECT value FROM organization_settings WHERE organization_id = ? AND key = 'output_language'", + (org["id"],), + ) + lang_row = await cursor.fetchone() + org["output_language"] = lang_row["value"] if lang_row else "de" + return org @@ -57,6 +66,10 @@ async def create_organization( org_id = cursor.lastrowid await db.commit() + # output_language als organization_settings-Eintrag persistieren + from shared.services.org_settings import set_org_setting + await set_org_setting(db, org_id, "output_language", data.output_language) + cursor = await db.execute("SELECT * FROM organizations WHERE id = ?", (org_id,)) new_row_obj = await cursor.fetchone() await log_action( @@ -105,6 +118,11 @@ async def update_organization( await db.execute(f"UPDATE organizations SET {set_clause} WHERE id = ?", values) await db.commit() + # output_language separat ueber organization_settings setzen + if data.output_language is not None: + from shared.services.org_settings import set_org_setting + await set_org_setting(db, org_id, "output_language", data.output_language) + after = await row_to_dict(db, "organizations", org_id) await log_action( db, admin, get_client_ip(request), diff --git a/src/static/dashboard.html b/src/static/dashboard.html index 34d5390..f98aaa1 100644 --- a/src/static/dashboard.html +++ b/src/static/dashboard.html @@ -166,6 +166,14 @@ +