docs(settings): Update README + Copilot instructions; bump Program Info to 2025.1.0-alpha.11
README: Add System Settings API endpoints; describe new tabbed Settings layout with role gating; add Vite dev proxy tip to use relative /api paths. Copilot instructions: Note SystemSetting key–value store in data model; document system_settings.py (CRUD + supplement-table convenience endpoint); reference apiSystemSettings.ts; note defaults seeding via init_defaults.py. Program Info: Bump version to 2025.1.0-alpha.11; changelog explicitly tied to the Settings page (Events tab: supplement-table URL moved; Academic Calendar: set active period; proxy note); README docs mention. No functional changes to API or UI code in this commit; documentation and program info only.
This commit is contained in:
@@ -285,3 +285,23 @@ class Conversion(Base):
|
||||
UniqueConstraint('source_event_media_id', 'target_format',
|
||||
'file_hash', name='uq_conv_source_target_hash'),
|
||||
)
|
||||
|
||||
|
||||
# --- SystemSetting: Flexible key-value store for system-wide configuration ---
|
||||
class SystemSetting(Base):
|
||||
__tablename__ = 'system_settings'
|
||||
|
||||
key = Column(String(100), primary_key=True, nullable=False)
|
||||
value = Column(Text, nullable=True)
|
||||
description = Column(String(255), nullable=True)
|
||||
updated_at = Column(TIMESTAMP(timezone=True),
|
||||
server_default=func.current_timestamp(),
|
||||
onupdate=func.current_timestamp())
|
||||
|
||||
def to_dict(self):
|
||||
return {
|
||||
"key": self.key,
|
||||
"value": self.value,
|
||||
"description": self.description,
|
||||
"updated_at": self.updated_at.isoformat() if self.updated_at else None,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user