Accès à page perso via actions en haut à droite
authordavin baragiotta <davin.baragiotta@u-db.(none)>
Tue, 2 Aug 2011 19:09:42 +0000 (15:09 -0400)
committerDavin BARAGIOTTA <davin.baragiotta@auf.org>
Tue, 2 Aug 2011 19:09:42 +0000 (15:09 -0400)
project/context_processors.py
project/dae/utils.py
project/lib.py [new file with mode: 0644]
project/settings.py
project/templates/actions.html

index 566b745..58db668 100644 (file)
@@ -1,4 +1,6 @@
 # -*- encoding: utf-8 -*-
+
+from lib import get_employe_from_user
 from permissions import is_admin
 
 # Ajout de variables accessibles dans les templates (pour tester permissions dans templates)
@@ -6,6 +8,11 @@ from permissions import is_admin
 def utilisateur(request):
     return {'utilisateur': request.user}
     
+def this_employe(request):
+    user = request.user
+    employe = get_employe_from_user(user)
+    return {'this_employe': employe}
+    
 def user_is_admin(request):
     return {'user_is_admin': not request.user.is_anonymous() and is_admin(request.user)}
 
index d8f765b..f57f4e8 100644 (file)
@@ -3,14 +3,15 @@
 import datamaster_modeles.models as ref
 
 def get_employe_from_user(user):
-  """
-  Retourne un employé AUF à partir de son user Django. 
-  """
-  try:
-      employe = ref.Authentification.objects.get(courriel=user.email).id
-  except:
-      raise Exception(u"L'employé avec le courriel %s n'a pas été trouvé dans le référentiel." % user.email)
-  return employe
+    """
+    Retourne un employé AUF à partir de son user Django. 
+    """
+    # Refactoring : utiliser project.lib.get_employe_from_user
+    try:
+        employe = ref.Authentification.objects.get(courriel=user.email).id
+    except:
+        raise Exception(u"L'employé avec le courriel %s n'a pas été trouvé dans le référentiel." % user.email)
+    return employe
 
 def is_user_dans_services_centraux(user):
     employe = get_employe_from_user(user)
diff --git a/project/lib.py b/project/lib.py
new file mode 100644 (file)
index 0000000..3670aca
--- /dev/null
@@ -0,0 +1,16 @@
+# -*- encoding: utf-8 -*-
+
+import datamaster_modeles.models as ref
+import rh.models as rh
+
+def get_employe_from_user(user):
+    """
+    Retourne un employé AUF (rh.Employe) à partir de son user Django. 
+    """
+    try:
+        ref_employe = ref.Authentification.objects.get(courriel=user.email).id
+        employe = rh.Employe.objects.get(id=ref_employe.id)
+    except:
+        #raise Exception(u"L'employé avec le courriel %s n'a pas été trouvé dans le référentiel." % user.email)
+        employe = rh.Employe.objects.none()
+    return employe
index e15cd1c..6ba68d9 100644 (file)
@@ -87,6 +87,7 @@ TEMPLATE_CONTEXT_PROCESSORS = (
     'django.core.context_processors.request',
     'auf.django.skin.context_processors.auf',
     'project.context_processors.utilisateur',
+    'project.context_processors.this_employe',
     'project.context_processors.user_is_admin',
     'dae.context_processors.user_in_dae_groupes',
     'recrutement.context_processors.user_in_recrutement_groupes',
index c38124d..7df2dad 100644 (file)
@@ -1,6 +1,10 @@
 <ul>
     {% if user.is_authenticated %}
-        <li class="username"><a href="">{{ user }}</a></li>
+        {% if this_employe %}
+            <li class="username"><a href="{% url rh_perso this_employe.id %}">{{ this_employe }}</a></li>
+        {% else %}
+            <li class="username">{{ user }}</li>
+        {% endif %}
         <li><a href="{% url admin:index %}">Administration</a></li>
         <li><a href="{% url django.contrib.auth.views.logout %}?next=/">Déconnexion</a></li>
     {% else %}