| 1 |
=================================================== |
|---|
| 2 |
Personnaliser l'interface d'administration de Dango |
|---|
| 3 |
=================================================== |
|---|
| 4 |
|
|---|
| 5 |
L'interface d'administration automatique de Django vous offre un espace |
|---|
| 6 |
d'administration complÚtement fonctionnel sans effort ni code supplémentaire |
|---|
| 7 |
de votre part. L'administration dynamique a été conçue pour être parée à |
|---|
| 8 |
la mise en production, pas seulement comme un point de départ, ce qui vous |
|---|
| 9 |
permet de l'utiliser telle quelle sur un site en condition réelle. Etant donné |
|---|
| 10 |
que les pages d'administration sont fondées et construites autour de Django, |
|---|
| 11 |
vous pouvez en personnaliser l'apparence en modifiant les feuilles de style |
|---|
| 12 |
et les images de la partie administration. |
|---|
| 13 |
|
|---|
| 14 |
Voici une vue d'ensemble rapide et non exhaustive de quelques classes et |
|---|
| 15 |
styles principaux exploités dans les CSS de l'administration de Django. |
|---|
| 16 |
|
|---|
| 17 |
Modules |
|---|
| 18 |
======= |
|---|
| 19 |
|
|---|
| 20 |
La classe ``.module`` est une brique de base regroupant du contenu dans |
|---|
| 21 |
l'interface d'administration. Elle est généralement appliquée sur un ``div`` |
|---|
| 22 |
ou un ``fieldset``. Elle encapsule le groupe de contenu dans une boîte et |
|---|
| 23 |
applique certain styles aux éléments qu'elle contient. Un ``h2`` à l'intérieur |
|---|
| 24 |
d'un ``div.module`` s'alignera en partie supérieure du ``div`` en tant qu'en-tête |
|---|
| 25 |
pour tout le groupe. |
|---|
| 26 |
|
|---|
| 27 |
.. image:: http://media.djangoproject.com/img/doc/admincss/module.gif |
|---|
| 28 |
:alt: Exemple d'utilisation d'une classe de module sur la page d'accueil |
|---|
| 29 |
de l'administration |
|---|
| 30 |
|
|---|
| 31 |
Types de colonnes |
|---|
| 32 |
================= |
|---|
| 33 |
|
|---|
| 34 |
.. admonition:: Note |
|---|
| 35 |
|
|---|
| 36 |
Toutes les pages d'aministration (sauf le tableau de bord) sont en largeur |
|---|
| 37 |
fluide. Toutes les classes en largeurs fixes provenant des version précédentes |
|---|
| 38 |
de Django ont été supprimées. |
|---|
| 39 |
|
|---|
| 40 |
Le template de base pour chaque page d'administration contient un bloc définissant |
|---|
| 41 |
la structure en colonne de la page. Il définit une classe pour la partie contenu |
|---|
| 42 |
de la page (``div#content``) ce qui permet à chaque élément de la page de |
|---|
| 43 |
connaître sa largeur relative. Il y a trois types de colonnes disponibles. |
|---|
| 44 |
|
|---|
| 45 |
colM |
|---|
| 46 |
C'est la disposition en colonne utilisée par défaut sur les pages. Le "M" |
|---|
| 47 |
signifie "principal" (main). Présuppose que tout le contenu de la page |
|---|
| 48 |
est regroupé dans une colonne principale (``div#content-main``). |
|---|
| 49 |
colMS |
|---|
| 50 |
Celle-ci est pour les pages avec une colonne principale et une barre latérale |
|---|
| 51 |
à droite. Le "S" signifie "barre latérale" (sidebar). Présuppose que le contenu |
|---|
| 52 |
principal est dans ``div#content-main`` et celui de la barre latérale dans |
|---|
| 53 |
``div#content-related``. Utilisé sur la page principale de l'administration. |
|---|
| 54 |
colSM |
|---|
| 55 |
Pareil que ci-dessus, mais avec la barre latérale à gauche. L'ordre des |
|---|
| 56 |
colonnes dans le code source n'a pas d'importance. |
|---|
| 57 |
|
|---|
| 58 |
Par exemple, vous pouvez utiliser ceci dans un template pour avoir une page sur |
|---|
| 59 |
deux colonnes avec une barre latérale à droite:: |
|---|
| 60 |
|
|---|
| 61 |
{% block coltype %}colMS{% endblock %} |
|---|
| 62 |
|
|---|
| 63 |
Styles du Texte |
|---|
| 64 |
=============== |
|---|
| 65 |
|
|---|
| 66 |
Taille des polices de caractÚres |
|---|
| 67 |
-------------------------------- |
|---|
| 68 |
|
|---|
| 69 |
La plupart des éléments HTML (en-tête, listes, etc.) possÚdent une taille de police |
|---|
| 70 |
de caractÚres de base adaptée au contexte dans la feuille de style. Il y a |
|---|
| 71 |
trois classes disponibles pour forcer le texte à une certaine taille dans chaque |
|---|
| 72 |
contexte. |
|---|
| 73 |
|
|---|
| 74 |
small |
|---|
| 75 |
11px |
|---|
| 76 |
tiny |
|---|
| 77 |
10px |
|---|
| 78 |
mini |
|---|
| 79 |
9px (à utiliser avec modération) |
|---|
| 80 |
|
|---|
| 81 |
Styles et alignement des polices de caractÚres |
|---|
| 82 |
---------------------------------------------- |
|---|
| 83 |
|
|---|
| 84 |
Il y a aussi quelques styles pour personnaliser le texte. |
|---|
| 85 |
|
|---|
| 86 |
.quiet |
|---|
| 87 |
Définit la couleur de la police de caractÚres au gris clair. Utile pour les |
|---|
| 88 |
notes latérales dans les directives. Associez-la avec ``.small`` ou ``.tiny`` |
|---|
| 89 |
pour donner de l'effet. |
|---|
| 90 |
.help |
|---|
| 91 |
C'est une classe sur mesure pour les blocs de texte en ligne détaillant |
|---|
| 92 |
le rÎle des éléments de formulaire. Elle rend le texte plus petit et gris, |
|---|
| 93 |
et quand elle est appliquée sur les éléments ``p`` contenant des éléments |
|---|
| 94 |
``.form-row`` (voir Styles de formulaires ci-dessous), elle décalera le texte |
|---|
| 95 |
pour l'aligner avec le champ de formulaire. Utilisez-la pour du texte d'aide, |
|---|
| 96 |
à la place de ``small quiet``. Elle fonctionne sur d'autres éléments, mais |
|---|
| 97 |
essayez dans la mesure du possible d'utiliser cette classe sur un ``p``. |
|---|
| 98 |
.align-left |
|---|
| 99 |
Aligne le texte à gauche. Fonctionne seulement sur les éléments de type bloc |
|---|
| 100 |
contenant des éléments en ligne. |
|---|
| 101 |
.align-right |
|---|
| 102 |
Etes vous attentif ? |
|---|
| 103 |
.nowrap |
|---|
| 104 |
Préserve le texte et les objets en ligne du retour automatique à la ligne. |
|---|
| 105 |
Pratique pour les en-têtes de tableau que vous désirez garder sur une seule ligne. |
|---|
| 106 |
|
|---|
| 107 |
Flottants et abandon des flottants |
|---|
| 108 |
---------------------------------- |
|---|
| 109 |
|
|---|
| 110 |
float-left |
|---|
| 111 |
flottant à gauche |
|---|
| 112 |
float-right |
|---|
| 113 |
flottant à droite |
|---|
| 114 |
clear |
|---|
| 115 |
abandon de tous les flottants |
|---|
| 116 |
|
|---|
| 117 |
Utilitaires |
|---|
| 118 |
=========== |
|---|
| 119 |
|
|---|
| 120 |
Certaines actions s'appliquant directement à un objet sont utilisées dans les |
|---|
| 121 |
formulaires et les pages de sélection pour modification. Celles-ci apparaissent |
|---|
| 122 |
dans une colonne "barre d'outils" au dessus du formulaire ou de la sélection |
|---|
| 123 |
à modifier, à droite de la page. Les outils sont encapsulés dans un ``ul`` |
|---|
| 124 |
avec la classe ``object-tools``. Il y a deux types particuliers d'outils pouvant |
|---|
| 125 |
être définis avec une classe additionnelle sur le ``a`` de l'outil. Ce sont |
|---|
| 126 |
les ``.addlink`` et les ``.viewsitelink``. |
|---|
| 127 |
|
|---|
| 128 |
Exemple pour une page de sélection pour modification:: |
|---|
| 129 |
|
|---|
| 130 |
<ul class="object-tools"> |
|---|
| 131 |
<li><a href="/stories/add/" class="addlink">Add redirect</a></li> |
|---|
| 132 |
</ul> |
|---|
| 133 |
|
|---|
| 134 |
.. image:: http://media.djangoproject.com/img/doc/admincss/objecttools_01.gif |
|---|
| 135 |
:alt: Utilitaires sur une page de sélection modifiables |
|---|
| 136 |
|
|---|
| 137 |
et sur une page de formulaire:: |
|---|
| 138 |
|
|---|
| 139 |
<ul class="object-tools"> |
|---|
| 140 |
<li><a href="/history/303/152383/">History</a></li> |
|---|
| 141 |
<li><a href="/r/303/152383/" class="viewsitelink">View on site</a></li> |
|---|
| 142 |
</ul> |
|---|
| 143 |
|
|---|
| 144 |
.. image:: http://media.djangoproject.com/img/doc/admincss/objecttools_02.gif |
|---|
| 145 |
:alt: Utilitaires sur un formulaire |
|---|
| 146 |
|
|---|
| 147 |
Styles de formulaire |
|---|
| 148 |
==================== |
|---|
| 149 |
|
|---|
| 150 |
Fieldsets |
|---|
| 151 |
--------- |
|---|
| 152 |
|
|---|
| 153 |
Les formulaires d'administration sont découpés en groupes d'éléments appelés |
|---|
| 154 |
``fieldset``. Chaque ``fieldset`` doit avoir une classe``.module``. |
|---|
| 155 |
Chaque ``fieldset`` doit contenir un en-tête ``h2`` en position supérieure (exception |
|---|
| 156 |
faite pour le premier d'entre eux, et dans certains cas où le |
|---|
| 157 |
groupe ne possÚde pas d'étiquette logique). |
|---|
| 158 |
|
|---|
| 159 |
Chaque groupe peut aussi avoir des classes supplémentaires en plus de la classe |
|---|
| 160 |
``.module`` pour appliquer un formatage approprié au groupe de champs. |
|---|
| 161 |
|
|---|
| 162 |
.aligned |
|---|
| 163 |
Permet d'aligner les étiquettes et les champs de saisie cÎte à cÎte et |
|---|
| 164 |
sur la même ligne. |
|---|
| 165 |
.wide |
|---|
| 166 |
Utilisé en combinaison avec ``.aligned`` pour élargir l'espace disponibe |
|---|
| 167 |
pour les étiquettes. |
|---|
| 168 |
|
|---|
| 169 |
Lignes de formulaire |
|---|
| 170 |
-------------------- |
|---|
| 171 |
|
|---|
| 172 |
Chaque ligne du formulaire (dans un ``fieldset``) doit être incluse dans un |
|---|
| 173 |
``div`` avec la classe ``form-row``. Si le champ de la ligne est requis, une |
|---|
| 174 |
classe ``required`` doit aussi être ajouté à ``div.form-row``. |
|---|
| 175 |
|
|---|
| 176 |
.. image:: http://media.djangoproject.com/img/doc/admincss/formrow.gif |
|---|
| 177 |
:alt: Exemple d'utilisation d'une classe de ligne de formulaire |
|---|
| 178 |
|
|---|
| 179 |
Etiquettes |
|---|
| 180 |
---------- |
|---|
| 181 |
|
|---|
| 182 |
Les étiquettes de formulaires doivent toujours précéder le champ de formulaire, |
|---|
| 183 |
excepté dans le cas des cases à cocher et des boutons radio, pour lesquels |
|---|
| 184 |
le ``input`` doit venir en premier. Toute explication ou texte d'aide doit |
|---|
| 185 |
suivre le ``label`` dans un ``p`` avec la classe ``.help``. |
|---|