bmc_hub/app/timetracking/frontend/views.py
Christian a1d4696005 feat: Add new time tracking wizard and registrations view
- Implemented a new simplified time tracking wizard (wizard2) for approval processes.
- Added a registrations view to list all time tracking entries.
- Enhanced the existing wizard.html to include a billable checkbox for entries.
- Updated JavaScript logic to handle billable state and travel status for time entries.
- Introduced a cleanup step in the deployment script to remove old images.
- Created a new HTML template for registrations with filtering and pagination capabilities.
2026-01-10 01:37:08 +01:00

53 lines
2.1 KiB
Python

"""
Frontend Views Router for Time Tracking Module
===============================================
HTML page handlers for time tracking UI.
"""
import logging
from fastapi import APIRouter, Request
from fastapi.templating import Jinja2Templates
from fastapi.responses import HTMLResponse
logger = logging.getLogger(__name__)
router = APIRouter()
templates = Jinja2Templates(directory="app")
@router.get("/timetracking", response_class=HTMLResponse, name="timetracking_dashboard")
async def timetracking_dashboard(request: Request):
"""Time Tracking Dashboard - oversigt og sync"""
return templates.TemplateResponse("timetracking/frontend/dashboard.html", {"request": request})
@router.get("/timetracking/wizard", response_class=HTMLResponse, name="timetracking_wizard")
async def timetracking_wizard(request: Request):
"""Time Tracking Wizard - step-by-step approval"""
return templates.TemplateResponse("timetracking/frontend/wizard.html", {"request": request})
@router.get("/timetracking/wizard2", response_class=HTMLResponse, name="timetracking_wizard_v2")
async def timetracking_wizard_v2(request: Request):
"""Time Tracking Wizard V2 - simplified approval"""
return templates.TemplateResponse("timetracking/frontend/wizard2.html", {"request": request})
@router.get("/timetracking/registrations", response_class=HTMLResponse, name="timetracking_registrations")
async def timetracking_registrations(request: Request):
"""Time Tracking Registrations - list view"""
return templates.TemplateResponse("timetracking/frontend/registrations.html", {"request": request})
@router.get("/timetracking/customers", response_class=HTMLResponse, name="timetracking_customers")
async def timetracking_customers(request: Request):
"""Time Tracking Customers - manage hourly rates"""
return templates.TemplateResponse("timetracking/frontend/customers.html", {"request": request})
@router.get("/timetracking/orders", response_class=HTMLResponse, name="timetracking_orders")
async def timetracking_orders(request: Request):
"""Order oversigt"""
return templates.TemplateResponse("timetracking/frontend/orders.html", {"request": request})