{#- Base des pages d'une offre (Offre, Lettre, CV adapté, Envoi, Historique). Contexte : `contexte.contexte_offre(req)` passé tel quel (`**contexte_offre(req)`) ; ce gabarit ne lit que ses clés (rendu en `StrictUndefined`) : `id`, `offre` (son `titre`), `score`, `metadonnees`, `motifs`, `onglet_liste`, `onglets`, `entete`, `en_cours`. Une page fille déclare son onglet en tête de fichier : {% extends "offre_base.html" %} {% set onglet_actif = "lettre" %} puis remplit `{% block onglet %}` (et `{% block classe_page %} large{% endblock %}` pour une page à deux colonnes). L'en-tête, ses actions et les onglets sont ici : aucune page fille ne les refait. -#} {% extends "base.html" %} {% from "_composants.html" import actions_fiche, pastilles_motifs, onglets_page, vie_privee %} {% set nav_actif = "offres" %} {% block titre %}{{ offre.titre }} - job2apply{% endblock %} {% block contenu %} {% set courant = onglet_actif | default("offre") %}

← Offres · {{ onglet_liste.libelle }}

{% if score is none %}–{% else %}{{ score }}{% endif %} points

{{ offre.titre }}

{% if metadonnees %}

{{ metadonnees | join(" · ") }}

{% endif %} {{ pastilles_motifs(motifs) }}
{{ actions_fiche(id, entete, en_cours, offre.titre) }}
{% if entete.principale and entete.principale.cle in ("preparer", "completer") %} {{ vie_privee("fiche") }} {% endif %} {{ onglets_page(onglets, courant) }}
{% block onglet %}{% endblock %}
{% endblock %}