link & icons
authorOlivier Larchevêque <olivier.larcheveque@auf.org>
Fri, 6 Jan 2012 22:02:37 +0000 (17:02 -0500)
committerOlivier Larchevêque <olivier.larcheveque@auf.org>
Fri, 6 Jan 2012 22:02:37 +0000 (17:02 -0500)
project/media/img/page_edit.png [new file with mode: 0644]
project/media/img/user_edit.png [new file with mode: 0644]
project/rh/admin.py
project/rh/lib.py
project/rh/models.py
project/rh/templates/admin/rh/employe/apercu.html [new file with mode: 0644]
project/rh/urls.py
project/rh/views.py

diff --git a/project/media/img/page_edit.png b/project/media/img/page_edit.png
new file mode 100644 (file)
index 0000000..046811e
Binary files /dev/null and b/project/media/img/page_edit.png differ
diff --git a/project/media/img/user_edit.png b/project/media/img/user_edit.png
new file mode 100644 (file)
index 0000000..c1974cd
Binary files /dev/null and b/project/media/img/user_edit.png differ
index b7d941d..c54569b 100644 (file)
@@ -20,18 +20,16 @@ PostePieceInline.model = PostePiece
 RemunerationInline.model = Remuneration
 TypePosteInline.model = TypePoste
 
-admin.site.register(AyantDroit, AyantDroitAdmin)
+#admin.site.register(AyantDroit, AyantDroitAdmin)
 #admin.site.register(AyantDroitCommentaire, AyantDroitCommentaireAdmin)
 admin.site.register(Classement, ClassementAdmin)
 #admin.site.register(Commentaire, CommentaireAdmin)
 #admin.site.register(Contrat, ContratAdmin)
 admin.site.register(Devise, DeviseAdmin)
 admin.site.register(Dossier, DossierAdmin)
-admin.site.register(DossierInactif, DossierInactifAdmin)
 #admin.site.register(DossierCommentaire, DossierCommentaireAdmin)
 #admin.site.register(DossierPiece, DossierPieceAdmin)
 admin.site.register(Employe, EmployeAdmin)
-admin.site.register(EmployeInactif, EmployeInactifAdmin)
 #admin.site.register(EmployeCommentaire, EmployeCommentaireAdmin)
 #admin.site.register(EmployePiece, EmployePieceAdmin)
 #admin.site.register(Evenement, EvenementAdmin)
index 895a3b8..7fb7a85 100644 (file)
@@ -259,6 +259,7 @@ class DossierAdmin(AUFMetadataAdminMixin, ProtectRegionMixin, admin.ModelAdmin,)
     alphabet_filter = 'employe__nom'
     search_fields = ('employe__nom', 'employe__prenom', 'poste__nom', 'poste__nom_feminin')
     list_display = ('_employe', '_poste', 'date_debut', 'date_fin', 'date_modification', '_actif')
+    list_filter = ('poste__implantation__region',  'poste__implantation', 'actif', )
     inlines = (DossierPieceInline, ContratInline,
                RemunerationInline,
                #EvenementInline,
@@ -342,11 +343,6 @@ class DossierAdmin(AUFMetadataAdminMixin, ProtectRegionMixin, admin.ModelAdmin,)
         return super(DossierAdmin, self).render_change_form(request, context, *args, **kwargs)
 
 
-class DossierInactifAdmin(DossierAdmin):
-    def queryset(self, request):
-        return self.model.inactifs.all()
-
-
 class DossierPieceAdmin(admin.ModelAdmin):
     pass
 
@@ -370,8 +366,7 @@ class EmployeAdmin(AUFMetadataAdminMixin, ProtectRegionMixin, admin.ModelAdmin):
     ordering = ('nom', )
     actions = ('desactiver', )
     form = EmployeAdminForm
-    list_display = ('id', 'nom', 'prenom', '_dossiers', 'date_modification',  'user_modification',)
-    list_display_links = ('id', 'nom',)
+    list_display = ('_nom', '_dossiers', 'date_modification',  'user_modification',)
     list_filter = ('dossiers__poste__implantation__region',  'dossiers__poste__implantation', 'actif', )
     inlines = (AyantDroitInline,
                DossierROInline,
@@ -391,17 +386,31 @@ class EmployeAdmin(AUFMetadataAdminMixin, ProtectRegionMixin, admin.ModelAdmin):
 
     add_form_template = 'admin/change_form.html'
 
+
+    def _nom(self, obj):
+        view_link = reverse('employe_apercu', args=(obj.id,))
+        edit_link = reverse('admin:rh_employe_change', args=(obj.id,))
+        return u"""<a onclick="return showAddAnotherPopup(this);" href='%s'>[%s] %s %s</a>
+                  <a href="%s" title="Modifier l'employé"><img src="%simg/user_edit.png" /></a>""" % \
+        (view_link, obj.id, obj.nom.upper(), obj.prenom.title(), edit_link, settings.MEDIA_URL,)
+    _nom.allow_tags = True
+    _nom.short_description = u"Employé ([code] NOM Prénom)"
+    _nom.admin_order_field = "nom"
+
     def _dossiers(self, obj):
         l = []
         for d in obj.dossiers.all().order_by('-date_debut'):
             style = ""
             if d.date_fin is not None:
                 style = "color: grey";
-            link = """<li><a style="%s;" onclick="return showAddAnotherPopup(this);" href='%s'>%s : %s</a></li>""" % \
+            link = u"""<li><a style="%s;" onclick="return showAddAnotherPopup(this);" href='%s'>%s : %s</a> <a href="%s" title="Modifier le dossier"><img src="%simg/page_edit.png" /></a> </li>""" % \
                 (style,
                  reverse('dossier_apercu', args=(d.id,)),
                  d.date_debut.year,
-                 d.poste)
+                 d.poste,
+                 reverse('admin:rh_dossier_change', args=(d.id,)),
+                 settings.MEDIA_URL,
+                 )
             l.append(link)
         return "<ul>%s</ul>" % "\n".join(l)
     _dossiers.allow_tags = True
@@ -452,11 +461,6 @@ class EmployeAdmin(AUFMetadataAdminMixin, ProtectRegionMixin, admin.ModelAdmin):
         return super(EmployeAdmin, self).render_change_form(request, context, *args, **kwargs)
 
 
-class EmployeInactifAdmin(EmployeAdmin):
-    def queryset(self, request):
-        return self.model.inactifs.all()
-
-
 class EmployeCommentaireAdmin(admin.ModelAdmin):
     pass
 
index 60fa634..aa46aaa 100644 (file)
@@ -420,14 +420,6 @@ class Employe(AUFMetadata):
         return regions
 
 
-class EmployeInactif(Employe):
-    class Meta:
-        proxy = True
-        ordering = ['nom_affichage','nom','prenom']
-        verbose_name = u"Employé inactif"
-        verbose_name_plural = u"Employés inactifs"
-
-
 class EmployePiece(models.Model):
     """Documents relatifs à un employé.
     Ex.: CV...
@@ -623,15 +615,6 @@ class Dossier(Dossier_):
     __doc__ = Dossier_.__doc__
 
 
-class DossierInactif(Dossier):
-
-    class Meta:
-        proxy = True
-        ordering = ['employe__nom', ]
-        verbose_name = u"Dossier inactif"
-        verbose_name_plural = u"Dossiers inactifs"
-
-
 class DossierPiece(models.Model):
     """Documents relatifs au Dossier (à l'occupation de ce poste par employé).
     Ex.: Lettre de motivation.
diff --git a/project/rh/templates/admin/rh/employe/apercu.html b/project/rh/templates/admin/rh/employe/apercu.html
new file mode 100644 (file)
index 0000000..da3ccc2
--- /dev/null
@@ -0,0 +1,24 @@
+{% extends 'admin/change_form.html' %}
+{% load i18n admin_modify adminmedia %}
+
+{% block breadcrumbs %}{% if not is_popup %}
+<div class="breadcrumbs">
+     <a href="{% url admin:index %}">{% trans "Home" %}</a> &rsaquo;
+     <a href="{% url admin:index %}/rh">Rh</a> &rsaquo;
+     <a href="{% url admin:rh_employe_changelist %}">Liste employés</a> &rsaquo;
+     {{ employe }}
+</div>
+{% endif %}{% endblock %}
+
+{% block content %}
+<h2>{{ employe }}</h2>
+
+{% include "rh/include/employe.html" %}
+
+{% if dernier_dossier != None %}
+    {% with dernier_dossier as dossier %}
+        {% include "rh/include/dossier.html" %}
+    {% endwith %}
+{% endif %}
+
+{% endblock %}
index 0525c3b..92eec2e 100644 (file)
@@ -8,4 +8,5 @@ urlpatterns = patterns(
     url(r'^admin/rh/rapports/contrats$', 'rapports_contrat', name='rhr_contrats'),
     url(r'^admin/rh/rapports/remuneration$', 'rapports_remuneration', name='rhr_remuneration'),
     url(r'^admin/rh/dossier/(\d+)/apercu/$', 'dossier_apercu', name='dossier_apercu'),
+    url(r'^admin/rh/employe/(\d+)/apercu/$', 'employe_apercu', name='employe_apercu'),
 )
index ce2802d..3e86683 100644 (file)
@@ -201,3 +201,17 @@ def dossier_apercu(request, dossier_id):
 
     }
     return render_to_response('admin/rh/dossier/apercu.html', c, RequestContext(request))
+
+def employe_apercu(request, employe_id):
+    employe = get_object_or_404(rh.Employe, pk=employe_id)
+    try:
+        dernier_dossier = rh.Dossier.objects.filter(employe=employe).order_by('-date_debut')[0]
+    except:
+        dernier_dossier = None
+        
+    c = {
+        'is_popup' : request.GET.get('_popup', False),
+        'employe' : employe,
+        'dernier_dossier' : dernier_dossier,
+    }
+    return render_to_response('admin/rh/employe/apercu.html', c, RequestContext(request))