from admin_tools.menu import items, Menu
+from project.decorators import in_drh_or_admin
+from project import groups
+
+
class CustomMenu(Menu):
"""
Custom Menu for project admin site.
"""
+
def __init__(self, **kwargs):
Menu.__init__(self, **kwargs)
self.children += [
items.MenuItem(_('Dashboard'), reverse('admin:index')),
- items.Bookmarks(),
- items.AppList(
- _('Applications'),
- exclude=('django.contrib.*',)
- ),
- items.MenuItem('Rapports',
- children=[
- items.MenuItem('Rapport des postes', reverse('rhr_postes')),
- items.MenuItem('Rapport des contrats', reverse('rhr_contrats')),
- items.MenuItem('Rapport de rémunération', reverse('rhr_remuneration')),
- ]
- ),
+ #items.Bookmarks(),
+ #items.AppList(
+ # _('Applications'),
+ # exclude=('django.contrib.*', 'project.rh.models.EmployeProxy')
+ #),
items.AppList(
_('Administration'),
- models=('django.contrib.*',)
- )
- ]
+ models=('django.contrib.*',))]
def init_with_context(self, context):
"""
Use this method if you need to access the request context.
"""
- return super(CustomMenu, self).init_with_context(context)
+ request = context['request']
+
+ if request.user.is_superuser:
+ self.children += [
+ items.MenuItem('DAE', reverse('admin:app_list',
+ kwargs={'app_label': 'dae'})),
+ ]
+
+ user_groups = [g.name for g in request.user.groups.all()]
+ if in_drh_or_admin(request.user) or\
+ groups.CORRESPONDANT_RH in user_groups or\
+ groups.ADMINISTRATEURS in user_groups or\
+ groups.DIRECTEUR_DE_BUREAU in user_groups:
+ rapports = [
+ items.MenuItem('Rapport des contrats',
+ reverse('rhr_contrats')),
+ items.MenuItem(u'Rapport des employés sans contrat',
+ reverse('rhr_employe_sans_contrat')),
+ items.MenuItem('Rapport de masse salariale',
+ reverse('rhr_masse_salariale')),
+ ]
+ if in_drh_or_admin(request.user):
+ rapports.append(
+ items.MenuItem('Rapport des modifications',
+ reverse('rhr_historique_des_modifications')),
+ )
+ self.children += [
+ items.MenuItem('Rapports',
+ children=rapports),
+
+ items.MenuItem('Organigrammes',
+ children=[
+ items.MenuItem('Organigramme par employé',
+ reverse('admin:rh_employeproxy_changelist')),
+ items.MenuItem('Organigramme par service',
+ reverse('admin:rh_serviceproxy_changelist')),
+ items.MenuItem('Organigramme par implantation',
+ reverse('admin:rh_implantationproxy_changelist')),
+ items.MenuItem('Organigramme par bureau',
+ reverse('admin:rh_regionproxy_changelist')),
+ ]),
+ items.MenuItem('Requêtes',
+ children=[
+ items.MenuItem('Requêtes sauvegardées',
+ reverse('admin:django_qbe_savedquery_changelist')),
+ items.MenuItem('Constructeur de requêtes',
+ reverse('qbe_form')),
+ ]),
+ ]
+ super(CustomMenu, self).init_with_context(context)