Commit Graph

64 Commits

Author SHA1 Message Date
5627829617 Migration to physical server 2025-10-10 14:14:47 +00:00
fc9b3228c4 Add README.md 2025-10-07 20:50:24 +00:00
fcc0dfbb0f feat(conversions): end-to-end PPT/PPTX/ODP -> PDF pipeline with RQ worker + Gotenberg
DB/model

Add Conversion model + ConversionStatus enum (pending, processing, ready, failed)
Alembic migrations: create conversions table, indexes, unique (source_event_media_id, target_format, file_hash), and NOT NULL on file_hash
API

Enqueue on upload (ppt|pptx|odp) in routes/eventmedia.py: compute sha256, upsert Conversion, enqueue job
New routes:
POST /api/conversions/<media_id>/pdf — ensure/enqueue conversion
GET /api/conversions/<media_id>/status — latest status/details
GET /api/files/converted/<path> — serve converted PDFs
Register conversions blueprint in wsgi
Worker

server/worker.py: convert_event_media_to_pdf
Calls Gotenberg /forms/libreoffice/convert, writes to server/media/converted/
Updates Conversion status, timestamps, error messages
Fix media root resolution to /server/media
Prefer function enqueue over string path; expose server.worker in package init for RQ string compatibility
Queue/infra

server/task_queue.py: RQ queue helper (REDIS_URL, default redis://redis:6379/0)
docker-compose:
Add redis and gotenberg services
Add worker service (rq worker conversions)
Pass REDIS_URL and GOTENBERG_URL to server/worker
Mount shared media volume in prod for API/worker parity
docker-compose.override:
Add dev redis/gotenberg/worker services
Ensure PYTHONPATH + working_dir allow importing server.worker
Use rq CLI instead of python -m rq for worker
Dashboard dev: run as appropriate user/root and pre-create/chown caches to avoid EACCES
Dashboard dev UX

Vite: set cacheDir .vite to avoid EACCES in node_modules
Disable Node inspector by default to avoid port conflicts
Docs

Update copilot-instructions.md with conversion system: flow, services, env vars, endpoints, storage paths, and data model
2025-10-07 19:06:09 +00:00
80bf8bc58d Add deploymnent guides for Debian and Ubuntu 2025-10-06 19:26:13 +00:00
eaf6e32446 feat(academic-periods): period selector, active period
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
2025-09-21 14:35:38 +00:00
41194000a4 feat: Add academic periods system for educational institutions
- 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.
2025-09-20 11:16:56 +00:00
89d1748100 add nginx.dev.conf for development environment
add functionality of scheduler to send right event
data to the clients
added route for file download
2025-09-17 06:36:37 +00:00
c19f478f11 add copilot instructions for better use of AI-models 2025-09-14 06:36:37 +00:00
e8d71b8349 Complete Redesign of Backend Handling for Client Group Assignments 2025-09-14 05:20:49 +00:00
c5a8571e97 Adaption of dashboard to Vite and React 2025-09-13 10:03:50 +00:00
1d23b7591d Switched von pnpm to npm, adapt Dockerfiles 2025-09-12 16:16:16 +00:00
f3b72da9fe Migrate from tailwind-sidebar to syncfusion sidebar component 2025-09-12 16:09:19 +00:00
75c5622efe optimize filemanager 2025-09-12 08:46:40 +00:00
4c44b98d53 make listener robust to bad data 2025-09-05 08:47:31 +00:00
76629b8e30 additions and corrections for
deployment instructions
2025-09-04 16:45:29 +00:00
86b1bdbd91 continued try for deployment 2025-09-03 20:27:59 +00:00
e30723da0a Preparation for first deployment-test 2025-09-03 19:47:16 +00:00
4e74f72c9f multiple corrections on docker-compose and Dockerfile
robust start sequence
avoid scrolling of main content
2025-08-31 07:30:53 +00:00
2ca5f0060e add programminfo.tsx and program-info.json for
information and display of program details
add simple logout-page
2025-08-30 16:00:59 +00:00
270bad5980 introduce icons in events 2025-07-24 14:11:27 +00:00
49e9f9eade change color of work cells in the past to light
yellow
2025-07-24 10:12:25 +00:00
8bbda836b3 prevent saving past events
add function to show inactive events
2025-07-24 09:35:57 +00:00
4e6451ce80 group color shown in CustomEventModal
add functionality for edit of events
2025-07-24 07:43:32 +00:00
b0e933e895 UI polishing 2025-07-23 15:04:16 +00:00
7f4800496a implement functionality to delete clients in
clients and SetupMode components
2025-07-22 16:04:26 +00:00
c0202e5802 remove simclient and update setup mode 2025-07-20 09:41:36 +00:00
c9fbb38347 test entrypoint for git 2025-07-19 09:27:03 +00:00
2e9f22f5cc test communication scheduler<->simclient 2025-07-18 14:49:53 +00:00
a1d6d83488 Solve lint errors 2025-07-17 07:04:01 +00:00
4e525e4bae Automatic detect of clients 2025-07-17 06:31:50 +00:00
1a6faaa104 separation of production and development
environments
Adding new migrations for renaming and adding fields
to the database schema
persistent uuid for simclient
2025-07-16 08:50:42 +00:00
84a92ab9c2 functional system simclient<-> listener<->server 2025-07-15 15:37:16 +00:00
f37744b31e models.py moved to models/models.py
refactor all imports
2025-07-15 10:45:56 +00:00
661d25d70c Scheduler: Refactor database utilities and
scheduler logic
2025-07-15 05:05:09 +00:00
2fa84c1e2b Setup: Make Docker Compose, Scheduler, and Simclient fully operational 2025-07-14 18:41:28 +00:00
7c1f546af9 Remove legacy Dash frontend after React migration 2025-07-14 17:19:14 +00:00
6e6e5c383a Create and save custom events in database dash-frontend-backup 2025-07-14 16:58:00 +00:00
16581a974f Basic version of eventmedia-management (upload,
save in database)
2025-07-10 09:32:35 +00:00
43306130f7 First version of media manager 2025-07-07 14:48:37 +00:00
2127c3a753 Refactor database schema and update event media
handling
2025-07-05 05:24:00 +00:00
f5cb25bdce new custom modalbox for event input 2025-07-03 16:06:20 +00:00
7d773739d5 Implement Delete Event Feature 2025-07-01 18:49:25 +00:00
37332249aa different colors for different groups 2025-07-01 18:17:05 +00:00
95b823ae3d Migration of events to use group_id instead of
group_name
2025-06-30 19:45:04 +00:00
10b32b9a20 Deselecting Clients in Kanban View 2025-06-30 19:13:44 +00:00
7d7204e7c6 Toast-feedback feature for dashboard 2025-06-29 08:25:19 +00:00
6639006d65 Refactoring of routes
group functionalities working
2025-06-29 06:58:23 +00:00
55ae392411 workflow delete in ui functional 2025-06-28 06:41:49 +00:00
f176c40a02 first kanban-view integration for client groups 2025-06-27 08:22:01 +00:00
9b78db8223 Link events to SchedulerComponent 2025-06-23 19:41:48 +00:00