commentaire
[semainetech_django.git] / project / support / admin.py
CommitLineData
f9263424
OL
1# -*- encoding: utf-8 -*-
2
3from django.contrib import admin
4from django.conf import settings
5from models import FAQ
6
f957568b
OL
7#TODO : écrire une admin pour le modèle de 'Ressources'.
8
f9263424
OL
9class FAQAdmin(admin.ModelAdmin):
10 """
11 Cette classe permet de spécifier comment fonctionne les interfaces d'administrations du modèle FAQ :
12 * liste
13 * édition
14
15 Celà se fait, en spécifiant certaines propriétés de la classe, ou encore en surchargeant des méthodes
16 particulières.
17
18 Les interfaces d'administrations, font parties intégrantes du framework Django,
19 et les options disponibles sont présentées ici :
20 https://docs.djangoproject.com/en/1.2/ref/contrib/admin
21 """
22
23 # Cette option définie les champs qui seront présentées dans la vue en liste.
24 # Si on se référence au modèle FAQ, _todo n'est pas un champs du modèle, mais
25 # il fait référence à une méthode définie ci-dessous.
26 list_display = ("question", "_todo", "public", )
27
28 def _todo(self, obj):
29 """
30 Cette méthode est exploitée par la liste list_display. Elle prends en paramètre 'obj',
31 qui est un objet FAQ.
32 (Cette méthode est appelée pour représentrer la valeur de la colonne '_todo' pour chaque ligne.)
33 """
34 if obj.reponse != "":
35 return """<img alt="True" src="%simg/admin/icon-yes.gif">""" % settings.ADMIN_MEDIA_PREFIX
36 else:
37 return """<img alt="False" src="%simg/admin/icon-no.gif">""" % settings.ADMIN_MEDIA_PREFIX
38 # Cette option permet de renommer la colonne
39 _todo.short_description = u"Traité"
40 # Cette option autorise l'utilisation du HTML dans le résultat de la méthode
41 _todo.allow_tags = True
42
43
f957568b 44# Il ne faut pas oublier d'enregistrer le modèle avec son admin!!!
f9263424 45admin.site.register(FAQ, FAQAdmin)