# app/modules/analytics/routes/pages/admin.py """ Analytics Admin Page Routes (HTML rendering). Admin pages for code quality and analytics: - Code quality dashboard - Violations list - Violation detail """ from fastapi import APIRouter, Depends, Path, Request from fastapi.responses import HTMLResponse from sqlalchemy.orm import Session from app.api.deps import get_db, require_menu_access from app.modules.core.utils.page_context import get_admin_context from app.modules.enums import FrontendType from app.modules.tenancy.models import User from app.templates_config import templates router = APIRouter() # ============================================================================ # CODE QUALITY & ARCHITECTURE ROUTES # ============================================================================ @router.get("/code-quality", response_class=HTMLResponse, include_in_schema=False) async def admin_code_quality_dashboard( request: Request, current_user: User = Depends( require_menu_access("code-quality", FrontendType.ADMIN) ), db: Session = Depends(get_db), ): """ Render code quality dashboard. Shows architecture violations, trends, and technical debt score. """ return templates.TemplateResponse( "dev_tools/admin/code-quality-dashboard.html", get_admin_context(request, db, current_user), ) @router.get( "/code-quality/violations", response_class=HTMLResponse, include_in_schema=False ) async def admin_code_quality_violations( request: Request, current_user: User = Depends( require_menu_access("code-quality", FrontendType.ADMIN) ), db: Session = Depends(get_db), ): """ Render violations list page. Shows all violations with filtering and sorting options. """ return templates.TemplateResponse( "dev_tools/admin/code-quality-violations.html", get_admin_context(request, db, current_user), ) @router.get( "/code-quality/violations/{violation_id}", response_class=HTMLResponse, include_in_schema=False, ) async def admin_code_quality_violation_detail( request: Request, violation_id: int = Path(..., description="Violation ID"), current_user: User = Depends( require_menu_access("code-quality", FrontendType.ADMIN) ), db: Session = Depends(get_db), ): """ Render violation detail page. Shows violation details, code context, assignments, and comments. """ return templates.TemplateResponse( "dev_tools/admin/code-quality-violation-detail.html", get_admin_context(request, db, current_user, violation_id=violation_id), )