From 6d1b7c8044663378560353e6bf6fdcdeba42bcee Mon Sep 17 00:00:00 2001 From: Julien Balet Date: Mon, 11 May 2026 11:24:15 +0200 Subject: [PATCH] retenue: avis PDF + notices Escada + mapping profession MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - nouvelle page /retenue : sélection apprenti, date retenue, date du problème, motif (3 cases mutex), branche (autocomplete + saisie libre depuis NotesExamen), remarque. Génération PDF basée sur le template AcroForm officiel, séparation des 3 widgets Date partagés en 3 champs distincts pour ne remplir que celui de la case cochée. Téléchargement ou envoi par email (3 destinataires). - profession : nouveau champ ApprentiFiche.profession, dérivé du préfixe de classe via mapping configurable dans Paramètres ("AUTOMAT" → "Automaticien CFC" par défaut). Section dédiée avec classes orphelines détectées automatiquement. - notices Escada : nouvelle table Notice (apprenti, titre, remarque, date, status). Checkbox "Ajouter automatiquement une notice sur Escada" sur /retenue qui crée une entrée pending. Bloc dédié sur /escada listant les pending, bouton "Pousser les notices" qui lance scripts/push_notices.py (Playwright : navigation Classes → Élèves → Notices → Ajouter, fill date / titre / remarque, vérification post-save, suppression DB si OK, marquage failed sinon). Nouveau task_kind "push_notices" dans le cron pour exécution planifiée. Co-Authored-By: Claude Opus 4.7 (1M context) --- data/templates/GF_FO_Avis_de_retenue.pdf | Bin 0 -> 242452 bytes eptm_dashboard/eptm_dashboard.py | 2 + eptm_dashboard/pages/cron.py | 7 +- eptm_dashboard/pages/escada.py | 258 +++++++- eptm_dashboard/pages/params.py | 191 ++++++ eptm_dashboard/pages/retenue.py | 778 +++++++++++++++++++++++ eptm_dashboard/sidebar.py | 1 + requirements.txt | 3 +- scripts/cron_tick.py | 3 + scripts/push_notices.py | 251 ++++++++ src/db.py | 43 ++ src/profession.py | 113 ++++ src/retenue_pdf.py | 231 +++++++ 13 files changed, 1876 insertions(+), 5 deletions(-) create mode 100644 data/templates/GF_FO_Avis_de_retenue.pdf create mode 100644 eptm_dashboard/pages/retenue.py create mode 100755 scripts/push_notices.py create mode 100644 src/profession.py create mode 100644 src/retenue_pdf.py diff --git a/data/templates/GF_FO_Avis_de_retenue.pdf b/data/templates/GF_FO_Avis_de_retenue.pdf new file mode 100644 index 0000000000000000000000000000000000000000..ec3a122ef627528ddb569b438a9e5dd6bc553a9b GIT binary patch literal 242452 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

705{qCfd{OAWXt@&~m@17jf%J6i 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 jm_k>5pEy)5pD`zW&;=m$QxNy~nq0>HG4< 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 wFA4p+17($srNqwQj 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 literal 0 HcmV?d00001 diff --git a/eptm_dashboard/eptm_dashboard.py b/eptm_dashboard/eptm_dashboard.py index 3499a0b..bfc5109 100644 --- a/eptm_dashboard/eptm_dashboard.py +++ b/eptm_dashboard/eptm_dashboard.py @@ -13,6 +13,7 @@ from .pages.purge import purge_page, PurgeState from .pages.doc import doc_page, DocState from .pages.profile import profile_page, ProfileState from .pages.password_set import password_set_page, PasswordSetState +from .pages.retenue import retenue_page, RetenueState TITLE = "EPTM Dashboard" @@ -58,5 +59,6 @@ app.add_page(params_page, route="/params", on_load=[AuthState.check_auth, app.add_page(purge_page, route="/purge", on_load=[AuthState.check_auth, PurgeState.load_data], title=TITLE) app.add_page(doc_page, route="/doc", on_load=[AuthState.check_auth, DocState.load_data], title=TITLE) app.add_page(profile_page, route="/profile", on_load=[AuthState.check_auth, ProfileState.load_data], title=TITLE) +app.add_page(retenue_page, route="/retenue", on_load=[AuthState.check_auth, RetenueState.load_data], title=TITLE) # Page publique (pas de check_auth — accessible via lien email) app.add_page(password_set_page, route="/password-set", on_load=PasswordSetState.load_data, title=TITLE) diff --git a/eptm_dashboard/pages/cron.py b/eptm_dashboard/pages/cron.py index 3332b25..3e0e3a5 100644 --- a/eptm_dashboard/pages/cron.py +++ b/eptm_dashboard/pages/cron.py @@ -83,7 +83,8 @@ class CronState(AuthState): "schedule_desc": desc, "task_kind": job.task_kind, "task_label": {"push": "Push", "sync": "Sync", - "push_then_sync": "Push + Sync"}.get(job.task_kind, job.task_kind), + "push_then_sync": "Push + Sync", + "push_notices": "Push notices"}.get(job.task_kind, job.task_kind), "last_run_at": job.last_run_at.strftime("%d.%m.%Y %H:%M") if job.last_run_at else "", "last_status": job.last_status, "last_message": job.last_message[:120] if job.last_message else "", @@ -648,13 +649,13 @@ def _form_task_picker() -> rx.Component: return rx.vstack( rx.text("Tâche", size="2", font_weight="600"), rx.radio( - ["push", "sync", "push_then_sync"], + ["push", "sync", "push_then_sync", "push_notices"], value=CronState.f_task_kind, on_change=CronState.set_f_task_kind, direction="column", ), rx.cond( - CronState.f_task_kind != "push", + (CronState.f_task_kind != "push") & (CronState.f_task_kind != "push_notices"), rx.vstack( rx.text("Données à synchroniser", size="2", font_weight="600", margin_top="0.5rem"), diff --git a/eptm_dashboard/pages/escada.py b/eptm_dashboard/pages/escada.py index 98e184b..f496c5b 100644 --- a/eptm_dashboard/pages/escada.py +++ b/eptm_dashboard/pages/escada.py @@ -21,7 +21,7 @@ def _background(fn): from ..state import AuthState from ..sidebar import layout -from src.db import get_session, Apprenti, EscadaPending +from src.db import get_session, Apprenti, EscadaPending, Notice from src.logger import app_log _RE_SYNC_PROD = re.compile(r"^\[\d{2}:\d{2}:\d{2}\] ([^ ].*)$") @@ -45,6 +45,7 @@ DATA_DIR = Path(os.getenv("DATA_DIR", str(_ROOT / "data"))) CLASSES_CACHE = DATA_DIR / "esacada_classes.json" _SYNC_SCRIPT = _ROOT / "scripts" / "sync_esacada.py" _PUSH_SCRIPT = _ROOT / "scripts" / "push_to_escada.py" +_PUSH_NOTICES_SCRIPT = _ROOT / "scripts" / "push_notices.py" _SYNC_RESULT_FILE = DATA_DIR / "sync_last_result.json" _SYNC_ALL_DONE_FILE = DATA_DIR / "sync_all_done.json" @@ -77,11 +78,19 @@ class EscadaState(AuthState): pending_count: int = 0 pending_data: list[dict] = [] + notices_count: int = 0 + notices_data: list[dict] = [] push_done: bool = False push_ok: int = 0 push_errors: list[str] = [] + # Push notices + is_pushing_notices: bool = False + notices_push_ok: int = 0 + notices_push_done: bool = False + notices_push_errors: list[str] = [] + @rx.var def selected_count(self) -> int: return sum(1 for v in self.class_checked.values() if v) @@ -221,9 +230,32 @@ class EscadaState(AuthState): } for ep in pending ] + self._reload_notices(sess) finally: sess.close() + def _reload_notices(self, sess): + notices = sess.execute( + select(Notice) + .options(joinedload(Notice.apprenti)) + .join(Apprenti, Notice.apprenti_id == Apprenti.id) + .where(Notice.status == "pending") + .order_by(Apprenti.classe, Notice.date_event, Apprenti.nom) + ).scalars().all() + self.notices_count = len(notices) + self.notices_data = [ + { + "id": n.id, + "classe": n.apprenti.classe, + "nom": n.apprenti.nom, + "prenom": n.apprenti.prenom, + "date": n.date_event.strftime("%d.%m.%Y"), + "titre": (n.titre or "")[:80] + ("…" if len(n.titre or "") > 80 else ""), + "source": n.source, + } + for n in notices + ] + # ── Background: refresh classes ──────────────────────────────────────────── @_background @@ -767,6 +799,121 @@ class EscadaState(AuthState): except Exception: pass + # ── Background: push notices vers Escada ────────────────────────────────── + + @_background + async def push_notices(self): + async with self: + user = self.username or "?" + self.is_pushing_notices = True + self.notices_push_done = False + self.notices_push_ok = 0 + self.notices_push_errors = [] + + app_log(f"Push notices Escada démarré par {user}") + cmd = [sys.executable, str(_PUSH_NOTICES_SCRIPT)] + lines: list[str] = [] + _rc_holder = [0] + + def _run() -> None: + _fd, _tmp = tempfile.mkstemp(suffix="_push_notices.log") + os.close(_fd) + try: + with open(_tmp, "wb") as _fout: + _proc = subprocess.Popen( + cmd, stdout=_fout, stderr=subprocess.STDOUT, + env={**os.environ, "PYTHONUNBUFFERED": "1"}, + start_new_session=True, + ) + _offset, _buf = 0, b"" + while True: + _time.sleep(0.5) + try: + with open(_tmp, "rb") as _fin: + _fin.seek(_offset); _chunk = _fin.read(65536) + except Exception: + _chunk = b"" + if _chunk: + _buf += _chunk; _offset += len(_chunk) + while b"\n" in _buf: + _raw, _buf = _buf.split(b"\n", 1) + _ln = _raw.decode("utf-8", errors="replace").rstrip() + if _ln: + lines.append(_ln); _log_sync_line(_ln, prefix="push_notices") + if _proc.poll() is not None: + _rc_holder[0] = _proc.wait() or 0 + break + except Exception as _exc: + app_log(f"Erreur push notices subprocess : {_exc}") + finally: + try: os.unlink(_tmp) + except Exception: pass + + _pool = _cf.ThreadPoolExecutor(max_workers=1) + _fut = _pool.submit(_run) + try: + while not _fut.done(): + try: + await asyncio.sleep(1.0) + except asyncio.CancelledError: + _t = asyncio.current_task() + if _t is not None: + for _ in range(_t.cancelling()): + _t.uncancel() + try: + _fut.result() + except Exception as _te: + app_log(f"[push_notices] thread exception : {_te}") + finally: + _pool.shutdown(wait=False) + + _rc = _rc_holder[0] + nb_ok = 0 + errors: list[str] = [] + done = False + for line in lines: + if "PUSH_NOTICES_DONE " in line: + done = True + try: + p = json.loads(line[line.index("PUSH_NOTICES_DONE ") + len("PUSH_NOTICES_DONE "):]) + nb_ok = p.get("ok", 0) + errors = p.get("err", []) + except Exception as _e: + app_log(f" Erreur parse PUSH_NOTICES_DONE : {_e}", debug=True) + + if done: + app_log(f"Push notices terminé — ok:{nb_ok} erreurs:{len(errors)}") + else: + app_log(f"Push notices : PUSH_NOTICES_DONE non trouvé (code={_rc})") + + try: + _t = asyncio.current_task() + if _t is not None: + for _ in range(_t.cancelling()): + _t.uncancel() + async with self: + self.notices_push_done = done + self.notices_push_ok = nb_ok + self.notices_push_errors = errors + self.is_pushing_notices = False + self._reload_pending() + if done: + if errors: + yield rx.toast.warning( + f"Push notices : {nb_ok} OK, {len(errors)} erreur(s)" + ) + else: + yield rx.toast.success(f"Push notices terminé — {nb_ok} envoyée(s)") + else: + yield rx.toast.error("Push notices échoué — vérifiez les logs") + except Exception as _e: + app_log(f"Erreur mise à jour état push notices : {_e}") + try: + async with self: + self.is_pushing_notices = False + except Exception: + pass + # ── UI helpers ──────────────────────────────────────────────────────────────── @@ -932,6 +1079,18 @@ def _pending_row(item) -> rx.Component: ) +def _notice_row(item) -> rx.Component: + return rx.table.row( + rx.table.cell(item["classe"]), + rx.table.cell(rx.text(item["nom"], " ", item["prenom"])), + rx.table.cell(item["date"]), + rx.table.cell(rx.text(item["titre"], size="1")), + rx.table.cell( + rx.badge(item["source"], color_scheme="blue", variant="soft", size="1"), + ), + ) + + def _sync_progress() -> rx.Component: """Indicateurs de progression — remplace l'ancien op_log dans la section sync.""" return rx.vstack( @@ -1361,6 +1520,103 @@ def escada_page() -> rx.Component: width="100%", ), + # ── Section notices ─────────────────────────────────────────────── + rx.box( + rx.text( + "Notices en attente", + size="3", font_weight="700", color="#37474f", + margin_bottom="0.75rem", + ), + rx.cond( + EscadaState.notices_count == 0, + rx.text("Aucune notice en attente.", size="2", color="#666"), + rx.vstack( + rx.text( + EscadaState.notices_count, + " notice(s) en attente d'envoi vers Escada.", + size="2", color="#e65100", font_weight="600", + ), + rx.box( + rx.table.root( + rx.table.header( + rx.table.row( + rx.table.column_header_cell("Classe"), + rx.table.column_header_cell("Apprenti"), + rx.table.column_header_cell("Date"), + rx.table.column_header_cell("Titre"), + rx.table.column_header_cell("Source"), + ) + ), + rx.table.body( + rx.foreach(EscadaState.notices_data, _notice_row), + ), + width="100%", + size="1", + ), + overflow_x="auto", + width="100%", + ), + spacing="2", + width="100%", + margin_bottom="0.75rem", + ), + ), + rx.flex( + rx.button( + rx.cond( + EscadaState.is_pushing_notices, + rx.spinner(size="2"), + rx.icon("send", size=14), + ), + rx.cond( + EscadaState.is_pushing_notices, + rx.text("Envoi en cours..."), + rx.text("Pousser les notices"), + ), + on_click=EscadaState.push_notices, + disabled=( + EscadaState.is_pushing_notices + | (EscadaState.notices_count == 0) + ), + color_scheme="blue", + size="2", + ), + gap="1rem", align="center", flex_wrap="wrap", + margin_top="0.75rem", + ), + rx.cond( + EscadaState.notices_push_done, + rx.vstack( + rx.cond( + EscadaState.notices_push_ok > 0, + rx.text( + EscadaState.notices_push_ok, + " notice(s) envoyée(s).", + size="2", color="#2e7d32", font_weight="600", + ), + ), + rx.cond( + EscadaState.notices_push_errors.length() > 0, + rx.vstack( + rx.foreach( + EscadaState.notices_push_errors, + lambda e: rx.text("• ", e, size="2", color="#c62828"), + ), + spacing="1", + ), + ), + spacing="2", + margin_top="0.75rem", + width="100%", + ), + ), + padding="1.25rem", + background_color="white", + border_radius="8px", + border="1px solid #e0e0e0", + width="100%", + ), + spacing="4", width="100%", ) diff --git a/eptm_dashboard/pages/params.py b/eptm_dashboard/pages/params.py index 2ea7c78..5d6c9f8 100644 --- a/eptm_dashboard/pages/params.py +++ b/eptm_dashboard/pages/params.py @@ -1,9 +1,17 @@ import json import os +import sys from pathlib import Path import reflex as rx +_ROOT = Path(__file__).resolve().parent.parent.parent +if str(_ROOT) not in sys.path: + sys.path.insert(0, str(_ROOT)) + +from src.profession import load_mapping, save_mapping, find_unmapped_classes, refresh_all_professions # noqa: E402 +from src.db import get_session # noqa: E402 + from ..sidebar import layout from ..state import AuthState @@ -67,6 +75,14 @@ class ParamsState(AuthState): app_base_url: str = "" save_ok_app: bool = False + # ── Profession mapping ──────────────────────────────────────────────────── + prof_mapping: list[dict] = [] + prof_unmapped: list[str] = [] + new_prefix: str = "" + new_profession: str = "" + save_ok_prof: bool = False + refresh_msg: str = "" + # ── Setters ─────────────────────────────────────────────────────────────── def set_texte_sanction(self, v: str): self.texte_sanction = v def set_chef_section(self, v: str): self.chef_section = v @@ -81,6 +97,8 @@ class ParamsState(AuthState): def set_email_subject(self, v: str): self.email_subject = v def set_email_body(self, v: str): self.email_body = v def set_app_base_url(self, v: str): self.app_base_url = v + def set_new_prefix(self, v: str): self.new_prefix = v + def set_new_profession(self, v: str): self.new_profession = v def load_data(self): if not self.authenticated: @@ -104,6 +122,17 @@ class ParamsState(AuthState): self.save_ok_escada = False self.save_ok_template = False self.save_ok_app = False + self._reload_prof_mapping() + + def _reload_prof_mapping(self): + self.prof_mapping = load_mapping() + sess = get_session() + try: + self.prof_unmapped = find_unmapped_classes(sess) + finally: + sess.close() + self.save_ok_prof = False + self.refresh_msg = "" def save_sanctions(self): s = _read_settings() @@ -164,6 +193,46 @@ class ParamsState(AuthState): self.save_ok_escada = False self.save_ok_template = False + # ── Profession mapping ─────────────────────────────────────────────────── + def add_mapping(self): + prefix = self.new_prefix.strip() + prof = self.new_profession.strip() + if not prefix or not prof: + return + cur = list(self.prof_mapping) + # Si le préfixe existe déjà, on met juste à jour la profession + for m in cur: + if m.get("prefix") == prefix: + m["profession"] = prof + break + else: + cur.append({"prefix": prefix, "profession": prof}) + save_mapping(cur) + self.new_prefix = "" + self.new_profession = "" + self._reload_prof_mapping() + self.save_ok_prof = True + + def remove_mapping(self, prefix: str): + cur = [m for m in self.prof_mapping if m.get("prefix") != prefix] + save_mapping(cur) + self._reload_prof_mapping() + self.save_ok_prof = True + + def quick_add_prefix(self, prefix: str): + """Pré-remplit le formulaire avec une classe orpheline.""" + self.new_prefix = prefix + self.new_profession = "" + + def apply_mapping_to_db(self): + """Recalcule la profession pour tous les apprentis avec le mapping actuel.""" + sess = get_session() + try: + n = refresh_all_professions(sess) + finally: + sess.close() + self.refresh_msg = f"{n} fiche(s) mise(s) à jour." + # ── UI helpers ──────────────────────────────────────────────────────────────── @@ -445,6 +514,127 @@ def _section_template() -> rx.Component: ) +def _mapping_row(m: rx.Var) -> rx.Component: + return rx.flex( + rx.box( + rx.text("Préfixe", size="1", color="var(--gray-10)"), + rx.text(m["prefix"], size="2", weight="medium"), + flex="1", min_width="120px", + ), + rx.box( + rx.text("Profession", size="1", color="var(--gray-10)"), + rx.text(m["profession"], size="2"), + flex="2", min_width="200px", + ), + rx.button( + rx.icon("trash-2", size=14), + on_click=ParamsState.remove_mapping(m["prefix"]), + color_scheme="red", variant="ghost", size="1", + ), + gap="0.75rem", align="center", flex_wrap="wrap", + padding="0.4rem 0.6rem", + border="1px solid var(--gray-5)", + border_radius="6px", + background_color="white", + width="100%", + ) + + +def _unmapped_chip(classe: rx.Var) -> rx.Component: + return rx.button( + rx.icon("plus", size=12), + classe, + on_click=ParamsState.quick_add_prefix(classe), + color_scheme="amber", variant="soft", size="1", + ) + + +def _section_profession() -> rx.Component: + return _section( + "Correspondances classe → profession", + rx.text( + "Lors de l'import des données apprentis, la profession est dérivée " + "du préfixe de la classe (ex. classe « AUTOMAT 1 » → profession " + "« Automaticien CFC »). Utilisée notamment dans les avis de retenue.", + size="1", color="var(--gray-11)", + ), + # Tableau des correspondances + rx.cond( + ParamsState.prof_mapping.length() > 0, + rx.vstack( + rx.foreach(ParamsState.prof_mapping, _mapping_row), + spacing="2", width="100%", + ), + rx.text("Aucune correspondance configurée.", size="2", color="var(--gray-10)"), + ), + # Classes orphelines + rx.cond( + ParamsState.prof_unmapped.length() > 0, + rx.box( + rx.text( + "Classes sans correspondance (clique pour ajouter) :", + size="2", weight="medium", color="#92400e", margin_bottom="0.4rem", + ), + rx.flex( + rx.foreach(ParamsState.prof_unmapped, _unmapped_chip), + gap="0.35rem", flex_wrap="wrap", + ), + padding="0.75rem", + background_color="#fef3c7", + border="1px solid #fcd34d", + border_radius="6px", + width="100%", + ), + rx.fragment(), + ), + # Ajout d'une nouvelle correspondance + rx.divider(), + rx.text("Ajouter / modifier une correspondance", size="2", weight="medium"), + rx.flex( + _field( + "Préfixe de classe", + rx.input( + value=ParamsState.new_prefix, + on_change=ParamsState.set_new_prefix, + placeholder="ex. AUTOMAT", + width="100%", + ), + ), + _field( + "Profession", + rx.input( + value=ParamsState.new_profession, + on_change=ParamsState.set_new_profession, + placeholder="ex. Automaticien CFC", + width="100%", + ), + ), + gap="0.75rem", flex_wrap="wrap", width="100%", + ), + rx.flex( + rx.button( + rx.icon("plus", size=16), + "Ajouter / mettre à jour", + on_click=ParamsState.add_mapping, + color_scheme="blue", size="2", + ), + rx.button( + rx.icon("refresh-cw", size=14), + "Appliquer aux fiches existantes", + on_click=ParamsState.apply_mapping_to_db, + color_scheme="gray", variant="soft", size="2", + ), + _save_ok_callout(ParamsState.save_ok_prof), + rx.cond( + ParamsState.refresh_msg != "", + rx.text(ParamsState.refresh_msg, size="1", color="#15803d"), + rx.fragment(), + ), + gap="0.5rem", align="center", flex_wrap="wrap", + ), + ) + + def _section_app() -> rx.Component: return _section( "Application", @@ -482,6 +672,7 @@ def params_page() -> rx.Component: rx.vstack( rx.heading("Paramètres", size="7"), _section_app(), + _section_profession(), _section_sanction(), _section_smtp(), _section_escada(), diff --git a/eptm_dashboard/pages/retenue.py b/eptm_dashboard/pages/retenue.py new file mode 100644 index 0000000..7adfc65 --- /dev/null +++ b/eptm_dashboard/pages/retenue.py @@ -0,0 +1,778 @@ +"""Page /retenue — génération et envoi d'avis de retenue.""" + +from __future__ import annotations + +import json +import os +import sys +from datetime import date as _date +from pathlib import Path +from typing import Optional + +import reflex as rx +from sqlalchemy import select + +_ROOT = Path(__file__).resolve().parent.parent.parent +if str(_ROOT) not in sys.path: + sys.path.insert(0, str(_ROOT)) + +from src.db import get_session, Apprenti, ApprentiFiche, NotesExamen, Notice # noqa: E402 +from src.user_access import get_allowed_classes, is_class_allowed # noqa: E402 +from src.profession import resolve_profession # noqa: E402 +from src.retenue_pdf import generate_retenue_pdf # noqa: E402 +from src.email_sender import send_email # noqa: E402 +from src.logger import app_log # noqa: E402 + +from ..state import AuthState +from ..sidebar import layout +from ..components import empty_state + +DATA_DIR = Path(os.getenv("DATA_DIR", str(_ROOT / "data"))) +_SETTINGS_FILE = DATA_DIR / "settings.json" + + +def _load_settings() -> dict: + if _SETTINGS_FILE.exists(): + try: + return json.loads(_SETTINGS_FILE.read_text(encoding="utf-8")) + except Exception: + return {} + return {} + + +# ── State ───────────────────────────────────────────────────────────────────── + + +class RetenueState(AuthState): + # Sélecteur apprenti + apprenti_labels: list[str] = [] + apprenti_ids: list[int] = [] + selected_label: str = "" + selected_id: int = 0 + has_apprentis: bool = False + apprenti_search: str = "" + apprenti_select_open: bool = False + + # Données de l'apprenti sélectionné + sel_classe: str = "" + sel_profession: str = "" + sel_fiche_email_appr: str = "" + sel_fiche_email_form: str = "" + sel_fiche_email_entr: str = "" + sel_fiche_nom_entr: str = "" + + # Cache des branches (récupérées des notes d'examen) + branches_cache: list[str] = [] + branche_search: str = "" + branche_open: bool = False + + # Formulaire + retenue_date: str = "" # ISO date "YYYY-MM-DD" + probleme_date: str = "" + case: str = "devoir" # "devoir" | "comportement" | "retard" + branche: str = "" + remarque: str = "" + + # Email + email_dest: str = "apprenti" + email_custom: str = "" + + # Option : créer une notice Escada à la génération + add_notice: bool = False + + # États + form_error: str = "" + + @rx.var + def filtered_apprenti_labels(self) -> list[str]: + q = self.apprenti_search.lower().strip() + if not q: + return self.apprenti_labels + return [l for l in self.apprenti_labels if q in l.lower()] + + @rx.var + def filtered_branches(self) -> list[str]: + q = self.branche_search.lower().strip() + if not q: + return self.branches_cache + return [b for b in self.branches_cache if q in b.lower()] + + # ── Setters ────────────────────────────────────────────────────────────── + def set_apprenti_search(self, v: str): self.apprenti_search = v + def set_apprenti_select_open(self, v: bool): + self.apprenti_select_open = v + if not v: + self.apprenti_search = "" + def set_branche_search(self, v: str): self.branche_search = v + def set_branche_open(self, v: bool): + self.branche_open = v + if not v: + self.branche_search = "" + def set_retenue_date(self, v: str): self.retenue_date = v + def set_probleme_date(self, v: str): self.probleme_date = v + def set_case(self, v: str): self.case = v + def set_branche(self, v: str): self.branche = v + def set_remarque(self, v: str): self.remarque = v + def set_profession(self, v: str): self.sel_profession = v + def set_email_dest(self, v: str): self.email_dest = v + def set_email_custom(self, v: str): self.email_custom = v + def set_add_notice(self, v: bool): self.add_notice = v + + def load_data(self): + if not self.authenticated: + return rx.redirect("/login") + sess = get_session() + try: + allowed = get_allowed_classes(self.username) + q = select(Apprenti).order_by(Apprenti.nom, Apprenti.prenom) + if allowed is not None: + q = q.where(Apprenti.classe.in_(allowed)) + apprentis = sess.execute(q).scalars().all() + if not apprentis: + self.has_apprentis = False + self.apprenti_labels = [] + self.apprenti_ids = [] + return + self.has_apprentis = True + self.apprenti_labels = [ + f"{a.nom} {a.prenom} ({a.classe})" for a in apprentis + ] + self.apprenti_ids = [a.id for a in apprentis] + # Toujours partir d'une sélection vide à l'arrivée sur la page + self.selected_id = 0 + self.selected_label = "" + self.sel_classe = "" + self.sel_profession = "" + self.sel_fiche_email_appr = "" + self.sel_fiche_email_form = "" + self.sel_fiche_email_entr = "" + self.sel_fiche_nom_entr = "" + self._load_branches(sess) + finally: + sess.close() + # Dates par défaut = aujourd'hui + today = _date.today().isoformat() + if not self.retenue_date: + self.retenue_date = today + if not self.probleme_date: + self.probleme_date = today + + def _load_apprenti(self): + if not self.selected_id: + return + sess = get_session() + try: + ap = sess.get(Apprenti, self.selected_id) + if not ap: + return + self.sel_classe = ap.classe + fiche = ap.fiche + if fiche: + self.sel_profession = fiche.profession or resolve_profession(ap.classe) + self.sel_fiche_email_appr = fiche.email or "" + self.sel_fiche_email_form = fiche.formateur_email or "" + self.sel_fiche_email_entr = fiche.entreprise_email or "" + self.sel_fiche_nom_entr = fiche.entreprise_nom or "" + else: + self.sel_profession = resolve_profession(ap.classe) + self.sel_fiche_email_appr = "" + self.sel_fiche_email_form = "" + self.sel_fiche_email_entr = "" + self.sel_fiche_nom_entr = "" + finally: + sess.close() + + def _load_branches(self, sess): + """Construit le cache des branches uniques depuis NotesExamen.""" + rows = sess.execute(select(NotesExamen.donnees_json)).scalars().all() + seen: set[str] = set() + for raw in rows: + try: + d = json.loads(raw) + except Exception: + continue + if isinstance(d, list): + for br in d: + name = (br.get("branche") or "").strip() + if name: + seen.add(name) + self.branches_cache = sorted(seen) + + def handle_select_apprenti(self, label: str): + self.selected_label = label + try: + idx = self.apprenti_labels.index(label) + self.selected_id = self.apprenti_ids[idx] + except ValueError: + pass + self.apprenti_select_open = False + self.apprenti_search = "" + self._load_apprenti() + + def apprenti_search_keydown(self, key: str): + if key == "Enter": + results = self.filtered_apprenti_labels + if results: + return RetenueState.handle_select_apprenti(results[0]) + elif key == "Escape": + self.apprenti_select_open = False + self.apprenti_search = "" + + def select_branche(self, b: str): + self.branche = b + self.branche_open = False + self.branche_search = "" + + def branche_keydown(self, key: str): + if key == "Enter": + # Si une seule branche filtrée : la sélectionne. Sinon prend la saisie libre. + results = self.filtered_branches + if len(results) == 1: + return RetenueState.select_branche(results[0]) + elif self.branche_search: + self.branche = self.branche_search.strip() + self.branche_open = False + self.branche_search = "" + elif key == "Escape": + self.branche_open = False + self.branche_search = "" + + # ── Actions ────────────────────────────────────────────────────────────── + + _CASE_LABELS = { + "devoir": "N'a pas remis ses tâches scolaires dans les délais", + "comportement": "A manifesté un comportement répréhensible", + "retard": "Est arrivé en retard aux cours", + } + + def _build_notice_titre(self) -> str: + label = self._CASE_LABELS.get(self.case, "") + if self.case == "devoir" and self.branche.strip(): + return f"{label} en {self.branche.strip()}" + return label + + def _create_notice_if_requested(self): + """Crée une Notice en DB si la checkbox add_notice est cochée.""" + if not self.add_notice or not self.selected_id: + return + sess = get_session() + try: + sess.add(Notice( + apprenti_id=self.selected_id, + date_event=_date.today(), + titre=self._build_notice_titre(), + remarque=(self.remarque or "").strip() or None, + type_notice=None, + matiere=None, + source="retenue", + status="pending", + created_by=self.username or None, + )) + sess.commit() + app_log( + f"[notice] {self.username or '?'} : création (retenue) pour " + f"{self.selected_label} — case={self.case}" + ) + except Exception as e: + sess.rollback() + app_log(f"[notice] échec création : {e}") + finally: + sess.close() + + def _build_pdf(self) -> Optional[bytes]: + if not self.selected_id: + self.form_error = "Aucun apprenti sélectionné." + return None + if not is_class_allowed(self.username, self.sel_classe): + self.form_error = "Accès refusé pour cette classe." + return None + if self.case == "devoir" and not self.branche.strip(): + self.form_error = "Veuillez préciser la branche." + return None + try: + r_date = _date.fromisoformat(self.retenue_date) + p_date = _date.fromisoformat(self.probleme_date) + except Exception: + self.form_error = "Date invalide." + return None + self.form_error = "" + sess = get_session() + try: + return generate_retenue_pdf( + sess, self.selected_id, + profession=self.sel_profession, + retenue_date=r_date, + probleme_date=p_date, + case=self.case, + branche=self.branche.strip(), + remarque=self.remarque, + prof_name=self.name or self.username, + ) + finally: + sess.close() + + def _filename(self) -> str: + sess = get_session() + try: + ap = sess.get(Apprenti, self.selected_id) + if not ap: + return "Avis_retenue.pdf" + safe_nom = "".join(c if c.isalnum() else "_" for c in ap.nom) + safe_prenom = "".join(c if c.isalnum() else "_" for c in ap.prenom) + return f"Avis_retenue_{safe_nom}_{safe_prenom}.pdf" + finally: + sess.close() + + def download_pdf(self): + data = self._build_pdf() + if data is None: + if self.form_error: + return rx.toast.error(self.form_error) + return rx.toast.error("Impossible de générer le PDF.") + app_log( + f"[retenue] {self.username or '?'} : avis téléchargé pour " + f"{self.selected_label} (case={self.case})" + ) + self._create_notice_if_requested() + return rx.download(data=data, filename=self._filename()) + + def send_email_action(self): + data = self._build_pdf() + if data is None: + if self.form_error: + return rx.toast.error(self.form_error) + return rx.toast.error("Impossible de générer le PDF.") + + # Destinataire + if self.email_dest == "apprenti": + to = self.sel_fiche_email_appr + elif self.email_dest == "formateur": + to = self.sel_fiche_email_form + else: + to = self.email_custom.strip() + if not to or "@" not in to: + return rx.toast.error("Adresse email invalide ou manquante.") + + s = _load_settings() + smtp_host = s.get("smtp_host") + smtp_port = int(s.get("smtp_port") or 587) + smtp_login = s.get("smtp_login") + smtp_password = s.get("smtp_password") + smtp_sender = s.get("smtp_sender") + if not (smtp_host and smtp_login and smtp_password and smtp_sender): + return rx.toast.error("Configuration SMTP incomplète (Paramètres).") + + subject = f"Avis de retenue — {self.selected_label}" + body = ( + f"Bonjour,\n\nVeuillez trouver en pièce jointe l'avis de retenue concernant " + f"{self.selected_label}.\n\nCordialement,\n{self.name or self.username}\n" + ) + try: + send_email( + smtp_host=smtp_host, smtp_port=smtp_port, + smtp_login=smtp_login, smtp_password=smtp_password, + smtp_sender=smtp_sender, + to_email=to, subject=subject, body=body, + attachments=[(data, self._filename())], + ) + except Exception as e: + return rx.toast.error(f"Échec d'envoi : {e}") + app_log( + f"[retenue] {self.username or '?'} : avis envoyé à {to} pour " + f"{self.selected_label}" + ) + self._create_notice_if_requested() + return rx.toast.success(f"Avis envoyé à {to}") + + +# ── UI ──────────────────────────────────────────────────────────────────────── + +def _apprenti_option(label: rx.Var) -> rx.Component: + return rx.box( + rx.text(label, size="2"), + padding="0.45rem 0.75rem", + cursor="pointer", + on_click=RetenueState.handle_select_apprenti(label), + _hover={"background_color": "var(--gray-3)"}, + width="100%", + ) + + +def _apprenti_selector() -> rx.Component: + return rx.popover.root( + rx.popover.trigger( + rx.box( + rx.flex( + rx.cond( + RetenueState.selected_label != "", + rx.text(RetenueState.selected_label, size="2"), + rx.text("Sélectionner un apprenti…", size="2", color="var(--gray-9)"), + ), + rx.spacer(), + rx.icon("chevron-down", size=18, color="var(--gray-9)"), + align="center", + width="100%", + ), + padding="0.5rem 0.75rem", + border="1px solid var(--gray-7)", + border_radius="6px", + background_color="white", + cursor="pointer", + width="100%", + custom_attrs={"data-shortcut": "apprenti-search"}, + ), + ), + rx.popover.content( + rx.vstack( + rx.input( + placeholder="Rechercher un apprenti…", + value=RetenueState.apprenti_search, + on_change=RetenueState.set_apprenti_search, + on_key_down=RetenueState.apprenti_search_keydown, + size="2", + width="100%", + auto_focus=True, + ), + rx.cond( + RetenueState.filtered_apprenti_labels.length() > 0, + rx.box( + rx.foreach(RetenueState.filtered_apprenti_labels, _apprenti_option), + max_height="280px", + overflow_y="auto", + width="100%", + ), + rx.box( + rx.text("Aucun résultat", size="2", color="var(--gray-9)"), + padding="0.5rem 0.75rem", + ), + ), + spacing="2", + width="100%", + ), + min_width="320px", + max_width="500px", + padding="0.5rem", + ), + open=RetenueState.apprenti_select_open, + on_open_change=RetenueState.set_apprenti_select_open, + ) + + +def _branche_option(b: rx.Var) -> rx.Component: + return rx.box( + rx.text(b, size="2"), + padding="0.45rem 0.75rem", + cursor="pointer", + on_click=RetenueState.select_branche(b), + _hover={"background_color": "var(--gray-3)"}, + width="100%", + ) + + +def _branche_selector() -> rx.Component: + return rx.popover.root( + rx.popover.trigger( + rx.box( + rx.flex( + rx.cond( + RetenueState.branche != "", + rx.text(RetenueState.branche, size="2"), + rx.text("Choisir / taper une branche…", size="2", color="var(--gray-9)"), + ), + rx.spacer(), + rx.icon("chevron-down", size=18, color="var(--gray-9)"), + align="center", + width="100%", + ), + padding="0.5rem 0.75rem", + border="1px solid var(--gray-7)", + border_radius="6px", + background_color="white", + cursor="pointer", + width="100%", + ), + ), + rx.popover.content( + rx.vstack( + rx.input( + placeholder="Rechercher ou saisir une branche libre…", + value=RetenueState.branche_search, + on_change=RetenueState.set_branche_search, + on_key_down=RetenueState.branche_keydown, + size="2", + width="100%", + auto_focus=True, + ), + rx.cond( + RetenueState.filtered_branches.length() > 0, + rx.box( + rx.foreach(RetenueState.filtered_branches, _branche_option), + max_height="280px", + overflow_y="auto", + width="100%", + ), + rx.text( + "Appuyez sur Entrée pour valider votre saisie libre.", + size="1", color="var(--gray-9)", + padding="0.5rem 0.75rem", + ), + ), + spacing="2", + width="100%", + ), + min_width="320px", + max_width="500px", + padding="0.5rem", + ), + open=RetenueState.branche_open, + on_open_change=RetenueState.set_branche_open, + ) + + +def _profession_warning() -> rx.Component: + # Affiché uniquement si un apprenti est sélectionné ET que sa profession est vide + return rx.cond( + (RetenueState.selected_id != 0) & (RetenueState.sel_profession == ""), + rx.callout.root( + rx.callout.icon(rx.icon("triangle-alert", size=16)), + rx.callout.text( + "Profession non définie pour ", + RetenueState.sel_classe, + ". Renseigne-la ci-dessous, ou ajoute la correspondance dans ", + rx.link("Paramètres", href="/params", color="#1565c0"), + " pour qu'elle soit pré-remplie automatiquement.", + ), + color_scheme="amber", variant="soft", size="1", + ), + rx.fragment(), + ) + + +def _form() -> rx.Component: + return rx.vstack( + # Apprenti + rx.vstack( + rx.text("Apprenti", size="2", weight="medium", color="var(--gray-11)"), + _apprenti_selector(), + spacing="1", width="100%", + ), + _profession_warning(), + # Profession (éditable) + rx.vstack( + rx.text("Profession", size="2", weight="medium", color="var(--gray-11)"), + rx.input( + value=RetenueState.sel_profession, + on_change=RetenueState.set_profession, + placeholder="ex. Automaticien CFC", + width="100%", + ), + spacing="1", width="100%", + ), + # Dates + rx.flex( + rx.vstack( + rx.text("Date de retenue", size="2", weight="medium", color="var(--gray-11)"), + rx.input( + type="date", + value=RetenueState.retenue_date, + on_change=RetenueState.set_retenue_date, + width="100%", + ), + spacing="1", flex="1", min_width="200px", + ), + rx.vstack( + rx.text("Date du problème", size="2", weight="medium", color="var(--gray-11)"), + rx.input( + type="date", + value=RetenueState.probleme_date, + on_change=RetenueState.set_probleme_date, + width="100%", + ), + spacing="1", flex="1", min_width="200px", + ), + gap="0.75rem", flex_wrap="wrap", width="100%", + ), + # Motif (radio) + rx.vstack( + rx.text("Motif de la retenue", size="2", weight="medium", color="var(--gray-11)"), + rx.radio_group.root( + rx.vstack( + rx.radio_group.item( + rx.text("N'a pas remis ses tâches scolaires dans les délais", size="2"), + value="devoir", + ), + rx.radio_group.item( + rx.text("A manifesté un comportement répréhensible", size="2"), + value="comportement", + ), + rx.radio_group.item( + rx.text("Est arrivé en retard aux cours", size="2"), + value="retard", + ), + spacing="2", + ), + value=RetenueState.case, + on_change=RetenueState.set_case, + ), + spacing="2", width="100%", + ), + # Branche (visible seulement si case devoir) + rx.cond( + RetenueState.case == "devoir", + rx.vstack( + rx.text("Branche", size="2", weight="medium", color="var(--gray-11)"), + _branche_selector(), + spacing="1", width="100%", + ), + rx.fragment(), + ), + # Remarque + rx.vstack( + rx.text("Remarque éventuelle de l'école", size="2", weight="medium", color="var(--gray-11)"), + rx.text_area( + value=RetenueState.remarque, + on_change=RetenueState.set_remarque, + rows="4", + width="100%", + resize="vertical", + ), + spacing="1", width="100%", + ), + # Erreur + rx.cond( + RetenueState.form_error != "", + rx.callout.root( + rx.callout.icon(rx.icon("triangle-alert", size=16)), + rx.callout.text(RetenueState.form_error), + color_scheme="red", variant="soft", size="1", + ), + rx.fragment(), + ), + # Option : créer une notice Escada + rx.flex( + rx.checkbox( + checked=RetenueState.add_notice, + on_change=RetenueState.set_add_notice, + size="2", + ), + rx.text( + "Ajouter automatiquement une notice sur Escada", + size="2", color="var(--gray-12)", + ), + gap="0.5rem", align="center", + padding="0.5rem 0.65rem", + background_color="#f8f9fa", + border="1px solid #e5e7eb", + border_radius="6px", + ), + # Actions : télécharger + rx.button( + rx.icon("file-down", size=16), + "Télécharger l'avis", + on_click=RetenueState.download_pdf, + color_scheme="red", size="2", + disabled=RetenueState.selected_id == 0, + ), + spacing="4", + width="100%", + ) + + +def _email_section() -> rx.Component: + return rx.box( + rx.vstack( + rx.flex( + rx.icon("mail", size=16, color="#37474f"), + rx.text("Envoyer par email", size="3", weight="bold", color="#37474f"), + gap="0.5rem", align="center", + ), + rx.divider(), + rx.text("Destinataire", size="2", weight="medium", color="var(--gray-11)"), + rx.radio_group.root( + rx.vstack( + rx.radio_group.item( + rx.cond( + RetenueState.sel_fiche_email_appr != "", + rx.text("Apprenti — ", RetenueState.sel_fiche_email_appr, size="2"), + rx.text("Apprenti (email inconnu)", size="2", color="var(--gray-9)"), + ), + value="apprenti", + disabled=RetenueState.sel_fiche_email_appr == "", + ), + rx.radio_group.item( + rx.cond( + RetenueState.sel_fiche_email_form != "", + rx.text("Formateur — ", RetenueState.sel_fiche_email_form, size="2"), + rx.text("Formateur (email inconnu)", size="2", color="var(--gray-9)"), + ), + value="formateur", + disabled=RetenueState.sel_fiche_email_form == "", + ), + rx.radio_group.item( + rx.text("Autre adresse", size="2"), + value="autre", + ), + spacing="2", + ), + value=RetenueState.email_dest, + on_change=RetenueState.set_email_dest, + ), + rx.cond( + RetenueState.email_dest == "autre", + rx.input( + placeholder="email@domaine.ch", + value=RetenueState.email_custom, + on_change=RetenueState.set_email_custom, + type="email", + width="100%", + ), + rx.fragment(), + ), + rx.button( + rx.icon("send", size=16), + "Envoyer l'avis par email", + on_click=RetenueState.send_email_action, + color_scheme="blue", size="2", + disabled=RetenueState.selected_id == 0, + ), + spacing="3", width="100%", + ), + padding="1.25rem", + background_color="white", + border_radius="8px", + border="1px solid #e0e0e0", + width="100%", + ) + + +def retenue_page() -> rx.Component: + return layout( + rx.vstack( + rx.heading("Avis de retenue", size="6"), + rx.cond( + RetenueState.has_apprentis, + rx.vstack( + rx.box( + _form(), + padding="1.25rem", + background_color="white", + border_radius="8px", + border="1px solid #e0e0e0", + width="100%", + ), + _email_section(), + spacing="4", width="100%", + ), + empty_state( + icon="users", + title="Aucun apprenti", + description="Importe les classes depuis Escadaweb pour générer des avis.", + action_label="Lancer un import", + action_href="/escada", + ), + ), + spacing="4", + width="100%", + max_width="780px", + ) + ) diff --git a/eptm_dashboard/sidebar.py b/eptm_dashboard/sidebar.py index dcb421b..ee15e55 100644 --- a/eptm_dashboard/sidebar.py +++ b/eptm_dashboard/sidebar.py @@ -24,6 +24,7 @@ _PAGES = [ ("Tableau de bord", "/accueil", "layout-dashboard"), ("Apprentis", "/fiche", "user"), ("Classes", "/classe", "users"), + ("Avis de retenue", "/retenue", "file-warning"), ] _ADMIN_PAGES = [ diff --git a/requirements.txt b/requirements.txt index 16a3b1c..008a68a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ reflex==0.9.2 -markdown==3.10.2 \ No newline at end of file +markdown==3.10.2 +pikepdf==10.5.1 \ No newline at end of file diff --git a/scripts/cron_tick.py b/scripts/cron_tick.py index 31a804a..edaa1fd 100755 --- a/scripts/cron_tick.py +++ b/scripts/cron_tick.py @@ -52,6 +52,7 @@ except Exception: SCRIPT_SYNC = _ROOT / "scripts" / "sync_esacada.py" SCRIPT_PUSH = _ROOT / "scripts" / "push_to_escada.py" +SCRIPT_PUSH_NOTICES = _ROOT / "scripts" / "push_notices.py" DATA_DIR = _ROOT / "data" # Marqueur écrit par run_imports.py à la fin des imports en DB @@ -327,6 +328,8 @@ def run_job(job: CronJob, sess) -> None: ("Push Escada", _build_push_cmd(job)), ("Sync Escada", _build_sync_cmd(job)), ] + elif job.task_kind == "push_notices": + steps = [("Push notices", [sys.executable, str(SCRIPT_PUSH_NOTICES)])] else: fp.write(f"[error] task_kind inconnu : {job.task_kind}\n") overall_rc = 99 diff --git a/scripts/push_notices.py b/scripts/push_notices.py new file mode 100755 index 0000000..4973bc0 --- /dev/null +++ b/scripts/push_notices.py @@ -0,0 +1,251 @@ +#!/usr/bin/env python3 +"""Push des notices en attente vers Escadaweb. + +Workflow par notice : + Classes → Élèves (de la classe) → Notices (de l'apprenti) → Ajouter + → Date / Titre / Remarques → Mettre à jour → retour Élèves + +Réutilise les helpers de `sync_esacada.py` : + - `_launch_context()` : navigateur headless avec profil persistant + - `_ensure_logged_in(page)` : login SSO + 2FA + langue FR + - `_go_to_students_page(page, class_name)` : ouvre ViewLernende d'une classe + +Sortie standard (parsée par `cron_tick.py` et la page /escada) : + PUSH_NOTICES_DONE {"ok": N, "err": [...], "remaining": N} + +Behaviour DB : + - status='pending' → tentative + - succès → suppression de la Notice de la DB + - échec → status='failed' + error_msg +""" + +from __future__ import annotations + +import json +import sys +import traceback +from pathlib import Path + +_ROOT = Path(__file__).resolve().parent.parent +if str(_ROOT) not in sys.path: + sys.path.insert(0, str(_ROOT)) + +from sqlalchemy import select # noqa: E402 +from playwright.sync_api import Page # noqa: E402 + +from src.db import get_session, Notice # noqa: E402 +from src.logger import app_log # noqa: E402 + +from scripts.sync_esacada import ( # noqa: E402 + _launch_context, _ensure_logged_in, _go_to_students_page, _log, + CLASSES_URL, +) + + +def _fill_date(page: Page, date_str: str) -> None: + """Remplit le champ Date du formulaire notice (DevExpress). + + On vise l'input texte directement (`id$="_DXEditor1_I"`), plus stable que + le calendrier popup. + """ + date_input = page.locator("input[id$='_DXEditor1_I']").first + date_input.wait_for(state="visible", timeout=10_000) + date_input.click() + # Sélectionne tout l'ancien contenu (date pré-remplie d'aujourd'hui) puis tape + date_input.press("Control+A") + date_input.type(date_str) + date_input.press("Tab") # commit la valeur + + +def _push_one_notice(page: Page, notice: Notice, students_url: str) -> tuple[bool, str]: + """Pousse une notice. Renvoie (ok, error_message). + + Pré : `page` est sur la liste Élèves de la classe de l'apprenti. + Post (succès ou échec) : `page` est de retour sur la liste Élèves. + """ + ap = notice.apprenti + nom = ap.nom + prenom = ap.prenom + + # 1. Trouver la ligne de l'apprenti et cliquer "Notices" + try: + # On filtre par nom ET prénom pour éviter les homonymes + student_row = page.locator("tr").filter(has_text=nom).filter(has_text=prenom).first + if not student_row.count(): + return False, f"Apprenti '{nom} {prenom}' introuvable dans la grille" + student_row.get_by_role("link", name="Notices").first.click() + page.wait_for_load_state("networkidle", timeout=15_000) + except Exception as e: + return False, f"Navigation Notices : {e}" + + # 2. Cliquer "Ajouter" + try: + page.locator("a").filter(has_text="Ajouter").first.click() + page.wait_for_timeout(800) + except Exception as e: + return False, f"Bouton Ajouter introuvable : {e}" + + # 3. Remplir Date / Titre / Remarques + try: + _fill_date(page, notice.date_event.strftime("%d.%m.%Y")) + except Exception as e: + return False, f"Remplissage date : {e}" + + try: + page.get_by_role("textbox", name="Titre:").fill(notice.titre) + except Exception as e: + return False, f"Remplissage titre : {e}" + + if notice.remarque: + try: + page.get_by_role("textbox", name="Remarques:").fill(notice.remarque) + except Exception: + pass # Non bloquant + + # 4. Sauver + try: + page.get_by_role("link", name="Mettre à jour").click() + page.wait_for_load_state("networkidle", timeout=15_000) + page.wait_for_timeout(500) # laisse le temps à la grille de se rafraîchir + except Exception as e: + return False, f"Échec Mettre à jour : {e}" + + # 5. Vérifier que la notice est bien dans la grille de l'apprenti + try: + # On cherche le titre dans la grille des notices (max 30 chars pour éviter + # les soucis de longueur / wrapping). + needle = (notice.titre or "").strip()[:30] + if needle: + cell = page.locator("td").filter(has_text=needle).first + cell.wait_for(state="visible", timeout=8_000) + except Exception: + # Vérification échouée — on retourne quand même à la liste Élèves + # avant de signaler l'échec. + try: + page.goto(students_url) + page.wait_for_load_state("networkidle", timeout=15_000) + except Exception: + pass + return False, "Notice non retrouvée dans la grille après save (échec probable)" + + # 6. Retour à la liste Élèves de la même classe (option a : navigation directe) + try: + page.goto(students_url) + page.wait_for_load_state("networkidle", timeout=15_000) + except Exception as e: + return False, f"Retour grille élèves : {e}" + + return True, "" + + +def main(): + sess = get_session() + ok_count = 0 + errors: list[str] = [] + try: + notices = sess.execute( + select(Notice).where(Notice.status == "pending") + ).scalars().all() + + app_log(f"[push_notices] {len(notices)} notice(s) en attente") + + if not notices: + print( + 'PUSH_NOTICES_DONE ' + + json.dumps({"ok": 0, "err": [], "remaining": 0}), + flush=True, + ) + return + + # Groupe par classe pour minimiser les navigations + by_class: dict[str, list[Notice]] = {} + for n in notices: + by_class.setdefault(n.apprenti.classe, []).append(n) + + pw, ctx, page = _launch_context() + try: + # Navigation initiale vers ViewKlassen : redirige vers le login + # si la session est expirée, et permet à _ensure_logged_in + # de détecter le succès (ViewKlassen dans l'URL). + page.goto(CLASSES_URL) + _ensure_logged_in(page) + + for classe, class_notices in by_class.items(): + _log(f"[push_notices] classe={classe} ({len(class_notices)} notices)") + try: + students_page = _go_to_students_page(page, classe) + except Exception as e: + students_page = None + _log(f"[push_notices] erreur navigation {classe}: {e}") + if not students_page: + msg = f"classe '{classe}' introuvable sur Escada" + for n in class_notices: + n.status = "failed" + n.error_msg = msg + errors.append( + f"id={n.id} ({n.apprenti.nom} {n.apprenti.prenom}): {msg}" + ) + sess.commit() + continue + + students_url = students_page.url + + for notice in class_notices: + label = f"{notice.apprenti.nom} {notice.apprenti.prenom}" + try: + ok, err = _push_one_notice(students_page, notice, students_url) + if ok: + sess.delete(notice) + sess.commit() + ok_count += 1 + _log(f"[push_notices] OK id={notice.id} ({label})") + else: + notice.status = "failed" + notice.error_msg = err[:500] + sess.commit() + errors.append(f"id={notice.id} ({label}): {err}") + _log(f"[push_notices] FAIL id={notice.id}: {err}") + # Si on est paumé, tenter un retour propre + try: + students_page.goto(students_url) + students_page.wait_for_load_state( + "networkidle", timeout=10_000 + ) + except Exception: + break # impossible de recover, on passe à la classe suivante + except Exception as e: + notice.status = "failed" + notice.error_msg = str(e)[:500] + sess.commit() + errors.append(f"id={notice.id} ({label}): {e}") + _log(f"[push_notices] EX id={notice.id}: {e}\n{traceback.format_exc()}") + finally: + try: ctx.close() + except Exception: pass + try: pw.stop() + except Exception: pass + + finally: + # Compte les notices encore pending (n'incluant pas les "failed") + try: + remaining = sess.execute( + select(Notice).where(Notice.status == "pending") + ).all() + remaining_count = len(remaining) + except Exception: + remaining_count = 0 + sess.close() + + print( + 'PUSH_NOTICES_DONE ' + + json.dumps({ + "ok": ok_count, + "err": errors, + "remaining": remaining_count, + }, ensure_ascii=False), + flush=True, + ) + + +if __name__ == "__main__": + main() diff --git a/src/db.py b/src/db.py index 6918c5e..1bf7a4c 100644 --- a/src/db.py +++ b/src/db.py @@ -189,6 +189,9 @@ class ApprentiFiche(Base): formateur_nom: Mapped[Optional[str]] = mapped_column(String, nullable=True) formateur_email: Mapped[Optional[str]] = mapped_column(String, nullable=True) + # Profession dérivée du préfixe de classe (mapping dans data/settings.json) + profession: Mapped[Optional[str]] = mapped_column(String, nullable=True) + updated_at: Mapped[datetime] = mapped_column(default=datetime.now, onupdate=datetime.now) apprenti: Mapped["Apprenti"] = relationship(back_populates="fiche") @@ -206,6 +209,30 @@ class NotesExamen(Base): apprenti: Mapped["Apprenti"] = relationship(back_populates="notes_examen") +class Notice(Base): + """Note à pousser sur Escada (liée à un apprenti). + + Créée notamment lors de la génération d'un avis de retenue (si la case + correspondante est cochée). Supprimée après push réussi. + """ + __tablename__ = "notices" + + id: Mapped[int] = mapped_column(primary_key=True) + apprenti_id: Mapped[int] = mapped_column(ForeignKey("apprentis.id")) + date_event: Mapped[date] + titre: Mapped[str] = mapped_column(Text) + remarque: Mapped[Optional[str]] = mapped_column(Text, nullable=True) + type_notice: Mapped[Optional[str]] = mapped_column(String, nullable=True) + matiere: Mapped[Optional[str]] = mapped_column(String, nullable=True) + source: Mapped[str] = mapped_column(default="manual") # "retenue" pour le moment + status: Mapped[str] = mapped_column(default="pending") # "pending" | "failed" + created_at: Mapped[datetime] = mapped_column(default=datetime.now) + created_by: Mapped[Optional[str]] = mapped_column(String, nullable=True) + error_msg: Mapped[Optional[str]] = mapped_column(Text, nullable=True) + + apprenti: Mapped["Apprenti"] = relationship() + + class SanctionExport(Base): __tablename__ = "sanctions_export" @@ -286,6 +313,21 @@ def init_db(engine=None): for stmt in ( "ALTER TABLE sanctions_export ADD COLUMN nb_absences INTEGER", "ALTER TABLE cron_jobs ADD COLUMN notify_level TEXT DEFAULT 'normal'", + "ALTER TABLE apprenti_fiches ADD COLUMN profession TEXT", + """CREATE TABLE IF NOT EXISTS notices ( + id INTEGER PRIMARY KEY, + apprenti_id INTEGER NOT NULL REFERENCES apprentis(id), + date_event DATE NOT NULL, + titre TEXT NOT NULL, + remarque TEXT, + type_notice TEXT, + matiere TEXT, + source TEXT NOT NULL DEFAULT 'manual', + status TEXT NOT NULL DEFAULT 'pending', + created_at DATETIME NOT NULL, + created_by TEXT, + error_msg TEXT + )""", """CREATE TABLE IF NOT EXISTS escada_pending ( id INTEGER PRIMARY KEY, apprenti_id INTEGER NOT NULL REFERENCES apprentis(id), @@ -315,6 +357,7 @@ def upsert_apprenti_fiche(session: Session, apprenti_id: int, data: dict) -> Non "entreprise_nom", "entreprise_adresse", "entreprise_code_postal", "entreprise_localite", "entreprise_telephone", "entreprise_email", "formateur_nom", "formateur_email", + "profession", ] if existing: for f in fields: diff --git a/src/profession.py b/src/profession.py new file mode 100644 index 0000000..19b5c26 --- /dev/null +++ b/src/profession.py @@ -0,0 +1,113 @@ +"""Helper pour la résolution `classe → profession` via mapping configurable. + +Mapping stocké dans `data/settings.json` sous la clé `class_profession_mapping`, +forme : `[{"prefix": "AUTOMAT", "profession": "Automaticien CFC"}, ...]`. +""" + +from __future__ import annotations + +import json +import os +from pathlib import Path +from typing import Optional + +from sqlalchemy import select +from sqlalchemy.orm import Session + +from src.db import Apprenti, ApprentiFiche, upsert_apprenti_fiche + +_ROOT = Path(__file__).resolve().parent.parent +_DATA_DIR = Path(os.getenv("DATA_DIR", str(_ROOT / "data"))) +_SETTINGS_PATH = _DATA_DIR / "settings.json" + +_DEFAULT_MAPPING = [ + {"prefix": "AUTOMAT", "profession": "Automaticien CFC"}, + {"prefix": "MONTAUT", "profession": "Monteur Automaticien CFC"}, + {"prefix": "EM-AU", "profession": "Automaticien CFC"}, +] + + +def _load_settings() -> dict: + if _SETTINGS_PATH.exists(): + try: + return json.loads(_SETTINGS_PATH.read_text(encoding="utf-8")) + except Exception: + return {} + return {} + + +def _save_settings(s: dict) -> None: + _SETTINGS_PATH.write_text(json.dumps(s, ensure_ascii=False, indent=2), encoding="utf-8") + + +def load_mapping() -> list[dict]: + """Renvoie la liste des correspondances [{prefix, profession}, ...].""" + s = _load_settings() + return list(s.get("class_profession_mapping", _DEFAULT_MAPPING)) + + +def save_mapping(mapping: list[dict]) -> None: + """Sauve le mapping (filtre les entrées vides).""" + cleaned = [ + {"prefix": (m.get("prefix") or "").strip(), "profession": (m.get("profession") or "").strip()} + for m in mapping + ] + cleaned = [m for m in cleaned if m["prefix"] and m["profession"]] + s = _load_settings() + s["class_profession_mapping"] = cleaned + _save_settings(s) + + +def resolve_profession(classe: str, mapping: Optional[list[dict]] = None) -> str: + """Renvoie la profession matchant le préfixe de la classe, ou '' si aucun.""" + if not classe: + return "" + if mapping is None: + mapping = load_mapping() + # On préfère le préfixe le plus long en cas de chevauchement + for entry in sorted(mapping, key=lambda m: -len(m.get("prefix", ""))): + prefix = entry.get("prefix", "") + if prefix and classe.startswith(prefix): + return entry.get("profession", "") + return "" + + +def find_unmapped_classes(session: Session) -> list[str]: + """Liste les classes en DB sans correspondance dans le mapping. + + Exclut MP/MI (déjà filtrées partout dans l'app). + """ + mapping = load_mapping() + classes = session.execute( + select(Apprenti.classe).distinct().order_by(Apprenti.classe) + ).scalars().all() + out = [] + for c in classes: + if not c or c.startswith(("MP", "MI")): + continue + if not resolve_profession(c, mapping): + out.append(c) + return out + + +def refresh_all_professions(session: Session) -> int: + """Recalcule `profession` pour tous les apprentis en base. + + Renvoie le nombre de fiches mises à jour. Utile : + - une fois à l'init après ajout du champ + - après modification du mapping dans Paramètres + - après une sync Escada + """ + mapping = load_mapping() + apprentis = session.execute(select(Apprenti)).scalars().all() + n = 0 + for ap in apprentis: + prof = resolve_profession(ap.classe, mapping) + if not prof: + # Pas de mapping → on laisse la valeur existante si présente + continue + # upsert : crée la fiche si elle n'existe pas, sinon met à jour profession + upsert_apprenti_fiche(session, ap.id, {"profession": prof}) + n += 1 + session.commit() + return n diff --git a/src/retenue_pdf.py b/src/retenue_pdf.py new file mode 100644 index 0000000..1c7bb73 --- /dev/null +++ b/src/retenue_pdf.py @@ -0,0 +1,231 @@ +"""Génération d'avis de retenue à partir du template AcroForm. + +Template : `data/templates/GF_FO_Avis_de_retenue.pdf`. Le champ `Date` du +template a 3 widgets-enfants partagés (un par ligne du formulaire). On les +sépare en 3 champs distincts (`Date_devoir`, `Date_comportement`, `Date_retard`) +puis on remplit uniquement celui correspondant à la case cochée. + +Le PDF généré reste éditable (formulaire préservé). +""" + +from __future__ import annotations + +import io +import os +from datetime import date as _date +from pathlib import Path +from typing import Optional + +import pypdf + +from sqlalchemy.orm import Session + +from src.db import Apprenti, ApprentiFiche + +_ROOT = Path(__file__).resolve().parent.parent +_DATA_DIR = Path(os.getenv("DATA_DIR", str(_ROOT / "data"))) +_TEMPLATE_PATH = _DATA_DIR / "templates" / "GF_FO_Avis_de_retenue.pdf" + +_MOIS_FR = [ + "janvier", "février", "mars", "avril", "mai", "juin", + "juillet", "août", "septembre", "octobre", "novembre", "décembre", +] + +# Mapping case → suffixe + index (ordre des widgets enfants triés par Y desc) +_CASE_TO_SUFFIX = { + "devoir": ("Date_devoir", 0), + "comportement": ("Date_comportement", 1), + "retard": ("Date_retard", 2), +} + + +def format_date_long(d: _date) -> str: + """Formate une date en 'jour mois année' (ex: '12 mars 2026').""" + return f"{d.day} {_MOIS_FR[d.month - 1]} {d.year}" + + +def generate_retenue_pdf( + sess: Session, + apprenti_id: int, + *, + profession: str, + retenue_date: _date, + probleme_date: _date, + case: str, # "devoir" | "comportement" | "retard" + branche: str = "", + remarque: str = "", + prof_name: str = "", +) -> Optional[bytes]: + """Pré-remplit le template puis aplatit le PDF. Renvoie les bytes du PDF aplati.""" + if not _TEMPLATE_PATH.exists(): + return None + apprenti = sess.get(Apprenti, apprenti_id) + if apprenti is None: + return None + + fiche: Optional[ApprentiFiche] = apprenti.fiche + + classe_full = ( + f"{profession.strip()} {apprenti.classe}".strip() + if profession else apprenti.classe + ) + npa_ville = "" + if fiche: + cp = (fiche.entreprise_code_postal or "").strip() + loc = (fiche.entreprise_localite or "").strip() + npa_ville = f"{cp} {loc}".strip() + + # 1. Lecture template + clone + reader = pypdf.PdfReader(str(_TEMPLATE_PATH)) + writer = pypdf.PdfWriter(clone_from=reader) + + # 2. Séparer les 3 widgets du champ Date en 3 champs distincts. + # Après cette opération, on peut remplir chaque Date_xxx individuellement. + _split_date_field(writer) + + # 3. Remplit les champs texte (Date_xxx inclus pour la case sélectionnée) + target_date_field = _CASE_TO_SUFFIX.get(case, (None, None))[0] + field_values: dict[str, str] = { + "NomApprenti": f"{apprenti.prenom} {apprenti.nom}".strip(), + "Classe": classe_full, + "NomEntreprise": (fiche.entreprise_nom if fiche else "") or "", + "Adresse": (fiche.entreprise_adresse if fiche else "") or "", + "NPA-Ville": npa_ville, + "RetenueDateHeure": retenue_date.strftime("%d.%m.%Y"), + "Branche": branche if case == "devoir" else "", + "Remarque": remarque, + "DateAvis": format_date_long(_date.today()), + "Profs": prof_name or "", + } + if target_date_field: + field_values[target_date_field] = probleme_date.strftime("%d.%m.%Y") + + for page in writer.pages: + try: + writer.update_page_form_field_values( + page, field_values, auto_regenerate=False, + ) + except Exception: + pass + + # 4. Checkboxes + case_to_field = { + "devoir": "CaseDevoir", + "comportement": "CaseComportement", + "retard": "CaseRetard", + } + target_check = case_to_field.get(case) + for fname in case_to_field.values(): + try: + _set_checkbox(writer, fname, fname == target_check) + except Exception: + pass + + # 5. Force NeedAppearances pour que les viewers redessinent les valeurs + try: + root = writer._root_object + if "/AcroForm" in root: + root["/AcroForm"].update({ + pypdf.generic.NameObject("/NeedAppearances"): + pypdf.generic.BooleanObject(True) + }) + except Exception: + pass + + # 6. Écriture (formulaire préservé éditable) + buf = io.BytesIO() + writer.write(buf) + return buf.getvalue() + + +def _split_date_field(writer: pypdf.PdfWriter) -> None: + """Sépare le champ `Date` (avec 3 widgets enfants) en 3 champs indépendants. + + Renomme les widgets selon leur position Y (ordre du haut vers le bas) : + kid #0 (haut) → Date_devoir + kid #1 (milieu) → Date_comportement + kid #2 (bas) → Date_retard + """ + NameObject = pypdf.generic.NameObject + acroform_ref = writer._root_object.get("/AcroForm") + if not acroform_ref: + return + acroform = acroform_ref.get_object() if hasattr(acroform_ref, "get_object") else acroform_ref + fields = acroform.get("/Fields") or [] + date_field = None + date_ref = None + for f in fields: + if f.get_object().get("/T") == "Date": + date_field = f.get_object() + date_ref = f + break + if date_field is None: + return + kids = date_field.get("/Kids") or [] + if not kids: + return + + # Trier les enfants par Y descendant + indexed = [] + for kid in kids: + ko = kid.get_object() + rect = ko.get("/Rect") + y = float(rect[1]) if rect else 0.0 + indexed.append((y, kid, ko)) + indexed.sort(key=lambda t: -t[0]) + + # Promouvoir chaque enfant en champ indépendant + new_fields = [] + suffixes_by_order = ["Date_devoir", "Date_comportement", "Date_retard"] + for i, (_y, kid_ref, kid_obj) in enumerate(indexed): + # Renomme : donne un /T propre à l'ancien widget enfant + kid_obj[NameObject("/T")] = pypdf.generic.create_string_object( + suffixes_by_order[i] + ) + # Hériter du /FT, /DA, /Q du parent si manquant sur l'enfant + for prop in ("/FT", "/DA", "/Q"): + if prop not in kid_obj and prop in date_field: + kid_obj[NameObject(prop)] = date_field[prop] + # Détacher du parent + if "/Parent" in kid_obj: + del kid_obj[NameObject("/Parent")] + new_fields.append(kid_ref) + + # Retirer l'ancien champ Date de /Fields, ajouter les 3 nouveaux + new_field_list = [f for f in fields if f is not date_ref] + new_fields + acroform[NameObject("/Fields")] = pypdf.generic.ArrayObject(new_field_list) + + +def _find_field(writer: pypdf.PdfWriter, name: str): + acroform = writer._root_object.get("/AcroForm") + if not acroform: + return None + for f in acroform.get("/Fields") or []: + obj = f.get_object() + if obj.get("/T") == name: + return obj + return None + + +def _set_checkbox(writer: pypdf.PdfWriter, field_name: str, checked: bool) -> None: + """Coche/décoche une checkbox AcroForm, gère les widgets enfants sans /T.""" + NameObject = pypdf.generic.NameObject + field = _find_field(writer, field_name) + if field is None: + return + kids = field.get("/Kids") + widgets = [k.get_object() for k in kids] if kids else [field] + on_value = "/Yes" + for widget in widgets: + ap = widget.get("/AP") or field.get("/AP") + if ap is not None: + n_ap = ap.get("/N") if hasattr(ap, "get") else None + if n_ap is not None: + for k in n_ap.keys(): + ks = str(k) + if ks not in ("/Off", "Off"): + on_value = ks if ks.startswith("/") else f"/{ks}" + break + new_val = NameObject(on_value if checked else "/Off") + widget[NameObject("/AS")] = new_val + field[NameObject("/V")] = NameObject(on_value if checked else "/Off")