Aller au contenu

Administration Django

Ce document présente la configuration de l’interface d’administration Django pour le projet Thermonova, couvrant la gestion des modèles liés à la clé API, permissions et autres entités métier.


Fonction utilitaire

get_table_choices()

Cette fonction génère dynamiquement la liste des noms de tables (modèles) disponibles dans l’application api, en excluant les modèles de gestion des permissions et clés API.

Elle sert à fournir un choix dans le formulaire d’administration de la table TablePermission.


Classe TablePermissionAdmin

  • Personnalise l’affichage des permissions par table.
  • Colonnes visibles : nom de la table et droits actifs (GET, POST, PUT, PATCH, DELETE).
  • Filtres disponibles sur le nom de la table et chaque droit.
  • Recherche possible sur le nom de la table.
  • Le champ table_name utilise un menu déroulant basé sur les tables dynamiques.
  • Méthode display_rights affiche les droits sous forme compacte lisible.

Classe ApiKeyAdmin

  • Affiche les clés API avec utilisateur associé, dates, état actif et résumé des permissions.
  • Recherche par clé et nom utilisateur.
  • Filtres sur la validité et les dates.
  • Edition simplifiée avec génération automatique de clé si manquante.
  • Permissions gérées via un widget à sélection multiple horizontale.
  • Champs key et created en lecture seule.
  • Résumé clair des permissions associées.

Enregistrements des autres modèles pour administration simple

Modèles enregistrés sans personnalisations supplémentaires :

  • Item
  • Energy
  • Heater
  • Supplier
  • Department
  • Departmental_cost

Personnalisation globale du panneau admin

  • Nom affiché dans l’en-tête : Thermonova API Administration
  • Titre de la page d’administration : Thermonova Admin
  • Titre de la page d’accueil du panneau : Admin Dashboard

Cette configuration améliore la gestion et la visibilité des données dans l’interface admin et facilite les tâches d’administration métier et sécurité de l’API.