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