ajout de marquage traité pour les rapports de modif
[auf_rh_dae.git] / project / dashboard.py
1 # -*- encoding: utf-8 -*
2
3 """
4 This file was generated with the customdashboard management command, it
5 contains the two classes for the main dashboard and app index dashboard.
6 You can customize these classes as you want.
7
8 To activate your index dashboard add the following to your settings.py::
9 ADMIN_TOOLS_INDEX_DASHBOARD = 'SIGMA.dashboard.CustomIndexDashboard'
10
11 And to activate the app index dashboard::
12 ADMIN_TOOLS_APP_INDEX_DASHBOARD = 'SIGMA.dashboard.CustomAppIndexDashboard'
13 """
14
15 from admin_tools.dashboard import modules, Dashboard, AppIndexDashboard
16 from django.utils.translation import ugettext_lazy as _
17 from project.decorators import in_drh_or_admin
18 from project.rh.historique import get_active_revisions
19
20 class CustomIndexDashboard(Dashboard):
21 """
22 Custom index dashboard for SIGMA.
23 """
24 def init_with_context(self, context):
25 request = context['request']
26
27 # append an app list module for "Applications"
28 self.children.append(modules.AppList(
29 _('Applications'),
30 models=(
31 'project.dae.models.*',
32 'project.recrutement.models.*',
33 'project.rh.models.AyantDroit',
34 'project.rh.models.Dossier',
35 'project.rh.models.DossierInactif',
36 'project.rh.models.Employe',
37 'project.rh.models.EmployeInactif',
38 'project.rh.models.Poste',
39 ),
40 ))
41
42 if in_drh_or_admin(request.user):
43 revisions = get_active_revisions()[:10]
44 children = []
45 for rev in revisions:
46 date = rev['short_date_created']
47 user = u"<span style='font-weight: bold;'>%s</span>" % rev['user']
48 type = u"<span style='font-decoration: underligne;'>%s</span>" % rev['type']
49 titre = u"""<span style='color:black;'>[%s] %s a modifié
50 un(e) %s :</span> %s""" % (date, user, type, rev['objet'], )
51 children.append({
52 'title': titre,
53 'url': rev['history_url'],
54 'external': False,
55 })
56 self.children.append(modules.LinkList(
57 title='10 dernières modifications',
58 children=children,)
59 )
60
61
62
63 # append an app list module for "Configuration"
64 self.children.append(modules.AppList(
65 _('Configuration'),
66 models=(
67 'project.rh.models.Classement',
68 'project.rh.models.Devise',
69 'project.rh.models.CategorieEmploi',
70 'project.rh.models.FamilleProfessionnelle',
71 'project.rh.models.OrganismeBstg',
72 'project.rh.models.Responsable',
73 'project.rh.models.Service',
74 'project.rh.models.Statut',
75 'project.rh.models.TauxChange',
76 'project.rh.models.TypeContrat',
77 'project.rh.models.TypePoste',
78 'project.rh.models.TypeRevalorisation',
79 'project.rh.models.TypeRemuneration',
80 'project.rh.models.ValeurPoint',
81 ),
82 exclude=('django.contrib.*',),
83 ))
84
85 # append an app list module for "Inter-systèmes"
86 self.children.append(modules.AppList(
87 _(u'Inter-systèmes'),
88 models=(
89 'project.rh.models.ResponsableImplantationProxy',
90 ),
91 ))
92
93 # append an app list module for "Administration"
94 self.children.append(modules.AppList(
95 _('Administration'),
96 models=(
97 'django.contrib.*',
98 ),
99 ))
100
101 class CustomAppIndexDashboard(AppIndexDashboard):
102 """
103 Custom app index dashboard for project.
104 """
105
106 # we disable title because its redundant with the model list module
107 title = ''
108
109 def __init__(self, *args, **kwargs):
110 AppIndexDashboard.__init__(self, *args, **kwargs)
111
112 def init_with_context(self, context):
113 """
114 Use this method if you need to access the request context.
115 """
116 if self.app_title != 'Rh':
117 # append a model list module and a recent actions module
118 self.children += [
119 modules.ModelList(self.app_title, self.models),
120 ]
121
122 return
123
124 # append an app list module for "Application"
125 self.children.append(modules.AppList(
126 _('Application'),
127 models=(
128 'project.rh.models.AyantDroit',
129 'project.rh.models.Dossier',
130 'project.rh.models.DossierInactif',
131 'project.rh.models.Employe',
132 'project.rh.models.EmployeInactif',
133 'project.rh.models.Poste',
134 ),
135 ))
136
137 # append an app list module for "Configuration"
138 self.children.append(modules.AppList(
139 _('Configuration'),
140 models=(
141 'project.rh.models.Classement',
142 'project.rh.models.Devise',
143 'project.rh.models.CategorieEmploi',
144 'project.rh.models.FamilleProfessionnelle',
145 'project.rh.models.OrganismeBstg',
146 'project.rh.models.Responsable',
147 'project.rh.models.Service',
148 'project.rh.models.Statut',
149 'project.rh.models.TauxChange',
150 'project.rh.models.TypeContrat',
151 'project.rh.models.TypePoste',
152 'project.rh.models.TypeRevalorisation',
153 'project.rh.models.TypeRemuneration',
154 'project.rh.models.ValeurPoint',
155 ),
156 ))
157
158 # append an app list module for "Inter-systèmes"
159 self.children.append(modules.AppList(
160 _(u'Inter-systèmes'),
161 models=(
162 'project.rh.models.ResponsableImplantation',
163 ),
164 ))