update: overhauled firmware ui. Added public flash page.

This commit is contained in:
2026-03-18 17:49:40 +02:00
parent 4381a6681d
commit d0ac4f1d91
45 changed files with 6798 additions and 1723 deletions

View File

@@ -0,0 +1,31 @@
from shared.firebase import get_db
from settings.public_features_models import PublicFeaturesSettings, PublicFeaturesSettingsUpdate
COLLECTION = "admin_settings"
DOC_ID = "public_features"
def get_public_features() -> PublicFeaturesSettings:
"""Get public features settings from Firestore. Creates defaults if not found."""
db = get_db()
doc = db.collection(COLLECTION).document(DOC_ID).get()
if doc.exists:
return PublicFeaturesSettings(**doc.to_dict())
defaults = PublicFeaturesSettings()
db.collection(COLLECTION).document(DOC_ID).set(defaults.model_dump())
return defaults
def update_public_features(data: PublicFeaturesSettingsUpdate) -> PublicFeaturesSettings:
"""Update public features settings. Only provided fields are updated."""
db = get_db()
doc_ref = db.collection(COLLECTION).document(DOC_ID)
doc = doc_ref.get()
existing = doc.to_dict() if doc.exists else PublicFeaturesSettings().model_dump()
update_data = data.model_dump(exclude_none=True)
existing.update(update_data)
normalized = PublicFeaturesSettings(**existing)
doc_ref.set(normalized.model_dump())
return normalized