API, holiday indicators; UI polish; bump version
Dashboard:
Add Syncfusion academic period dropdown next to group selector
Navigate scheduler to today's month/day within selected period year on change
Show adjacent holiday plan badge; keep "holidays in view" counter on the right
Compact dropdown widths for a tighter toolbar
Default blocking of scheduling on holidays; block entries styled like all-day; black text styling
API:
Add academic periods routes: list, get active, set active (POST), for_date
Register blueprint in wsgi
Holidays:
Support TXT/CSV upload; headerless TXT uses columns 2-4; region remains null
Docs:
Update shared Copilot instructions with academic periods endpoints and dashboard integration details
- Add AcademicPeriod model with support for schuljahr/semester/trimester
- Extend Event and EventMedia models with optional academic_period_id
- Create Alembic migration (8d1df7199cb7) for academic periods system
- Add init script for Austrian school year defaults (2024/25-2026/27)
- Maintain full backward compatibility for existing events/media
- Update program-info.json to version 2025.1.0-alpha.6
Database changes:
- New academic_periods table with unique name constraint
- Foreign key relationships with proper indexing
- Support for multiple period types with single active period
This lays the foundation for period-based organization of events
and media content, specifically designed for school environments
with future extensibility for universities.