#1872
authorOlivier Larchevêque <olivier.larcheveque@gmail.com>
Mon, 8 Aug 2011 14:08:08 +0000 (10:08 -0400)
committerOlivier Larchevêque <olivier.larcheveque@gmail.com>
Mon, 8 Aug 2011 14:08:08 +0000 (10:08 -0400)
project/rh/admin.py
project/rh/forms.py [new file with mode: 0644]
project/rh/lib.py

index d40bed1..174dd98 100644 (file)
@@ -24,7 +24,7 @@ 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(Contrat, ContratAdmin)
 admin.site.register(Devise, DeviseAdmin)
 admin.site.register(Dossier, DossierAdmin)
 #admin.site.register(DossierCommentaire, DossierCommentaireAdmin)
diff --git a/project/rh/forms.py b/project/rh/forms.py
new file mode 100644 (file)
index 0000000..84cf682
--- /dev/null
@@ -0,0 +1,26 @@
+# -*- encoding: utf-8 -*-
+
+from django import forms
+from models import Dossier, Contrat
+
+
+class FormDate(object):
+
+    def clean_date_fin(self):
+        date_fin = self.cleaned_data['date_fin']
+        if date_fin is None:
+          return date_fin
+        date_debut = self.cleaned_data['date_debut']
+        if date_fin < date_debut:
+            raise forms.ValidationError("La date de fin est antérieure à la date de début")
+        return date_fin
+
+class DossierForm(forms.ModelForm, FormDate):
+
+    class Model:
+        model = Dossier
+
+class ContratForm(forms.ModelForm, FormDate):
+
+    class Model:
+        model = Contrat
index dbd9e6b..5d6e935 100644 (file)
@@ -5,6 +5,7 @@ from django.contrib import admin
 from django.conf import settings
 from auf.django.metadata.admin import AUFMetadataAdminMixin, AUFMetadataInlineAdminMixin, AUF_METADATA_READONLY_FIELDS
 from project.rh import models as rh
+from forms import DossierForm, ContratForm
 
 # Inlines
 
@@ -25,6 +26,7 @@ class AyantDroitCommentaireInline(AUFMetadataInlineAdminMixin, admin.TabularInli
 
 
 class ContratInline(AUFMetadataInlineAdminMixin, admin.TabularInline):
+    form = ContratForm
     model = models.Model  # à remplacer dans admin.py
     extra = 1
 
@@ -149,31 +151,32 @@ class CommentaireAdmin(admin.ModelAdmin):
     pass
 
 
-class ContratAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
-    alphabet_filter = 'dossier__employe__nom'
-    search_fields = ('dossier__employe__nom', 'dossier__employe__prenom', 'dossier__poste__nom', 'dossier__poste__nom_feminin', )
-    list_display = ('id', '_employe', '_poste', 'date_debut', 'date_fin', '_implantation', )
-    fieldsets = AUFMetadataAdminMixin.fieldsets + (
-        (None, {
-            'fields': ('dossier', 'type_contrat', 'date_debut', 'date_fin', )
-        }),
-    )
-
-    def lookup_allowed(self, key, value):
-        if key in ('dossier__employe__nom__istartswith',  ):
-            return True
-
-    def _employe(self, obj):
-        return unicode(obj.dossier.employe)
-    _employe.short_description = "Employé"
-
-    def _poste(self, obj):
-        return obj.dossier.poste.nom
-    _poste.short_description = "Poste"
-
-    def _implantation(self, obj):
-        return obj.dossier.poste.implantation
-    _poste.short_description = "Implantation"
+#class ContratAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
+#    form = ContratForm
+#    alphabet_filter = 'dossier__employe__nom'
+#    search_fields = ('dossier__employe__nom', 'dossier__employe__prenom', 'dossier__poste__nom', 'dossier__poste__nom_feminin', )
+#    list_display = ('id', '_employe', '_poste', 'date_debut', 'date_fin', '_implantation', )
+#    fieldsets = AUFMetadataAdminMixin.fieldsets + (
+#        (None, {
+#            'fields': ('dossier', 'type_contrat', 'date_debut', 'date_fin', )
+#        }),
+#    )
+#
+#    def lookup_allowed(self, key, value):
+#        if key in ('dossier__employe__nom__istartswith',  ):
+#            return True
+#
+#    def _employe(self, obj):
+#        return unicode(obj.dossier.employe)
+#    _employe.short_description = "Employé"
+#
+#    def _poste(self, obj):
+#        return obj.dossier.poste.nom
+#    _poste.short_description = "Poste"
+#
+#    def _implantation(self, obj):
+#        return obj.dossier.poste.implantation
+#    _poste.short_description = "Implantation"
 
 class DeviseAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
     fieldsets = AUFMetadataAdminMixin.fieldsets + (
@@ -184,6 +187,7 @@ class DeviseAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
 
 
 class DossierAdmin(AUFMetadataAdminMixin, 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', '_actif')