Files
infoscreen/TECH-CHANGELOG.md
RobbStarkAustria e6c19c189f feat(events): add webuntis event, unify website payload, bump UI to alpha.13
- Add `webuntis` event type; event creation resolves URL from system `supplement_table_url`
- Consolidate settings: remove separate webuntis-url endpoints; use GET/POST /api/system-settings/supplement-table
- Scheduler: emit top-level `event_type` and unified `website` payload (`{ "type":"browser","url":"..." }`) for website/webuntis
- Preserve presentation payloads (page_progress/auto_progress) — presentation messages remain backwards-compatible
- Update defaults (`init_defaults.py`) and remove duplicate webuntis setting
- Docs & metadata: bump program-info to 2025.1.0-alpha.13; update README, copilot-instructions, DEV- and TECH-CHANGELOGs; add MQTT_EVENT_PAYLOAD_GUIDE.md and WEBUNTIS_EVENT_IMPLEMENTATION.md
2025-10-19 11:35:41 +00:00

6.5 KiB
Raw Blame History

TECH-CHANGELOG

This changelog documents technical and developer-relevant changes included in public releases. For development workspace changes, see DEV-CHANGELOG.md. Not all changes here are reflected in the user-facing changelog (program-info.json), and not all UI/feature changes are repeated here. Some changes (e.g., backend refactoring, API adjustments, infrastructure, developer tooling, or internal logic) may only appear in TECH-CHANGELOG.md. For UI/feature changes, see dashboard/public/program-info.json.


2025.1.0-alpha.13 (2025-10-19)

  • 🗓️ Events/API:
    • Implemented new webuntis event type. Event creation now resolves the URL from the system setting supplement_table_url; returns 400 if unset.
    • Removed obsolete webuntis-url settings endpoints. Use GET/POST /api/system-settings/supplement-table for URL and enabled state (shared for WebUntis/Vertretungsplan).
    • Initialization defaults: dropped webuntis_url; updated supplement_table_url description to “Vertretungsplan / WebUntis”.
  • 🚦 Scheduler payloads:
    • Unified Website/WebUntis payload: both emit a nested website object { "type": "browser", "url": "…" }; event_type remains either website or webuntis for dispatch.
    • Payloads now include a top-level event_type string for all events to aid client dispatch.
  • 🖥️ Frontend/Dashboard:
    • Program info updated to 2025.1.0-alpha.13 with release notes.
    • Settings → Events: WebUntis now uses the existing Supplement-Table URL; no separate WebUntis URL field.
    • Event modal: WebUntis type behaves like Website (no per-event URL input).
  • 📖 Documentation:
    • Added MQTT_EVENT_PAYLOAD_GUIDE.md (message structure, client best practices, versioning).
    • Added WEBUNTIS_EVENT_IMPLEMENTATION.md (design notes, admin setup, testing checklist).
    • Updated .github/copilot-instructions.md and README.md for the unified Website/WebUntis handling and settings usage.

Notes for integrators:

  • If you previously integrated against /api/system-settings/webuntis-url, migrate to /api/system-settings/supplement-table.
  • Clients should now parse event_type and use the corresponding nested payload (presentation, website, …). webuntis and website should be handled identically (nested website payload).

2025.1.0-alpha.12 (2025-10-19)

  • 🛠️ Backend: Seeded presentation defaults (presentation_interval, presentation_page_progress, presentation_auto_progress) in system settings; applied on event creation.
  • 🗃️ Data model: Added page_progress and auto_progress fields to Event (with Alembic migration).
  • 🗓️ Scheduler: Now publishes only currently active events per group (at "now"); clears retained topics by publishing [] for groups with no active events; normalizes naive timestamps and compares times in UTC; presentation payloads include page_progress and auto_progress.
  • 🖥️ Dashboard: Settings → Events tab now includes Presentations defaults (interval, page-progress, auto-progress) with load/save via API; event modal applies defaults on create and persists per-event values on edit.
  • 📖 Docs: Updated README and Copilot instructions for new scheduler behavior, UTC handling, presentation defaults, and per-event flags.

2025.1.0-alpha.11 (2025-10-16)

  • Settings page: New tab layout (Syncfusion) with role-based visibility Tabs: 📅 Academic Calendar, 🖥️ Display & Clients, 🎬 Media & Files, 🗓️ Events, ⚙️ System.
  • 🛠️ Settings (Technical): API calls now use relative /api paths via the Vite proxy (prevents CORS and double /api).
  • 📖 Docs: README updated for settings page (tabs) and system settings API.

2025.1.0-alpha.10 (2025-10-15)

  • 🔐 Auth: Login and user management implemented (role-based, persistent sessions).
  • 🧩 Frontend: Syncfusion SplitButtons integrated (react-splitbuttons) and Vite config updated for pre-bundling.
  • 🐛 Fix: Import error @syncfusion/ej2-react-splitbuttons instructions added to README (optimizeDeps + volume reset).

2025.1.0-alpha.9 (2025-10-14)

  • UI: Unified deletion workflow for appointments all types (single, single instance, entire series) handled with custom dialogs.
  • 🔧 Frontend: Syncfusion RecurrenceAlert and DeleteAlert intercepted and replaced with custom dialogs (including final confirmation for series deletion).
  • 📖 Docs: README and Copilot instructions expanded for deletion workflow and dialog handling.

2025.1.0-alpha.8 (2025-10-11)

  • 🎨 Theme: Migrated to Syncfusion Material 3; centralized CSS imports in main.tsx
  • 🧹 Cleanup: Tailwind CSS completely removed (packages, PostCSS, Stylelint, config files)
  • 🧩 Group management: "infoscreen_groups" migrated to Syncfusion components (Buttons, Dialogs, DropDownList, TextBox); improved spacing
  • 🔔 Notifications: Unified toast/dialog wording; last alert usage replaced
  • 📖 Docs: README and Copilot instructions updated (Material 3, centralized styles, no Tailwind)

2025.1.0-alpha.7 (2025-09-21)

  • 🧭 UI: Period selection (Syncfusion) next to group selection; compact layout
  • Display: Badge for existing holiday plan + counter Holidays in view
  • 🛠️ API: Endpoints for academic periods (list, active GET/POST, for_date)
  • 📅 Scheduler: By default, no scheduling during holidays; block display like all-day event; black text color
  • 📤 Holidays: Upload from TXT/CSV (headless TXT uses columns 24)
  • 🔧 UX: Switches in a row; dropdown widths optimized

2025.1.0-alpha.6 (2025-09-20)

  • 🗓️ NEW: Academic periods system support for school years, semesters, trimesters
  • 🏗️ DATABASE: New 'academic_periods' table for time-based organization
  • 🔗 EXTENDED: Events and media can now optionally be linked to an academic period
  • 📊 ARCHITECTURE: Fully backward-compatible implementation for gradual rollout
  • ⚙️ TOOLS: Automatic creation of standard school years for Austrian schools

2025.1.0-alpha.5 (2025-09-14)

  • Backend: Complete redesign of backend handling for group assignments of new clients and steps for changing group assignment.

2025.1.0-alpha.4 (2025-09-01)

  • Deployment: Base structure for deployment tested and optimized.
  • FIX: Program error when switching view on media page fixed.

2025.1.0-alpha.3 (2025-08-30)

  • NEW: Program info page with dynamic data, build info, and changelog.
  • NEW: Logout functionality implemented.
  • FIX: Sidebar width corrected in collapsed state.

2025.1.0-alpha.2 (2025-08-29)

  • INFO: Analysis and display of used open-source libraries.

2025.1.0-alpha.1 (2025-08-28)

  • Initial project setup and base structure.