boostup
authorOlivier Larchevêque <olivier.larcheveque@auf.org>
Fri, 20 Jan 2012 20:35:21 +0000 (15:35 -0500)
committerOlivier Larchevêque <olivier.larcheveque@auf.org>
Fri, 20 Jan 2012 20:35:21 +0000 (15:35 -0500)
project/development.py
project/rh/catalogues.py
project/rh/lib.py
project/rh/managers.py
project/rh/models.py
project/settings.py

index 7db0eec..abacc3b 100644 (file)
@@ -5,9 +5,9 @@ DEBUG=True
 TEMPLATE_DEBUG=DEBUG
 
 # Décommentez ces lignes pour activer la debugtoolbar
-INTERNAL_IPS = ('127.0.0.1',)
-INSTALLED_APPS += ('debug_toolbar',)
-MIDDLEWARE_CLASSES += ('debug_toolbar.middleware.DebugToolbarMiddleware',)
+#INTERNAL_IPS = ('127.0.0.1',)
+#INSTALLED_APPS += ('debug_toolbar',)
+#MIDDLEWARE_CLASSES += ('debug_toolbar.middleware.DebugToolbarMiddleware',)
 
 AUTH_PASSWORD_REQUIRED = False
 EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
index 79d6e66..2fc3c8e 100644 (file)
@@ -83,3 +83,35 @@ class ValeurPoint(object):
 
     def get_objects(self, ids):
         return rh.ValeurPoint.objects.filter(id__in=ids)
+
+class Employe(object):
+
+    def get_query(self,q,request):
+        f = Q(nom__icontains=q) | Q(prenom__icontains=q) | Q(nom_affichage__icontains=q)
+        employes = rh.Employe.objects.filter(f)
+        return employes
+
+    def format_result(self, employe):
+        return unicode(employe)
+
+    def format_item(self, employe):
+        return self.format_result(employe)
+
+    def get_objects(self, ids):
+        return rh.Employe.objects.filter(id__in=ids)
+
+class Dossier(object):
+
+    def get_query(self,q,request):
+        f = Q(poste__nom=q) | Q(poste__type_poste__nom=q) | Q(employe__nom__icontains=q) | Q(employe__prenom__icontains=q) | Q(employe__nom_affichage__icontains=q)
+        dossiers = rh.Dossier.objects.filter(f)
+        return dossiers
+
+    def format_result(self, dossier):
+        return unicode(dossier)
+
+    def format_item(self, dossier):
+        return self.format_result(dossier)
+
+    def get_objects(self, ids):
+        return rh.Dossier.objects.filter(id__in=ids)
index a97f28d..72d0e92 100644 (file)
@@ -12,7 +12,7 @@ from django.db.models import Q
 from ajax_select import make_ajax_form
 from auf.django.metadata.admin import AUFMetadataAdminMixin, AUFMetadataInlineAdminMixin, AUF_METADATA_READONLY_FIELDS
 from project.rh import models as rh
-from forms import DossierForm, ContratForm, AyantDroitForm, EmployeAdminForm, AjaxSelect
+from forms import ContratForm, AyantDroitForm, EmployeAdminForm, AjaxSelect
 from dae.utils import get_employe_from_user
 
 
@@ -258,8 +258,7 @@ class DeviseAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
     )
 
 
-class DossierAdmin(AUFMetadataAdminMixin, ProtectRegionMixin, admin.ModelAdmin,):
-    form = DossierForm
+class DossierAdmin(AUFMetadataAdminMixin, ProtectRegionMixin, admin.ModelAdmin, AjaxSelect):
     alphabet_filter = 'employe__nom'
     search_fields = ('employe__nom', 'employe__prenom', 'poste__nom', 'poste__nom_feminin')
     list_display = ('_id', '_employe', '_actif', '_poste', 'date_debut', 'date_fin', 'date_modification')
@@ -283,9 +282,11 @@ class DossierAdmin(AUFMetadataAdminMixin, ProtectRegionMixin, admin.ModelAdmin,)
             'fields': (('date_debut', 'date_fin'), )
         }),
     )
-
-    class Media:
-        js = ('js/dossier.js',)
+    form =  make_ajax_form(rh.Dossier, {
+        'employe' : 'employes',
+        'poste' : 'postes',
+        'remplacement_de' : 'dossiers',
+    })
 
     def lookup_allowed(self, key, value):
         if key in (
index def6658..d092a3f 100644 (file)
@@ -81,21 +81,21 @@ class PosteManager(SecurityManager):
     def ma_region_ou_service(self, user):
         return super(PosteManager, self).ma_region_ou_service(user).filter(actif=True)
 
-    #def get_query_set(self):
-    #    fkeys = (
-    #        'id_rh',
-    #        'responsable',
-    #        'implantation',
-    #        'implantation.bureau_rattachement',
-    #        'type_poste',
-    #        'service',
-    #        'classement_min',
-    #        'classement_max',
-    #        'valeur_point_min',
-    #        'valeur_point_max',
-    #    )
-    #    return super(PosteManager, self).get_query_set() \
-    #                                    .select_related(*fkeys).all()
+    def get_query_set(self):
+        fkeys = (
+            #'id_rh',
+            #'responsable',
+            #'implantation',
+            #'implantation.bureau_rattachement',
+            'type_poste',
+            #'service',
+            #'classement_min',
+            #'classement_max',
+            #'valeur_point_min',
+            #'valeur_point_max',
+        )
+        return super(PosteManager, self).get_query_set() \
+                                        .select_related(*fkeys).all()
 
 
 class DossierManager(SecurityManager):
@@ -105,6 +105,7 @@ class DossierManager(SecurityManager):
     def get_query_set(self):
         fkeys = (
             'poste',
+            'employe',
         )
         return super(DossierManager, self).get_query_set() \
                                         .select_related(*fkeys).all()
index 1d0a78f..140a7e2 100644 (file)
@@ -565,6 +565,7 @@ class Dossier_(AUFMetadata):
     # Recrutement
     remplacement = models.BooleanField(default=False)
     remplacement_de = models.ForeignKey('self', related_name='+',
+                            help_text=u"Taper le nom de l'employé",
                             null=True, blank=True)
     statut_residence = models.CharField(max_length=10, default='local',
                             verbose_name = u"Statut", null=True,
@@ -632,8 +633,13 @@ class Dossier_(AUFMetadata):
 
 class Dossier(Dossier_):
     __doc__ = Dossier_.__doc__
-    poste = models.ForeignKey('%s.Poste' % app_context(), db_column='poste', related_name='%(app_label)s_dossiers')
-    employe = models.ForeignKey('Employe', db_column='employe', 
+    poste = models.ForeignKey('%s.Poste' % app_context(),
+        db_column='poste',
+        related_name='%(app_label)s_dossiers',
+        help_text=u"Taper le nom du poste ou du type de poste",
+        )
+    employe = models.ForeignKey('Employe', db_column='employe',
+                            help_text=u"Taper le nom de l'employé",
                             related_name='%(app_label)s_dossiers',
                             verbose_name=u"Employé")
 
index 947f3a3..82c876b 100644 (file)
@@ -126,6 +126,8 @@ AJAX_LOOKUP_CHANNELS = {
     'typepostes' : ('rh.catalogues', 'TypePoste'),
     'postes' : ('rh.catalogues', 'Poste'),
     'valeurpoints' : ('rh.catalogues', 'ValeurPoint'),
+    'employes' : ('rh.catalogues', 'Employe'),
+    'dossiers' : ('rh.catalogues', 'Dossier'),
 }
 AJAX_SELECT_BOOTSTRAP = True
 AJAX_SELECT_INLINES = 'inline'