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')),
]
),
]
import auf.django.references.models as ref
+class RegionProxy(ref.Region):
+ """ Proxy utilisé pour les organigrammes par région """
+ class Meta:
+ proxy = True
+ verbose_name = u"Organigramme par région"
+ verbose_name_plural = u"Organigramme par région"
+
+
class ImplantationProxy(ref.Implantation):
""" Proxy utilisé pour les organigrammes par implantation """
class Meta:
_organigramme.allow_tags = True
_organigramme.short_description = "Organigramme"
+class RegionProxyAdmin(admin.ModelAdmin):
+ list_display = ('nom', '_organigramme')
+ list_display_links = ('nom',)
+
+ def has_add_permission(self, obj):
+ return False
+
+ def _organigramme(self, obj):
+ return """<a href="%s">Organigramme</a>""" % (reverse('rho_region', args=(obj.id,)))
+ _organigramme.allow_tags = True
+ _organigramme.short_description = "Organigramme"
+
+
admin.site.register(rh.Classement, ClassementAdmin)
admin.site.register(rh.TypeRevalorisation, TypeRevalorisationAdmin)
admin.site.register(rh.ValeurPoint, ValeurPointAdmin)
admin.site.register(ImplantationProxy, ImplantationProxyAdmin)
+admin.site.register(RegionProxy, RegionProxyAdmin)
url(r'^admin/rh/organigrammes/employe/(\d+)$', 'organigrammes_employe', name='rho_employe'),
url(r'^admin/rh/organigrammes/service/(\d+)$', 'organigrammes_service', name='rho_service'),
url(r'^admin/rh/organigrammes/implantation/(\d+)$', 'organigrammes_implantation', name='rho_implantation'),
+ url(r'^admin/rh/organigrammes/bureau/(\d+)$', 'organigrammes_region', name='rho_region'),
)
return render_to_response('rh/organigrammes/vide.html', c, RequestContext(request), mimetype="image/svg+xml")
+@login_required
+@drh_or_admin_required
+def organigrammes_region(request, id):
+
+ region = get_object_or_404(ref.Region, pk=id)
+ svg = rh_graph.organigramme_postes_cluster( \
+ cluster_filter={"implantation__region": region}, \
+ titre=u"Organigramme du bureau de %s" % region.nom,
+ cluster_titre=region.nom)
+
+ c = {
+ 'svg': svg
+ }
+
+ return render_to_response('rh/organigrammes/vide.html', c, RequestContext(request), mimetype="image/svg+xml")
+