cleanup
[auf_rh_dae.git] / project / rh / views.py
index f5222ce..dfb39e3 100644 (file)
@@ -1,21 +1,19 @@
 # -*- encoding: utf-8 -*-
-from sendfile import sendfile
+
+import unicodedata
 from datetime import date
 from itertools import izip
-from base64 import b64encode
 import networkx as nx
 
 from django.db.models import Q
 from django.contrib.auth.decorators import login_required
 from django.utils.encoding import smart_str
-from django.shortcuts import redirect, render_to_response, get_object_or_404
+from django.shortcuts import render_to_response, get_object_or_404
 from django.template import RequestContext
-from django.http import Http404
 from django.core.urlresolvers import reverse
 from django.http import HttpResponse
 
 from datamaster_modeles import models as ref
-from project.lib import get_employe_from_id
 
 from rh import models as rh
 from rh.lib import calc_remun
@@ -29,20 +27,20 @@ from dae.decorators import redirect_interdiction
 from dae.workflow import grp_drh, grp_correspondants_rh
 from django.conf import settings
 
-# homes
+
 @login_required
 def profil(request):
     """Profil personnel de l'employé - éditable"""
     rc = RequestContext(request)
     c = {}
-    
+
     employe = rc['this_employe']
-        
+
     c['user'] = request.user
     c['employe'] = employe
     return render_to_response('rh/profil.html', c, rc)
-    
-# employes
+
+
 @login_required
 def employes_liste(request):
     """Liste des employés."""
@@ -52,11 +50,14 @@ def employes_liste(request):
                     .exclude(dossiers__date_fin__lt=today) \
                     .order_by('nom')
     c = {
-        'user':request.user,
-        'employes':employes,
+        'user': request.user,
+        'employes': employes,
         }
-    return render_to_response('rh/employes_liste.html', c, RequestContext(request))
-    
+    return render_to_response('rh/employes_liste.html',
+            c,
+            RequestContext(request))
+
+
 @login_required
 def employe(request, id):
     """Information publique sur un employé."""
@@ -65,8 +66,8 @@ def employe(request, id):
     except:
         employe = rh.Employe.objects.none()
     c = {
-        'user':request.user,
-        'employe':employe,
+        'user': request.user,
+        'employe': employe,
         }
     return render_to_response('rh/employe.html', c, RequestContext(request))
 
@@ -89,21 +90,23 @@ def rapports_postes_hierarchie(request):
 
     c['postes'] = nx.to_dict_of_lists(graph)
 
-    return render_to_response('rh/rapports/postes_hierarchie.html', c, RequestContext(request))
+    return render_to_response('rh/rapports/postes_hierarchie.html',
+            c,
+            RequestContext(request))
+
 
 @login_required
 @drh_or_admin_required
 def hierarchie_poste(request):
     pass
 
+
 @login_required
 @drh_or_admin_required
 def rapports_poste(request):
 
     lookup_params = dict(request.GET.items())
 
-    comble = 'all'
-
     for key, value in lookup_params.items():
         if key == 'o' or key == 'ot':
             del lookup_params[key]
@@ -115,7 +118,6 @@ def rapports_poste(request):
             lookup_params[smart_str(key)] = value
 
         if key == 'comble':
-            comble = value
             del lookup_params[key]
 
     postes = rh.Poste.objects.select_related('implantation') \
@@ -176,7 +178,7 @@ def rapports_contrat(request):
             lookup_params[smart_str(key)] = value
 
     contrats = rh.Contrat.objects.select_related('dossier', 'dossier__poste', 'dossier__poste__implantation', 'type_contrat', 'dossier__employe')
-    
+
     cl = RechercheTemporelle(request, rh.Contrat)
     lookup_params = cl.purge_params(lookup_params)
     contrats = contrats.filter(**lookup_params).exclude(dossier__employe__supprime=1)
@@ -311,7 +313,7 @@ def rapports_employe_sans_contrat(request):
         employes_query = employes_query.order_by("%s%s" % ('-' if 'ot' in request.GET and request.GET['ot'] == "desc" else '', request.GET['o']))
 
     employes = {}
-   
+
     dossiers_en_cours = rh.Dossier.objects.filter(Q(date_fin=None) | Q(date_fin__gt=date.today()))
     tous_contrats_echus = rh.Contrat.objects.filter(date_fin__lt=date.today(), dossier__in=dossiers_en_cours)
     contrats = tous_contrats_echus.filter(**lookup_params).all()
@@ -319,7 +321,7 @@ def rapports_employe_sans_contrat(request):
         if c.dossier.employe.id not in employes.keys():
             employes[c.dossier.employe.id] = {'employe': c.dossier.employe, 'dossiers': []}
         employes[c.dossier.employe.id]['dossiers'] += [c.dossier,]
-            
+
 
 
     headers = [
@@ -400,7 +402,7 @@ def rapports_postes_service(request):
     for s in rh.Service.objects.all():
         postes = rh.Poste.objects.filter(service=s).all()
         num_postes = rh.Poste.objects.filter(service=s).count()
-        data.append({'service': s, 'num_postes': num_postes, 'postes': postes}) 
+        data.append({'service': s, 'num_postes': num_postes, 'postes': postes})
 
     c['data'] = data
     return render_to_response('rh/rapports/postes_service.html', c, RequestContext(request))
@@ -453,11 +455,8 @@ def poste_apercu(request, poste_id):
     return render_to_response('admin/rh/poste/apercu.html', c, RequestContext(request))
 
 def employe_apercu(request, employe_id):
-    from dae.workflow import grp_drh, grp_correspondants_rh
     employe = get_object_or_404(rh.Employe, pk=employe_id)
     user_groups = request.user.groups.all()
-
-    dernier_dossier = None
     dossiers = None
 
     if request.user.is_superuser or \
@@ -466,9 +465,9 @@ def employe_apercu(request, employe_id):
     if grp_correspondants_rh in user_groups:
         regions = [d.poste.implantation.region for d in employe.rh_dossiers.all()]
         q = Q(employe=employe) & Q(implantation__region__in=regions)
-     
-    dossiers = rh.Dossier.objects.filter(employe=employe).order_by('-date_debut')
-      
+
+    dossiers = rh.Dossier.objects.filter(q).order_by('-date_debut')
+
     c = {
         'is_popup' : request.GET.get('_popup', False),
         'employe' : employe,
@@ -500,12 +499,16 @@ def organigrammes_employe(request, id):
         for n in a.nodes():
             p = postes_by_id[int(n)]
             d = rh.Dossier.objects.select_related('employe').filter((Q(date_fin__gt=date.today()) | Q(date_fin=None)) & (Q(date_debut__lt=date.today()) | Q(date_debut=None)) & Q(poste=p)).exclude(supprime=True).exclude(poste__responsable=None).all()[0]
-            n.attr['label'] = "%s %s\\n%s\\n%s" % (d.id, d.poste.nom, "%s %s" % (d.employe.nom.upper(), d.employe.prenom), d.poste.implantation)
-            #n.attr['label'] = str(n.attr['label'].encode('ascii', 'xmlcharrefreplace'))
+
+            label = u"%s %s\\n%s\\n%s" % (d.id, d.poste.nom, "%s %s" %
+                    (d.employe.nom.upper(), d.employe.prenom),
+                    d.poste.implantation)
+            label = unicodedata.normalize('NFKD', label).encode('ascii','ignore')
+            n.attr['label'] = label
             n.attr['href'] = reverse("admin:rh_employe_change", args=(d.employe_id,))
 
-        a.graph_attr['normalize'] = True
-        a.graph_attr['level'] = 2
+        #a.graph_attr['normalize'] = True
+        #a.graph_attr['level'] = 2
         a.layout(prog='dot')
 
         svg = a.draw(format='svg')