2026-09-09 10:34:49 +02:00
|
|
|
from fastapi import APIRouter, Depends, Request
|
2026-10-20 07:18:57 +02:00
|
|
|
from fastapi.responses import HTMLResponse, RedirectResponse
|
|
|
|
|
import os
|
2026-09-09 10:34:49 +02:00
|
|
|
from fastapi.templating import Jinja2Templates
|
|
|
|
|
from app.core.auth_dependencies import get_current_user
|
|
|
|
|
|
|
|
|
|
router = APIRouter()
|
|
|
|
|
templates = Jinja2Templates(directory="app")
|
|
|
|
|
|
|
|
|
|
@router.get("/planner", response_class=HTMLResponse)
|
|
|
|
|
async def planner(request: Request, current_user: dict = Depends(get_current_user)):
|
|
|
|
|
return templates.TemplateResponse("modules/planner/templates/index.html", {"request": request, "current_user": current_user})
|
2026-10-20 07:18:57 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
@router.get("/planning", response_class=HTMLResponse)
|
|
|
|
|
async def planning(request: Request, current_user: dict = Depends(get_current_user)):
|
|
|
|
|
if os.environ.get('PLANNING_UI_ENABLED','true').lower() in {'0','false','no'}:
|
|
|
|
|
return RedirectResponse('/planner',status_code=307)
|
2026-11-03 01:16:12 +01:00
|
|
|
desk_enabled = os.environ.get('WORK_DESK_ENABLED', 'true').lower() not in {'0', 'false', 'no'}
|
|
|
|
|
template = 'desk.html' if request.query_params.get('view') == 'queue' and desk_enabled else 'work.html'
|
|
|
|
|
return templates.TemplateResponse("modules/planner/templates/" + template, {"request": request, "current_user": current_user})
|
2026-10-20 07:18:57 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
@router.get('/planning/absence', response_class=HTMLResponse)
|
|
|
|
|
async def absence_status(request: Request, current_user: dict = Depends(get_current_user)):
|
|
|
|
|
from app.modules.planner.backend.calendar import require_absence_report
|
|
|
|
|
require_absence_report(current_user)
|
|
|
|
|
return templates.TemplateResponse('modules/planner/templates/absence.html',
|
|
|
|
|
{'request':request,'current_user':current_user})
|