add popup
authorOlivier Larchevêque <olivier.larcheveque@auf.org>
Mon, 9 Jan 2012 17:08:17 +0000 (12:08 -0500)
committerOlivier Larchevêque <olivier.larcheveque@auf.org>
Mon, 9 Jan 2012 17:08:17 +0000 (12:08 -0500)
project/rh/lib.py
project/rh/templates/admin/rh/poste/apercu.html [new file with mode: 0644]
project/rh/urls.py
project/rh/views.py

index 1fd3da3..e915ed8 100644 (file)
@@ -258,8 +258,8 @@ class DossierAdmin(AUFMetadataAdminMixin, ProtectRegionMixin, admin.ModelAdmin,)
     form = DossierForm
     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', )
+    list_display = ('_id', '_employe', '_actif', '_poste', 'date_debut', 'date_fin', 'date_modification')
+    list_filter = ('poste__implantation__region',  'poste__implantation', 'date_debut', 'date_fin', )
     inlines = (DossierPieceInline, ContratInline,
                RemunerationInline,
                #EvenementInline,
@@ -287,28 +287,63 @@ class DossierAdmin(AUFMetadataAdminMixin, ProtectRegionMixin, admin.ModelAdmin,)
         js = ('js/dossier.js',)
 
     def lookup_allowed(self, key, value):
-        if key in ('employe__nom__istartswith', 'actif__exact', ):
+        if key in (
+            'employe__nom__istartswith',
+            'actif__exact',
+            'date_fin__year',
+            'date_fin__month',
+            'date_fin__day',
+            'date_debut__year',
+            'date_debut__month',
+            'date_debut__day',
+            ):
             return True
 
+    def _id(self, d):
+        link = u"""<a onclick="return showAddAnotherPopup(this);" href='%s'>%s</a> <a href="%s" title="Modifier le dossier"><img src="%simg/page_edit.png" /></a>""" % \
+            (reverse('dossier_apercu', args=(d.id,)),
+             d.id,
+             reverse('admin:rh_dossier_change', args=(d.id,)),
+             settings.MEDIA_URL,
+             )
+        return link
+    _id.allow_tags = True
+    _id.short_description = u'Numéro de dossier'
+    _id.admin_order_field = 'id'
+    
+
     def _actif(self, dossier):
         if dossier.employe.actif:
           html = """<img alt="True" src="%simg/admin/icon-yes.gif">"""
         else:
           html = """<img alt="False" src="%simg/admin/icon-no.gif">"""
         return html % settings.ADMIN_MEDIA_PREFIX 
-    _actif.allow_tags = u'Employé actif'
+    _actif.allow_tags = True
     _actif.short_description = u'Employé actif'
     _actif.admin_order_field = 'employe__actif'
 
     def _poste(self, dossier):
-        return unicode(dossier.poste.nom)
+        link = u"""<a onclick="return showAddAnotherPopup(this);" href='%s'>%s</a> <a href="%s" title="Modifier le poste"><img src="%simg/page_edit.png" /></a>""" % \
+                (reverse('poste_apercu', args=(dossier.poste.id,)),
+                 dossier.poste,
+                 reverse('admin:rh_poste_change', args=(dossier.poste.id,)),
+                 settings.MEDIA_URL,
+                 )
+        return link
+    _poste.allow_tags = True
     _poste.short_description = u'Poste'
     _poste.admin_order_field = 'poste__nom'
 
-    def _employe(self, dossier):
-        return unicode(dossier.employe)
-    _employe.short_description = u'Employé'
-    _employe.admin_order_field = 'employe__nom'
+    def _employe(self, obj):
+        employe = obj.employe
+        view_link = reverse('employe_apercu', args=(employe.id,))
+        edit_link = reverse('admin:rh_employe_change', args=(employe.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, employe.id, employe.nom.upper(), employe.prenom.title(), edit_link, settings.MEDIA_URL,)
+    _employe.allow_tags = True
+    _employe.short_description = u"Employé ([code] NOM Prénom)"
+    _employe.admin_order_field = "employe__nom"
    
     def save_formset(self, request, form, formset, change):
         instances = formset.save(commit=False)
@@ -445,7 +480,8 @@ class PosteAdmin(AUFMetadataAdminMixin, ProtectRegionMixin, admin.ModelAdmin):
         'implantation__region__code', 
         'implantation__region__nom',
         )
-    list_display = ('nom', 
+    list_display = (
+        '_nom', 
         '_occupe_par',
         'implantation', 
         'service', 
@@ -500,6 +536,18 @@ class PosteAdmin(AUFMetadataAdminMixin, ProtectRegionMixin, admin.ModelAdmin):
                DossierROInline,
                PosteCommentaireInline, )
 
+    def _nom(self, poste):
+        link = u"""<a onclick="return showAddAnotherPopup(this);" href='%s'>%s</a> <a href="%s" title="Modifier le poste"><img src="%simg/page_edit.png" /></a>""" % \
+                (reverse('poste_apercu', args=(poste.id,)),
+                 poste.nom,
+                 reverse('admin:rh_poste_change', args=(poste.id,)),
+                 settings.MEDIA_URL,
+                 )
+        return link
+    _nom.allow_tags = True
+    _nom.short_description = u'Nom'
+    _nom.admin_order_field = 'nom'
+
     def _occupe_par(self, obj):
         """Formatte la méthode Poste.occupe_par() pour l'admin"""
         output = "VACANT"
diff --git a/project/rh/templates/admin/rh/poste/apercu.html b/project/rh/templates/admin/rh/poste/apercu.html
new file mode 100644 (file)
index 0000000..917b3ed
--- /dev/null
@@ -0,0 +1,18 @@
+{% 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_poste_changelist %}">Liste des postes</a> &rsaquo;
+     Poste {{ poste }}
+</div>
+{% endif %}{% endblock %}
+
+{% block content %}
+<h2>Aperçu du poste {{ poste }}</h2>
+
+{% include "rh/include/poste.html" %}
+
+{% endblock %}
index 92eec2e..17e2d13 100644 (file)
@@ -9,4 +9,5 @@ urlpatterns = patterns(
     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'),
+    url(r'^admin/rh/poste/(\d+)/apercu/$', 'poste_apercu', name='poste_apercu'),
 )
index 3e86683..bd714ed 100644 (file)
@@ -215,3 +215,11 @@ def employe_apercu(request, employe_id):
         'dernier_dossier' : dernier_dossier,
     }
     return render_to_response('admin/rh/employe/apercu.html', c, RequestContext(request))
+
+def poste_apercu(request, poste_id):
+    c = {
+        'is_popup' : request.GET.get('_popup', False),
+        'poste' : get_object_or_404(rh.Poste, pk=poste_id)
+
+    }
+    return render_to_response('admin/rh/poste/apercu.html', c, RequestContext(request))