from datetime import datetime from pathlib import Path from string import Template from .config import TMPL_DIR, CSS_PATH, PAGES_CSS_DIR, JS_DIR, _state, DbType from .queries.db import e as _e def _css() -> str: return CSS_PATH.read_text(encoding='utf-8') def _page_css(name: str) -> str: parts = [] shared = PAGES_CSS_DIR / 'filters.css' if shared.exists(): parts.append(shared.read_text(encoding='utf-8')) main = PAGES_CSS_DIR / f'{name}.css' if main.exists(): parts.append(main.read_text(encoding='utf-8')) for f in sorted(PAGES_CSS_DIR.glob(f'{name}_*.css')): parts.append(f.read_text(encoding='utf-8')) return '\n'.join(parts) def _page_js(name: str) -> str: parts = [] shared = JS_DIR / 'filters.js' if shared.exists(): parts.append(shared.read_text(encoding='utf-8')) main = JS_DIR / f'{name}.js' if main.exists(): parts.append(main.read_text(encoding='utf-8')) for f in sorted(JS_DIR.glob(f'{name}_*.js')): parts.append(f.read_text(encoding='utf-8')) return '\n'.join(parts) def _tmpl(name: str) -> Template: return Template((TMPL_DIR / name).read_text(encoding='utf-8')) def _card(label, value, color='#2563eb') -> str: return f'
{_e(value)}
{_e(label)}
' def _base(title: str, content: str, active: str, db_path: str, page_css: str = '', page_js: str = '') -> str: now = datetime.now().strftime('%d/%m/%Y %H:%M:%S') nav = {'nav_dashboard': '', 'nav_runs': '', 'nav_logs': '', 'nav_report': ''} if active in nav: nav[active] = 'active' db_type = _state.get('db_type', 'unknown') h1_title = 'RPA — Corsi Intraziendali' if db_type == DbType.INTRAZ else 'RPA — Comunicazioni Regione Lombardia' if db_type == DbType.INTRAZ: cls = 'active' if active == 'nav_iscrizioni' else '' nav_step_link = f'Corsi Intraziendali' cls_email = 'active' if active == 'nav_email' else '' nav_pec_link = f'Email' nav_report_link = '' else: cls = 'active' if active == 'nav_documenti' else '' nav_step_link = f'Documenti' cls_pec = 'active' if active == 'nav_pec' else '' nav_pec_link = f'PEC' cls_rep = nav.get('nav_report', '') nav_report_link = f'Report' return _tmpl('_base.html').substitute( css=_css(), page_css=page_css, page_js=page_js, title=title, now=now, db_name=_e(Path(db_path).name), h1_title=h1_title, content=content, nav_step_link=nav_step_link, nav_pec_link=nav_pec_link, nav_report_link=nav_report_link, **nav, )