Admin Runique
Documentation / Admin Runique / Admin — variables Tera par page

Admin — variables Tera par page

Les variables que reçoit chaque page de l'admin, et donc tout bloc ou page qui la remplace (voir Surcharge). La source qui fait foi est runique/src/admin/router/context.rs : chaque page y a sa structure (ListContext, DetailContext…).

Communes à toutes les pages (sauf la connexion)

VariableContenu
site_titleTitre déclaré par .site_title(…)
langCode de la langue courante (fr, en…)
admin_prefixAdresse de base de l'admin (préfixe de montage + chemin), sans / final
stylesheetsFeuilles de style de la page, chacune { href, integrity } ; écrites par admin_base.html
resourcesModèles que l'utilisateur peut voir, dans l'ordre du menu : { key, title, list_url }
current_resourceClé du modèle de la page (chaîne), vide sur le tableau de bord
current_page"dashboard", "list", "detail", "create", "edit", "delete", "history", "rights", "transfer"
current_userCompte connecté : id, username, rang, groupes, droits
nav.dashboardTableau de bord
nav.historyHistorique, none si le compte n'en lit aucun
nav.logoutOù poste le formulaire de déconnexion (POST + CSRF)
nav.siteLien « retour au site »
nav.toggle_templateBascule du tableau de bord, voir plus bas
csrf_tokenToken CSRF de la requête
admin_base_*Traductions du layout

Et les variables de tout template Runique ({% messages %}, {% csp %}, {% static %}…), voir Templates.


Traductions

Chaque page reçoit les traductions de sa section, sous la forme admin.<section>.<clé> → {{ admin_<section>_<clé> }} (par exemple admin.list.btn_create → {{ admin_list_btn_create }}). La liste des clés est dans runique/src/utils/constante/admin_key.rs (ADMIN_MESSAGE_KEYS), les textes dans runique/src/utils/trad/<langue>.json.

PageSections
connexionlogin
tableau de bordbase, dashboard
listebase, list
détailbase, detail, list
créationbase, create
éditionbase, edit
suppressionbase, delete
historique, entrée de l'historiquebase, history
droitsbase, rights
transfert de groupebase, transfer

Connexion

VariableContenu
admin_prefixLe formulaire poste sur {{ admin_prefix }}/login
csrf_tokenÀ renvoyer dans le champ caché csrf_token
errorMessage d'échec (identifiants, CSRF, compte bloqué, session), absent sinon
site_title, site_url, lang, stylesheets—

Champs attendus par le POST : username, password, csrf_token.


Tableau de bord

VariableContenu
resource_countsNombre de lignes par modèle : resource_counts[resource.key] ; vide si le comptage a échoué
my_groupsGroupes du compte : { name, staff, rights: [{ table, rights }] }
admin_has_session_overridetrue quand la bascule a remis le tableau de bord de Runique

Quand le tableau de bord est remplacé (.with_dashboard), nav.toggle_template permet d'afficher celui de Runique et d'en revenir ; le choix est gardé en session.


Liste

Aussi rendue, sans layout, pour les requêtes HTMX (admin/list_partial.html).

VariableContenu
resource{ key, title, display: { list_filter: [(colonne, libellé)] } }
resource_links{ list, create, bulk, rights } ; create, bulk, rights à none sans le droit
entriesLignes de la page : { id, values, links: { detail, edit, delete }, taken_by, account }
visible_columnsColonnes affichées, dans l'ordre (sans la clé)
sortable_columnsColonnes triables (déclarées .sortable())
column_labelsEn-tête de chaque colonne, par nom
rich_fieldsColonnes contenant du HTML, affichées en texte brut
group_actionsActions groupées proposées : { index, label }
bulk_deleteLa barre d'actions groupées propose la suppression
return_qsRequête courante (recherche, tri, filtres, page), pour revenir au même endroit
filter_valuesValeurs de chaque filtre, par colonne : value, active, qs (lien qui l'active ou la retire)
filter_clearLien retirant tout un filtre, pour les colonnes filtrées
active_filtersFiltres appliqués, colonne → valeurs
filter_qsFiltres appliqués en query string (&filter_col=valeur…)
searchRecherche en cours
sort_by, sort_dir, sort_dir_toggleTri en cours (asc / desc) et sens inverse
totalLignes correspondantes, toutes pages
page, page_count, page_sizePage en cours, nombre de pages, lignes par page
list_pagerFlèches et sélecteur de la liste : page, page_count, prev_qs, next_qs (None sans page dans ce sens), size, size_options, size_param, keep
filter_pagersFlèches de chaque groupe de filtre, par colonne (même forme, page_count à None)
filter_size_pagerSélecteur du panneau de filtres (même forme), None sans filtre
size_qs, filter_nav_qsTaille de la liste, et pages et taille du panneau, en query string à garder sur un lien
filter_navPages et taille du panneau, en paires pour les champs cachés d'un formulaire

entry.values[colonne] donne la valeur d'une colonne affichée.


Détail

VariableContenu
resource, resource_keyLe modèle (resource_key = resource.key)
object_idClé de la ligne
entryLa ligne : une entrée par colonne lisible
detail_columnsColonnes lisibles de la ligne, dans l'ordre d'affichage
rich_fieldsColonnes HTML, affichées assainies
list_urlRetour à la liste
links{ detail, edit, delete }
reset_password_urlSur un compte, avec le droit de le modifier
rank_choices, current_rank, rank_urlSur un compte dont on peut changer le rang : rangs proposés (valeur, libellé), rang actuel, où poster
rights_urlGrille de droits d'un admin, si on peut la régler
memberships, memberships_urlSur un compte : groupes gérés (nom du champ, nom du groupe, coché), où poster
transfer_receivers, transfer_urlSur un groupe, pour un dirigeant : comptes à qui le confier (id, nom), page de transfert
taken_byGroupe repris après un départ : par qui
accountSur un compte : { rank, rank_label, groups }, en lecture seule

Création et édition

VariableContenu
resource, resource_keyLe modèle
object_idClé de la ligne (édition seulement)
list_urlRetour à la liste
form_fieldsLe formulaire : html (champs, CSRF et nom du formulaire inclus), errors, form_errors, fields
form_actionOù poste le formulaire
cancel_url« Annuler » : la ligne en édition, la liste en création
cancel_label, submit_labelTextes des boutons
no_fields_labelAffiché quand le formulaire n'a aucun champ

Écrivez {{ form_fields.html }} : au chargement, Runique le réécrit en {{ form_fields.html | safe }} (le HTML du formulaire est produit par Runique, ses valeurs déjà échappées). Les blocs form_fields et form_actions sont inclus dans la balise <form>.


Suppression

VariableContenu
resource, resource_keyLe modèle
object_idClé de la ligne
list_urlRetour à la liste
form_actionOù poste la confirmation
form_fieldsFormulaire de confirmation, sans champ : html (token CSRF et nom), errors, form_errors
cancel_urlRetour à la ligne

Historique

VariableContenu
history_urlHistorique complet : où postent les filtres, et leur remise à zéro
entriesEntrées, les plus récentes d'abord (voir ci-dessous)
history_resourcesModèles dont le compte lit l'historique : { key, title }
filter_resource, filter_object, filter_action, filter_userFiltres en cours
page, total_pagesPagination

Une entrée : { id, created_at, username, resource_key, resource_title, object_pk, object_label, action, has_changes, links: { user, object, entry } }. action vaut create, update ou delete ; created_at est en UTC (AAAA-MM-JJ HH:MM:SS) ; links.entry est none sans changement lisible.

Entrée de l'historique

VariableContenu
history_urlRetour à l'historique
entryL'entrée (même forme que ci-dessus)
changesColonnes changées et lisibles : { column, old, new }

Droits et transfert

Ces deux pages ne se remplacent pas ; seul le bloc rights_table de la page des droits se remplace. Leur contexte (RightsContext, TransferContext) est décrit dans context.rs.


Sous-sections

SectionDescription
Surchargeremplacer un bloc (HTML, CSS ou les deux) ou une page entière

Revenir au sommaire

SectionDescription
Sommaire templateSommaire templates
SommaireSommaire admin