[#2658] Intégration de reversion à l'app rh
authorEric Mc Sween <eric.mcsween@auf.org>
Thu, 31 May 2012 14:02:47 +0000 (10:02 -0400)
committerEric Mc Sween <eric.mcsween@auf.org>
Mon, 18 Jun 2012 22:23:16 +0000 (18:23 -0400)
project/rh/admin.py
project/rh/graph.py
project/rh/managers.py
project/rh/masse_salariale.py
project/rh/migrations/0029_supprimer_objets_flag_supprime.py [new file with mode: 0644]
project/rh/migrations/0030_auto__del_field_postecomparaison_supprime__del_field_postecomparaison_.py [new file with mode: 0644]
project/rh/models.py
project/rh/views.py

index 8e10643..7fc424e 100644 (file)
@@ -4,12 +4,11 @@ import datetime
 
 import reversion
 from ajax_select import make_ajax_form
-from auf.django.metadata.admin import \
-        AUFMetadataAdminMixin, AUFMetadataInlineAdminMixin, \
-        AUF_METADATA_READONLY_FIELDS
 from auf.django.references import models as ref
+from django import forms
 from django.core.urlresolvers import reverse
 from django.contrib import admin
+from django.contrib.contenttypes.models import ContentType
 from django.conf import settings
 from django.db.models import Q, Count
 from django.template.defaultfilters import date
@@ -36,6 +35,8 @@ class BaseAdmin(admin.ModelAdmin):
         )
 
 
+# Admin pour reversion
+
 class ArchiveMixin(object):
     """
     Archive Mixin pour gérer le queryset et le display
@@ -155,16 +156,68 @@ class ProtectRegionMixin(object):
         return obj.id in ids
 
 
+class DerniereModificationAdmin(admin.ModelAdmin):
+
+    def queryset(self, request):
+        qs = super(DerniereModificationAdmin, self).queryset(request)
+        ct = ContentType.objects.get_for_model(self.model)
+        db_table = self.model._meta.db_table
+        pk = self.model._meta.pk.column
+        return qs.extra(select={
+            'date_modification':
+            "SELECT action_time FROM django_admin_log "
+            "WHERE content_type_id = %d AND object_id = %s.%s "
+            "ORDER BY action_time DESC "
+            "LIMIT 1" % (ct.id, db_table, pk),
+            'user_modification':
+            "SELECT u.username "
+            "FROM auth_user u "
+            "INNER JOIN django_admin_log l ON l.user_id = u.id "
+            "WHERE l.content_type_id = %d AND object_id = %s.%s "
+            "ORDER BY action_time DESC "
+            "LIMIT 1" % (ct.id, db_table, pk),
+        })
+
+    def derniere_modification(self, obj):
+        text = ''
+        if obj.date_modification:
+            text += obj.date_modification.strftime('%d-%m-%Y %H:%M')
+        if obj.user_modification:
+            text += ' par ' + obj.user_modification
+        return text
+    derniere_modification.short_description = u'dernière modification'
+    derniere_modification.admin_order_field = 'date_modification'
+
+
 # Inlines
 
+class CommentaireInlineForm(forms.ModelForm):
+
+    def save(self, commit=True):
+
+        # Hack: reversion.VersionAdmin ne sauvegarde pas les champs qui ne
+        # sont pas explicitement dans le formulaire. Il plante cependant
+        # leur valeur dans `self.initial`. Ceci est un peu fragile. Si
+        # c'est possible, il serait plus approprié que Reversion se rende
+        # compte qu'il manque des champs.
+        instance = super(CommentaireInlineForm, self).save(commit=False)
+        if instance.owner_id is None and 'owner' in self.initial:
+            instance.owner_id = self.initial['owner']
+        if instance.date_creation is None and 'date_creation' in self.initial:
+            instance.date_creation = self.initial['date_creation']
+        if commit:
+            instance.save()
+            self.save_m2m()
+        return instance
+
+
 class ReadOnlyInlineMixin(object):
 
     def get_readonly_fields(self, request, obj=None):
-        return [f.name for f in self.model._meta.fields \
-                if f.name not in AUF_METADATA_READONLY_FIELDS]
+        return [f.name for f in self.model._meta.fields]
 
 
-class AyantDroitInline(AUFMetadataInlineAdminMixin, admin.StackedInline):
+class AyantDroitInline(admin.StackedInline):
     model = rh.AyantDroit
     form = AyantDroitForm
     extra = 0
@@ -181,14 +234,14 @@ class AyantDroitInline(AUFMetadataInlineAdminMixin, admin.StackedInline):
     )
 
 
-class AyantDroitCommentaireInline(AUFMetadataInlineAdminMixin, \
-        admin.TabularInline):
-    readonly_fields = ('owner', )
+class AyantDroitCommentaireInline(admin.TabularInline):
+    readonly_fields = ('owner',)
     model = rh.AyantDroitCommentaire
     extra = 1
+    form = CommentaireInlineForm
 
 
-class ContratInline(AUFMetadataInlineAdminMixin, admin.TabularInline):
+class ContratInline(admin.TabularInline):
     form = ContratForm
     model = rh.Contrat
     extra = 1
@@ -196,7 +249,6 @@ class ContratInline(AUFMetadataInlineAdminMixin, admin.TabularInline):
 
 class DossierROInline(ReadOnlyInlineMixin, LinkedInline):
     template = "admin/rh/dossier/linked.html"
-    exclude = AUF_METADATA_READONLY_FIELDS
     model = rh.Dossier
     extra = 0
     can_delete = False
@@ -211,11 +263,11 @@ class DossierROInline(ReadOnlyInlineMixin, LinkedInline):
         return False
 
 
-class DossierCommentaireInline(AUFMetadataInlineAdminMixin, \
-        admin.TabularInline):
-    readonly_fields = ('owner', )
+class DossierCommentaireInline(admin.TabularInline):
+    readonly_fields = ('owner',)
     model = rh.DossierCommentaire
     extra = 1
+    form = CommentaireInlineForm
 
 
 class DossierPieceInline(admin.TabularInline):
@@ -227,11 +279,11 @@ class EmployeInline(admin.TabularInline):
     model = rh.Employe
 
 
-class EmployeCommentaireInline(AUFMetadataInlineAdminMixin, \
-        admin.TabularInline):
-    readonly_fields = ('owner', )
+class EmployeCommentaireInline(admin.TabularInline):
+    readonly_fields = ('owner',)
     model = rh.EmployeCommentaire
     extra = 1
+    form = CommentaireInlineForm
 
 
 class EmployePieceInline(admin.TabularInline):
@@ -239,10 +291,11 @@ class EmployePieceInline(admin.TabularInline):
     extra = 4
 
 
-class PosteCommentaireInline(AUFMetadataInlineAdminMixin, admin.TabularInline):
-    readonly_fields = ('owner', )
+class PosteCommentaireInline(admin.TabularInline):
+    readonly_fields = ('owner',)
     model = rh.PosteCommentaire
     extra = 1
+    form = CommentaireInlineForm
 
 
 class PosteFinancementInline(admin.TabularInline):
@@ -253,7 +306,7 @@ class PostePieceInline(admin.TabularInline):
     model = rh.PostePiece
 
 
-class RemunerationInline(AUFMetadataInlineAdminMixin, admin.TabularInline):
+class RemunerationInline(admin.TabularInline):
     model = rh.Remuneration
     extra = 1
 
@@ -262,63 +315,42 @@ class RemunerationROInline(ReadOnlyInlineMixin, RemunerationInline):
     pass
 
 
-class TypePosteInline(AUFMetadataInlineAdminMixin, admin.TabularInline):
+class TypePosteInline(admin.TabularInline):
     model = rh.TypePoste
 
 
-class PosteComparaisonInline(AUFMetadataInlineAdminMixin, admin.TabularInline):
+class PosteComparaisonInline(admin.TabularInline):
     model = rh.PosteComparaison
 
 
-class ClassementAdmin(AUFMetadataAdminMixin, BaseAdmin,
-                      reversion.VersionAdmin):
-    list_display = ('_classement', '_date_modification', 'user_modification', )
-    fieldsets = AUFMetadataAdminMixin.fieldsets + (
-        (None, {
-            'fields': ('type', 'echelon', 'degre', 'coefficient',)}),
+class ClassementAdmin(reversion.VersionAdmin, DerniereModificationAdmin,
+                      BaseAdmin):
+    ignore_duplicate_revisions = True
+    list_display = ('_classement', 'derniere_modification')
+    fieldsets = (
+        (None, {'fields': ('type', 'echelon', 'degre', 'coefficient',)}),
     )
 
     def _classement(self, obj):
         return unicode(obj)
     _classement.short_description = u"Classement"
 
-    def _date_modification(self, obj):
-        return date(obj.date_modification) \
-                if obj.date_modification is not None else "(aucune)"
-    _date_modification.short_description = u'date modification'
-    _date_modification.admin_order_field = 'date_modification'
-
-
-class CommentaireAdmin(reversion.VersionAdmin, BaseAdmin):
-    pass
-
 
-class DeviseAdmin(AUFMetadataAdminMixin, reversion.VersionAdmin,
-                  ArchiveMixin, BaseAdmin):
+class DeviseAdmin(reversion.VersionAdmin, ArchiveMixin,
+                  DerniereModificationAdmin, BaseAdmin):
+    ignore_duplicate_revisions = True
     list_display = (
-            'code',
-            'nom',
-            '_archive',
-            '_date_modification',
-            'user_modification',
-            )
+        'code', 'nom', '_archive', 'derniere_modification',
+    )
     list_filter = ('archive', )
-    fieldsets = AUFMetadataAdminMixin.fieldsets + (
-        (None, {
-            'fields': ('code', 'nom', 'archive', ),
-        }),
+    fieldsets = (
+        (None, {'fields': ('code', 'nom', 'archive', )}),
     )
 
-    def _date_modification(self, obj):
-        return date(obj.date_modification) \
-                if obj.date_modification is not None else "(aucune)"
-    _date_modification.short_description = u'date modification'
-    _date_modification.admin_order_field = 'date_modification'
-
 
-class DossierAdmin(DateRangeMixin, AUFMetadataAdminMixin,
-                   ProtectRegionMixin, BaseAdmin, AjaxSelect,
-                   reversion.VersionAdmin):
+class DossierAdmin(DateRangeMixin, ProtectRegionMixin, reversion.VersionAdmin,
+                   AjaxSelect, DerniereModificationAdmin, BaseAdmin):
+    ignore_duplicate_revisions = True
     alphabet_filter = 'employe__nom'
     search_fields = (
         'id',
@@ -338,8 +370,7 @@ class DossierAdmin(DateRangeMixin, AUFMetadataAdminMixin,
         '_employe',
         '_date_debut',
         '_date_fin',
-        '_date_modification',
-        'user_modification',
+        'derniere_modification',
         '_dae',
     )
     list_display_links = ('_nom',)
@@ -355,7 +386,7 @@ class DossierAdmin(DateRangeMixin, AUFMetadataAdminMixin,
                RemunerationInline,
                DossierCommentaireInline,
               )
-    fieldsets = AUFMetadataAdminMixin.fieldsets + (
+    fieldsets = (
         (None, {
             'fields': (
                 'employe',
@@ -449,12 +480,6 @@ class DossierAdmin(DateRangeMixin, AUFMetadataAdminMixin,
     _date_fin.short_description = u'Occupation fin'
     _date_fin.admin_order_field = 'date_fin'
 
-    def _date_modification(self, obj):
-        return date(obj.date_modification) \
-                if obj.date_modification is not None else "(aucune)"
-    _date_modification.short_description = u'date modification'
-    _date_modification.admin_order_field = 'date_modification'
-
     def _poste(self, dossier):
         link = u"""<a title="Aperçu du poste"
                       onclick="return showAddAnotherPopup(this);"
@@ -497,8 +522,8 @@ class DossierAdmin(DateRangeMixin, AUFMetadataAdminMixin,
             instance.save()
 
 
-class EmployeAdminMixin(DateRangeMixin, AUFMetadataAdminMixin,
-                        ProtectRegionMixin, BaseAdmin):
+class EmployeAdminBase(DateRangeMixin, ProtectRegionMixin,
+                       DerniereModificationAdmin, BaseAdmin):
     prefixe_recherche_temporelle = "rh_dossiers__"
     alphabet_filter = 'nom'
     DEFAULT_ALPHABET = u'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
@@ -510,36 +535,30 @@ class EmployeAdminMixin(DateRangeMixin, AUFMetadataAdminMixin,
     ordering = ('nom', )
     form = EmployeAdminForm
     list_display = (
-            '_id',
-            '_apercu',
-            '_nom',
-            '_dossiers_postes',
-            'date_entree',
-            '_date_modification',
-            'user_modification',
-            )
+        '_id', '_apercu', '_nom', '_dossiers_postes', 'date_entree',
+        'derniere_modification'
+    )
     list_display_links = ('_nom',)
     list_filter = (
-            'rh_dossiers__poste__implantation__region',
-            'rh_dossiers__poste__implantation',
-            'nb_postes',
-            )
-    inlines = (AyantDroitInline,
-               DossierROInline,
-               EmployePieceInline,
-               EmployeCommentaireInline)
-    fieldsets = AUFMetadataAdminMixin.fieldsets + (
+        'rh_dossiers__poste__implantation__region',
+        'rh_dossiers__poste__implantation', 'nb_postes'
+    )
+    inlines = (
+        AyantDroitInline, DossierROInline, EmployePieceInline,
+        EmployeCommentaireInline
+    )
+    fieldsets = (
         ('Identification', {
             'fields': (
                 ('nom', 'prenom'),
                 ('nom_affichage', 'genre'),
                 'nationalite',
                 'date_naissance',
-                )}
-            ),
+            )
+        }),
         ('Informations personnelles', {
-            'fields': ('situation_famille', 'date_entree', )}
-            ),
+            'fields': ('situation_famille', 'date_entree', )
+        }),
         ('Coordonnées personnelles', {
             'fields': (
                 ('tel_domicile', 'tel_cellulaire'),
@@ -547,9 +566,9 @@ class EmployeAdminMixin(DateRangeMixin, AUFMetadataAdminMixin,
                 ('code_postal', 'province'),
                 'pays',
                 'courriel_perso'
-                )}
-            ),
-        )
+            )
+        }),
+    )
 
     def _apercu(self, obj):
         return u"""<a title="Aperçu de l'employé"
@@ -627,7 +646,7 @@ class EmployeAdminMixin(DateRangeMixin, AUFMetadataAdminMixin,
     _dossiers_postes.short_description = u"Dossiers et postes"
 
     def queryset(self, request):
-        qs = super(EmployeAdmin, self).queryset(request)
+        qs = super(EmployeAdminBase, self).queryset(request)
         return qs.select_related(depth=1).order_by('nom')
 
     def save_formset(self, request, form, formset, change):
@@ -639,11 +658,11 @@ class EmployeAdminMixin(DateRangeMixin, AUFMetadataAdminMixin,
             instance.save()
 
 
-class EmployeAdmin(reversion.VersionAdmin, EmployeAdminMixin):
-    pass
+class EmployeAdmin(reversion.VersionAdmin, EmployeAdminBase):
+    ignore_duplicate_revisions = True
 
 
-class EmployeProxyAdmin(admin.ModelAdmin, EmployeAdminMixin):
+class EmployeProxyAdmin(EmployeAdminBase):
     list_display = ('_id', '_apercu', '_nom', '_organigramme')
     actions = None
 
@@ -685,45 +704,31 @@ class EmployeProxyAdmin(admin.ModelAdmin, EmployeAdminMixin):
     _organigramme.short_description = "Organigramme"
 
 
-class CategorieEmploiAdmin(AUFMetadataAdminMixin, reversion.VersionAdmin,
-                           BaseAdmin):
-    list_display = ('nom', '_date_modification', 'user_modification', )
+class CategorieEmploiAdmin(reversion.VersionAdmin,
+                           DerniereModificationAdmin, BaseAdmin):
+    ignore_duplicate_revisions = True
+    list_display = ('nom', 'derniere_modification')
     inlines = (TypePosteInline,)
-    fieldsets = AUFMetadataAdminMixin.fieldsets + (
-        (None, {'fields': ('nom', )}),)
-
-    def _date_modification(self, obj):
-        return date(obj.date_modification) \
-                if obj.date_modification is not None else "(aucune)"
-    _date_modification.short_description = u'date modification'
-    _date_modification.admin_order_field = 'date_modification'
+    fieldsets = (
+        (None, {'fields': ('nom', )}),
+    )
 
 
-class OrganismeBstgAdmin(AUFMetadataAdminMixin, reversion.VersionAdmin,
+class OrganismeBstgAdmin(reversion.VersionAdmin, DerniereModificationAdmin,
                          BaseAdmin):
+    ignore_duplicate_revisions = True
     search_fields = ('nom',)
-    list_display = (
-            'nom',
-            'type',
-            'pays',
-            '_date_modification',
-            'user_modification',
-            )
+    list_display = ('nom', 'type', 'pays', 'derniere_modification')
     list_filter = ('type', )
     inlines = (DossierROInline,)
-    fieldsets = AUFMetadataAdminMixin.fieldsets + (
+    fieldsets = (
         (None, {'fields': ('nom', 'type', 'pays',)}),
-        )
-
-    def _date_modification(self, obj):
-        return date(obj.date_modification) \
-                if obj.date_modification is not None else "(aucune)"
-    _date_modification.short_description = u'date modification'
-    _date_modification.admin_order_field = 'date_modification'
+    )
 
 
-class PosteAdmin(DateRangeMixin, AUFMetadataAdminMixin, ProtectRegionMixin,
-                 reversion.VersionAdmin, AjaxSelect, BaseAdmin):
+class PosteAdmin(DateRangeMixin, ProtectRegionMixin, reversion.VersionAdmin,
+                 AjaxSelect, DerniereModificationAdmin, BaseAdmin):
+    ignore_duplicate_revisions = True
     form = make_ajax_form(rh.Poste, {
         'implantation': 'implantations',
         'type_poste': 'typepostes',
@@ -733,29 +738,20 @@ class PosteAdmin(DateRangeMixin, AUFMetadataAdminMixin, ProtectRegionMixin,
     })
     alphabet_filter = 'nom'
     search_fields = (
-            'id',
-            'nom',
-            'implantation__nom',
-            'implantation__region__code',
-            'implantation__region__nom',
-            'rh_dossiers__employe__id',
-            'rh_dossiers__employe__nom',
-            'rh_dossiers__employe__prenom',
-            )
+        'id',
+        'nom',
+        'implantation__nom',
+        'implantation__region__code',
+        'implantation__region__nom',
+        'rh_dossiers__employe__id',
+        'rh_dossiers__employe__nom',
+        'rh_dossiers__employe__prenom',
+    )
     list_display = (
-        '_id',
-        '_apercu',
-        '_nom',
-        '_occupe_par',
-        '_implantation',
-        '_service',
-        '_responsable',
-        'date_debut',
-        'date_fin',
-        '_date_modification',
-        'user_modification',
-        '_dae',
-        )
+        '_id', '_apercu', '_nom', '_occupe_par', 'implantation', '_service',
+        '_responsable', 'date_debut', 'date_fin', 'derniere_modification',
+        '_dae'
+    )
     list_filter = (
         'implantation__region',
         'implantation',
@@ -764,9 +760,9 @@ class PosteAdmin(DateRangeMixin, AUFMetadataAdminMixin, ProtectRegionMixin,
         'type_poste__categorie_emploi',
         'type_poste__famille_professionnelle',
         'vacant',
-        )
+    )
     list_display_links = ('_nom',)
-    fieldsets = AUFMetadataAdminMixin.fieldsets + (
+    fieldsets = (
         (None, {'fields': (
                 ('nom', 'nom_feminin'),
                 'implantation',
@@ -862,10 +858,7 @@ class PosteAdmin(DateRangeMixin, AUFMetadataAdminMixin, ProtectRegionMixin,
     _id.admin_order_field = 'id'
 
     def _service(self, obj):
-        if obj.service.supprime:
-            return """<span style="color:red">%s</span>""" % obj.service
-        else:
-            return obj.service
+        return obj.service
     _service.short_description = 'Service'
     _service.allow_tags = True
 
@@ -920,11 +913,6 @@ class PosteAdmin(DateRangeMixin, AUFMetadataAdminMixin, ProtectRegionMixin,
     _nom.short_description = u'Poste'
     _nom.admin_order_field = 'nom'
 
-    def _date_modification(self, obj):
-        return date(obj.date_modification)
-    _date_modification.short_description = u'date modification'
-    _date_modification.admin_order_field = 'date_modification'
-
     def _occupe_par(self, obj):
         """Formatte la méthode Poste.occupe_par() pour l'admin"""
         output = u"Vacant"
@@ -1022,32 +1010,19 @@ class ResponsableImplantationAdmin(BaseAdmin):
         return False
 
 
-class ServiceAdminMixin(AUFMetadataAdminMixin, ArchiveMixin, BaseAdmin):
-    list_display = (
-            'nom',
-            '_archive',
-            '_date_modification',
-            'user_modification',
-            )
+class ServiceAdminBase(ArchiveMixin, DerniereModificationAdmin, BaseAdmin):
+    list_display = ('nom', '_archive', 'derniere_modification')
     list_filter = ('archive', )
-    fieldsets = AUFMetadataAdminMixin.fieldsets + (
-        (None, {
-            'fields': ('nom', 'archive', ),
-        }),
-        )
-
-    def _date_modification(self, obj):
-        return date(obj.date_modification) \
-                if obj.date_modification is not None else "(aucune)"
-    _date_modification.short_description = u'date modification'
-    _date_modification.admin_order_field = 'date_modification'
+    fieldsets = (
+        (None, {'fields': ('nom', 'archive')}),
+    )
 
 
-class ServiceAdmin(reversion.VersionAdmin, ServiceAdminMixin):
-    pass
+class ServiceAdmin(reversion.VersionAdmin, ServiceAdminBase):
+    ignore_duplicate_revisions = True
 
 
-class ServiceProxyAdmin(admin.ModelAdmin, ServiceAdminMixin):
+class ServiceProxyAdmin(ServiceAdminBase):
     list_display = ('nom', '_organigramme', '_archive', )
     actions = None
 
@@ -1073,149 +1048,93 @@ class ServiceProxyAdmin(admin.ModelAdmin, ServiceAdminMixin):
     _organigramme.short_description = "Organigramme"
 
 
-class StatutAdmin(AUFMetadataAdminMixin, reversion.VersionAdmin, BaseAdmin):
-    list_display = ('code', 'nom', '_date_modification', 'user_modification', )
-    fieldsets = AUFMetadataAdminMixin.fieldsets + (
+class StatutAdmin(reversion.VersionAdmin, DerniereModificationAdmin,
+                  BaseAdmin):
+    ignore_duplicate_revisions = True
+    list_display = ('code', 'nom', 'derniere_modification')
+    fieldsets = (
         (None, {
             'fields': ('code', 'nom', ),
         }),
-        )
-
-    def _date_modification(self, obj):
-        return date(obj.date_modification) \
-                if obj.date_modification is not None else "(aucune)"
-    _date_modification.short_description = u'date modification'
-    _date_modification.admin_order_field = 'date_modification'
+    )
 
 
-class TauxChangeAdmin(reversion.VersionAdmin, BaseAdmin):
-    list_display = (
-            'taux',
-            'devise',
-            'annee',
-            '_date_modification',
-            'user_modification',
-            )
-    list_filter = ('devise', )
-    fieldsets = AUFMetadataAdminMixin.fieldsets + (
+class TauxChangeAdmin(reversion.VersionAdmin, DerniereModificationAdmin,
+                      BaseAdmin):
+    ignore_duplicate_revisions = True
+    list_display = ('taux', 'devise', 'annee', 'derniere_modification')
+    list_filter = ('devise',)
+    fieldsets = (
         (None, {
             'fields': ('taux', 'devise', 'annee', ),
         }),
-        )
-
-    def _date_modification(self, obj):
-        return date(obj.date_modification) \
-                if obj.date_modification is not None else "(aucune)"
-    _date_modification.short_description = u'date modification'
-    _date_modification.admin_order_field = 'date_modification'
+    )
 
 
-class TypeContratAdmin(reversion.VersionAdmin, BaseAdmin):
-    list_display = (
-            'nom',
-            'nom_long',
-            '_date_modification',
-            'user_modification',
-            )
-    fieldsets = AUFMetadataAdminMixin.fieldsets + (
+class TypeContratAdmin(reversion.VersionAdmin, DerniereModificationAdmin,
+                       BaseAdmin):
+    ignore_duplicate_revisions = True
+    list_display = ('nom', 'nom_long', 'derniere_modification')
+    fieldsets = (
         (None, {
             'fields': ('nom', 'nom_long', ),
         }),
-        )
-
-    def _date_modification(self, obj):
-        return date(obj.date_modification) \
-                if obj.date_modification is not None else "(aucune)"
-    _date_modification.short_description = u'date modification'
-    _date_modification.admin_order_field = 'date_modification'
+    )
 
 
-class TypePosteAdmin(AUFMetadataAdminMixin, reversion.VersionAdmin,
+class TypePosteAdmin(reversion.VersionAdmin, DerniereModificationAdmin,
                      BaseAdmin):
+    ignore_duplicate_revisions = True
     search_fields = ('nom', 'nom_feminin', )
-    list_display = (
-            'nom',
-            'categorie_emploi',
-            '_date_modification',
-            'user_modification',
-            )
+    list_display = ('nom', 'categorie_emploi', 'derniere_modification')
     list_filter = ('categorie_emploi', 'famille_professionnelle')
-    fieldsets = AUFMetadataAdminMixin.fieldsets + (
+    fieldsets = (
         (None, {
             'fields': (
-                'nom',
-                'nom_feminin',
-                'is_responsable',
-                'categorie_emploi',
+                'nom', 'nom_feminin', 'is_responsable', 'categorie_emploi',
                 'famille_professionnelle',
-                )}
-            ),
-        )
-
-    def _date_modification(self, obj):
-        return date(obj.date_modification) \
-                if obj.date_modification is not None else "(aucune)"
-    _date_modification.short_description = u'date modification'
-    _date_modification.admin_order_field = 'date_modification'
+            )
+        }),
+    )
 
 
-class TypeRemunerationAdmin(AUFMetadataAdminMixin, reversion.VersionAdmin,
-                            ArchiveMixin, BaseAdmin):
+class TypeRemunerationAdmin(reversion.VersionAdmin, ArchiveMixin,
+                            DerniereModificationAdmin, BaseAdmin):
+    ignore_duplicate_revisions = True
     list_display = (
-            'nom',
-            'type_paiement',
-            'nature_remuneration',
-            '_archive',
-            '_date_modification',
-            'user_modification',)
+        'nom', 'type_paiement', 'nature_remuneration', '_archive',
+        'derniere_modification'
+    )
     list_filter = ('archive', )
-    fieldsets = AUFMetadataAdminMixin.fieldsets + (
-        (None, {'fields': ('nom', 'type_paiement', 'nature_remuneration',
-        'archive')}),
-        )
-
-    def _date_modification(self, obj):
-        return date(obj.date_modification) \
-                if obj.date_modification is not None else "(aucune)"
-    _date_modification.short_description = u'date modification'
-    _date_modification.admin_order_field = 'date_modification'
-
+    fieldsets = (
+        (None, {
+            'fields': (
+                'nom', 'type_paiement', 'nature_remuneration', 'archive'
+            )
+        }),
+    )
 
-class TypeRevalorisationAdmin(AUFMetadataAdminMixin, reversion.VersionAdmin,
-                              BaseAdmin):
-    list_display = ('nom', '_date_modification', 'user_modification', )
-    fieldsets = AUFMetadataAdminMixin.fieldsets + (
-        (None, {'fields': ('nom', )}),
-        )
 
-    def _date_modification(self, obj):
-        return date(obj.date_modification) \
-                if obj.date_modification is not None else "(aucune)"
-    _date_modification.short_description = u'date modification'
-    _date_modification.admin_order_field = 'date_modification'
+class TypeRevalorisationAdmin(reversion.VersionAdmin,
+                              DerniereModificationAdmin, BaseAdmin):
+    ignore_duplicate_revisions = True
+    list_display = ('nom', 'derniere_modification')
+    fieldsets = (
+        (None, {'fields': ('nom',)}),
+    )
 
 
-class ValeurPointAdmin(AUFMetadataAdminMixin, reversion.VersionAdmin,
+class ValeurPointAdmin(reversion.VersionAdmin, DerniereModificationAdmin,
                        BaseAdmin):
+    ignore_duplicate_revisions = True
     list_display = (
-            '_devise_code',
-            '_devise_nom',
-            'annee',
-            'implantation',
-            'valeur',
-            '_date_modification',
-            'user_modification',
-            )
+        '_devise_code', '_devise_nom', 'annee', 'implantation',
+        'valeur', 'derniere_modification'
+    )
     list_filter = ('annee', 'devise', 'implantation__region', )
-    fieldsets = AUFMetadataAdminMixin.fieldsets + (
-        (None, {'fields': ('valeur', 'devise', 'implantation', 'annee', )}),
-        )
-
-    def _date_modification(self, obj):
-        return date(obj.date_modification) \
-                if obj.date_modification is not None else "(aucune)"
-    _date_modification.short_description = u'date modification'
-    _date_modification.admin_order_field = 'date_modification'
+    fieldsets = (
+        (None, {'fields': ('valeur', 'devise', 'implantation', 'annee')}),
+    )
 
     def _devise_code(self, obj):
         return obj.devise.code
index 0226bae..5b5fa73 100644 (file)
@@ -15,7 +15,7 @@ def bind_poste_to_graph(graph, postes_by_id):
                 (Q(date_fin__gt=date.today()) | Q(date_fin=None)) &
                 (Q(date_debut__lt=date.today()) | Q(date_debut=None)) &
                 Q(poste__id=n)
-        ).exclude(supprime=True).all()
+        ).all()
 
         if dossiers:
             employes = "\\n".join(
@@ -61,7 +61,7 @@ def organigramme_postes_cluster(cluster_filter, titre=u"Organigramme",
         Q(date_fin__gt=date.today()) | Q(date_fin=None),
         Q(date_debut__lt=date.today()) | Q(date_debut=None),
         **cluster_filter
-    ).exclude(supprime=True, responsable=None)
+    ).exclude(responsable=None)
 
     nom = titre.encode('ascii', 'xmlcharrefreplace')
     graph = pgv.AGraph(directed=True, name=nom)
index 15ee63e..3390cec 100644 (file)
@@ -3,21 +3,14 @@
 import datetime
 from datetime import date
 
+from auf.django.metadata.managers import NoDeleteManager, NoDeleteQuerySet
 from django.db import models
 from django.db.models import Q
 
-from auf.django.metadata.managers import NoDeleteManager, NoDeleteQuerySet
-
 from project.groups import get_employe_from_user
-from project.groups import grp_administrateurs, \
-                     grp_directeurs_bureau, \
-                     grp_drh, \
-                     grp_drh2, \
-                     grp_accior, \
-                     grp_abf, \
-                     grp_haute_direction, \
-                     grp_service_utilisateurs, \
-                     grp_correspondants_rh
+from project.groups import \
+        grp_drh, grp_drh2, grp_accior, grp_abf, grp_haute_direction, \
+        grp_service_utilisateurs
 
 
 class SecurityManager(models.Manager):
@@ -28,8 +21,8 @@ class SecurityManager(models.Manager):
     def ma_region_ou_service(self, user):
         """
         Filtrage des postes en fonction du user connecté (region / service)
-        On s'intéresse aussi au groupe auquel appartient le user car certains groupes
-        peuvent tout voir.
+        On s'intéresse aussi au groupe auquel appartient le user car
+        certains groupes peuvent tout voir.
         """
         employe = get_employe_from_user(user)
 
@@ -37,11 +30,12 @@ class SecurityManager(models.Manager):
         # TRAITEMENT NORMAL
         ############################################
         # REGION
-        q = Q(**{ self.prefixe_implantation : employe.implantation.region })
+        q = Q(**{self.prefixe_implantation: employe.implantation.region})
 
         # SERVICE
-        if self.prefixe_service and grp_service_utilisateurs in user.groups.all():
-            q = q | Q(**{ self.prefixe_service : employe.service})
+        if self.prefixe_service \
+           and grp_service_utilisateurs in user.groups.all():
+            q = q | Q(**{self.prefixe_service: employe.service})
 
         liste = self.get_query_set().filter(q)
 
@@ -75,7 +69,7 @@ class SecurityManager(models.Manager):
         return liste
 
 
-class PosteManager(SecurityManager, NoDeleteManager):
+class PosteManager(SecurityManager):
     """
     Chargement de tous les objets FK existants sur chaque QuerySet.
     """
@@ -83,8 +77,10 @@ class PosteManager(SecurityManager, NoDeleteManager):
     prefixe_implantation = "implantation__region"
 
     def actifs(self):
-        q_actif = Q(date_fin__gt=datetime.datetime.now()) | Q(date_fin__isnull=True)
-        return super(PosteManager, self).get_query_set().filter(q_actif)
+        return super(PosteManager, self).get_query_set().filter(
+            Q(date_fin__gt=datetime.datetime.now()) |
+            Q(date_fin__isnull=True)
+        )
 
     def ma_region_ou_service(self, user):
         return super(PosteManager, self).ma_region_ou_service(user)
@@ -106,7 +102,7 @@ class PosteManager(SecurityManager, NoDeleteManager):
                                         .select_related(*fkeys).all()
 
 
-class DossierManager(SecurityManager, NoDeleteManager):
+class DossierManager(SecurityManager):
     prefixe_service = "poste__service"
     prefixe_implantation = "poste__implantation__region"
 
@@ -123,6 +119,7 @@ class DossierManager(SecurityManager, NoDeleteManager):
 
 
 class EmployeQuerySet(NoDeleteQuerySet):
+
     def actifs(self, date_min=None, date_max=None, annee=None):
         qs = self
         if annee:
@@ -134,14 +131,17 @@ class EmployeQuerySet(NoDeleteQuerySet):
             date_min = date_max = date.today()
         if date_min:
             qs = qs.filter(
-                Q(rh_dossiers__date_fin__gte=date_min) | Q(rh_dossiers__date_fin=None)
+                Q(rh_dossiers__date_fin__gte=date_min) |
+                Q(rh_dossiers__date_fin=None)
             )
         if date_max:
             qs = qs.filter(
-                Q(rh_dossiers__date_debut__lte=date_max) | Q(rh_dossiers__date_debut=None)
+                Q(rh_dossiers__date_debut__lte=date_max) |
+                Q(rh_dossiers__date_debut=None)
             )
         return qs.distinct()
 
+
 class EmployeManager(NoDeleteManager):
     def get_query_set(self):
         return EmployeQuerySet(self.model) \
@@ -150,6 +150,7 @@ class EmployeManager(NoDeleteManager):
     def actifs(self, *args, **kwargs):
         return self.get_query_set().actifs(*args, **kwargs)
 
+
 class PosteComparaisonManager(SecurityManager):
     use_for_related_fields = True
     prefixe_implantation = "implantation__region"
@@ -160,11 +161,13 @@ class DossierComparaisonManager(SecurityManager):
     prefixe_implantation = "implantation__region"
 
 
-class DeviseManager(NoDeleteManager):
+class DeviseManager(models.Manager):
     pass
 
-class ServiceManager(NoDeleteManager):
+
+class ServiceManager(models.Manager):
     pass
 
-class TypeRemunerationManager(NoDeleteManager):
+
+class TypeRemunerationManager(models.Manager):
     pass
index 28434b6..59445ae 100644 (file)
@@ -89,10 +89,9 @@ class MasseSalariale():
                     id=custom_filter['dossier__poste__implantation']
             )
 
-        remunerations = remunerations.exclude(supprime=True) \
-                .select_related(
-                        "dossier", "dossier_employe", "dossier_poste", "type"
-                        )
+        remunerations = remunerations.select_related(
+            "dossier", "dossier_employe", "dossier_poste", "type"
+        )
 
         custom_filter = {}
         for k, v in self.custom_filter.items():
diff --git a/project/rh/migrations/0029_supprimer_objets_flag_supprime.py b/project/rh/migrations/0029_supprimer_objets_flag_supprime.py
new file mode 100644 (file)
index 0000000..d26c569
--- /dev/null
@@ -0,0 +1,569 @@
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import DataMigration
+from django.db import models
+
+class Migration(DataMigration):
+    
+    def forwards(self, orm):
+        # Supprimer les objets flaggés
+        orm.PosteComparaison.objects.filter(supprime=True).delete()
+        orm.Contrat.objects.filter(supprime=True).delete()
+        orm.PosteCommentaire.objects.filter(supprime=True).delete()
+        orm.Classement.objects.filter(supprime=True).delete()
+        orm.TypeRevalorisation.objects.filter(supprime=True).delete()
+        orm.TypeRemuneration.objects.filter(supprime=True).delete()
+        orm.TypePoste.objects.filter(supprime=True).delete()
+        orm.CategorieEmploi.objects.filter(supprime=True).delete()
+        orm.Poste.objects.filter(supprime=True).delete()
+        orm.Employe.objects.filter(supprime=True).delete()
+        orm.ValeurPoint.objects.filter(supprime=True).delete()
+        orm.DossierCommentaire.objects.filter(supprime=True).delete()
+        orm.Service.objects.filter(supprime=True).delete()
+        orm.AyantDroit.objects.filter(supprime=True).delete()
+        orm.Dossier.objects.filter(supprime=True).delete()
+        orm.TypeContrat.objects.filter(supprime=True).delete()
+        orm.AyantDroitCommentaire.objects.filter(supprime=True).delete()
+        orm.TauxChange.objects.filter(supprime=True).delete()
+        orm.OrganismeBstg.objects.filter(supprime=True).delete()
+        orm.Remuneration.objects.filter(supprime=True).delete()
+        orm.EmployeCommentaire.objects.filter(supprime=True).delete()
+        orm.Devise.objects.filter(supprime=True).delete()
+        orm.Statut.objects.filter(supprime=True).delete()
+    
+    def backwards(self, orm):
+        pass
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'managedref.bureau': {
+            'Meta': {'object_name': 'Bureau', 'db_table': "u'ref_bureau'"},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'implantation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['managedref.Implantation']", 'db_column': "'implantation'"}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'nom_court': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'nom_long': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'region': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['managedref.Region']", 'db_column': "'region'"})
+        },
+        'managedref.implantation': {
+            'Meta': {'object_name': 'Implantation', 'db_table': "u'ref_implantation'"},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'adresse_physique_bureau': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'adresse_physique_code_postal': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'adresse_physique_code_postal_avant_ville': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+            'adresse_physique_no': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'adresse_physique_pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'impl_adresse_physique'", 'to_field': "'code'", 'db_column': "'adresse_physique_pays'", 'to': "orm['managedref.Pays']"}),
+            'adresse_physique_precision': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'adresse_physique_precision_avant': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'adresse_physique_region': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'adresse_physique_rue': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'adresse_physique_ville': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'adresse_postale_boite_postale': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'adresse_postale_bureau': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'adresse_postale_code_postal': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+            'adresse_postale_code_postal_avant_ville': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+            'adresse_postale_no': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+            'adresse_postale_pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'impl_adresse_postale'", 'to_field': "'code'", 'db_column': "'adresse_postale_pays'", 'to': "orm['managedref.Pays']"}),
+            'adresse_postale_precision': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'adresse_postale_precision_avant': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'adresse_postale_region': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'adresse_postale_rue': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'adresse_postale_ville': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'bureau_rattachement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['managedref.Implantation']", 'db_column': "'bureau_rattachement'"}),
+            'code_meteo': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'commentaire': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'courriel': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'courriel_interne': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'date_extension': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_fermeture': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_inauguration': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_ouverture': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'fax': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'fax_interne': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'fuseau_horaire': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'hebergement_convention': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+            'hebergement_convention_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'hebergement_etablissement': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'modif_date': ('django.db.models.fields.DateField', [], {}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'nom_court': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'nom_long': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'region': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['managedref.Region']", 'db_column': "'region'"}),
+            'remarque': ('django.db.models.fields.TextField', [], {}),
+            'responsable_implantation': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'statut': ('django.db.models.fields.IntegerField', [], {}),
+            'telephone': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'telephone_interne': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'url': ('django.db.models.fields.URLField', [], {'max_length': '255', 'blank': 'True'})
+        },
+        'managedref.pays': {
+            'Meta': {'object_name': 'Pays', 'db_table': "u'ref_pays'"},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '2'}),
+            'code_bureau': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['managedref.Bureau']", 'to_field': "'code'", 'null': 'True', 'db_column': "'code_bureau'", 'blank': 'True'}),
+            'code_iso3': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'}),
+            'developpement': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'monnaie': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'nord_sud': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'region': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['managedref.Region']", 'db_column': "'region'"})
+        },
+        'managedref.region': {
+            'Meta': {'object_name': 'Region', 'db_table': "u'ref_region'"},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'implantation_bureau': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'gere_region'", 'null': 'True', 'db_column': "'implantation_bureau'", 'to': "orm['managedref.Implantation']"}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'})
+        },
+        'references.implantation': {
+            'Meta': {'managed': 'False', 'object_name': 'Implantation', 'db_table': "u'ref_implantation'", '_ormbases': ['managedref.Implantation']}
+        },
+        'references.pays': {
+            'Meta': {'managed': 'False', 'object_name': 'Pays', 'db_table': "u'ref_pays'", '_ormbases': ['managedref.Pays']}
+        },
+        'rh.ayantdroit': {
+            'Meta': {'object_name': 'AyantDroit'},
+            'date_creation': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'date_naissance': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'employe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ayantdroits'", 'db_column': "'employe'", 'to': "orm['rh.Employe']"}),
+            'genre': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'lien_parente': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+            'nationalite': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ayantdroits_nationalite'", 'db_column': "'nationalite'", 'to_field': "'code'", 'to': "orm['managedref.Pays']", 'blank': 'True', 'null': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'nom_affichage': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'prenom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'supprime': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"})
+        },
+        'rh.ayantdroitcommentaire': {
+            'Meta': {'object_name': 'AyantDroitCommentaire'},
+            'ayant_droit': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'commentaires'", 'db_column': "'ayant_droit'", 'to': "orm['rh.AyantDroit']"}),
+            'date_creation': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'owner'", 'to': "orm['auth.User']"}),
+            'supprime': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'texte': ('django.db.models.fields.TextField', [], {}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"})
+        },
+        'rh.categorieemploi': {
+            'Meta': {'object_name': 'CategorieEmploi'},
+            'date_creation': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'supprime': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"})
+        },
+        'rh.classement': {
+            'Meta': {'object_name': 'Classement'},
+            'coefficient': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+            'commentaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'date_creation': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'degre': ('django.db.models.fields.IntegerField', [], {'default': '0', 'blank': 'True'}),
+            'echelon': ('django.db.models.fields.IntegerField', [], {'default': '0', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'supprime': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"})
+        },
+        'rh.contrat': {
+            'Meta': {'object_name': 'Contrat'},
+            'date_creation': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'date_debut': ('django.db.models.fields.DateField', [], {}),
+            'date_fin': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'dossier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rh_contrats'", 'db_column': "'dossier'", 'to': "orm['rh.Dossier']"}),
+            'fichier': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'supprime': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'type_contrat': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'type_contrat'", 'to': "orm['rh.TypeContrat']"}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"})
+        },
+        'rh.devise': {
+            'Meta': {'object_name': 'Devise'},
+            'archive': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}),
+            'date_creation': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'supprime': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"})
+        },
+        'rh.dossier': {
+            'Meta': {'object_name': 'Dossier'},
+            'classement': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'classement'", 'to': "orm['rh.Classement']"}),
+            'date_creation': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'date_debut': ('django.db.models.fields.DateField', [], {}),
+            'date_fin': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'employe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rh_dossiers'", 'db_column': "'employe'", 'to': "orm['rh.Employe']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'organisme_bstg': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'organisme_bstg'", 'to': "orm['rh.OrganismeBstg']"}),
+            'poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rh_dossiers'", 'db_column': "'poste'", 'to': "orm['rh.Poste']"}),
+            'principal': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'regime_travail': ('django.db.models.fields.DecimalField', [], {'default': "'100.00'", 'null': 'True', 'max_digits': '12', 'decimal_places': '2'}),
+            'regime_travail_nb_heure_semaine': ('django.db.models.fields.DecimalField', [], {'default': "'35.00'", 'null': 'True', 'max_digits': '12', 'decimal_places': '2'}),
+            'remplacement': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'remplacement_de': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['rh.Dossier']"}),
+            'statut': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'to': "orm['rh.Statut']"}),
+            'statut_residence': ('django.db.models.fields.CharField', [], {'default': "'local'", 'max_length': '10', 'null': 'True'}),
+            'supprime': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"})
+        },
+        'rh.dossiercommentaire': {
+            'Meta': {'object_name': 'DossierCommentaire'},
+            'date_creation': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'dossier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'commentaires'", 'db_column': "'dossier'", 'to': "orm['rh.Dossier']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'owner'", 'to': "orm['auth.User']"}),
+            'supprime': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'texte': ('django.db.models.fields.TextField', [], {}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"})
+        },
+        'rh.dossiercomparaison': {
+            'Meta': {'object_name': 'DossierComparaison'},
+            'devise': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['rh.Devise']"}),
+            'dossier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rh_comparaisons'", 'to': "orm['rh.Dossier']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'implantation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['managedref.Implantation']"}),
+            'montant': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+            'personne': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'poste': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'})
+        },
+        'rh.dossierpiece': {
+            'Meta': {'object_name': 'DossierPiece'},
+            'dossier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rh_dossierpieces'", 'db_column': "'dossier'", 'to': "orm['rh.Dossier']"}),
+            'fichier': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh.employe': {
+            'Meta': {'object_name': 'Employe'},
+            'adresse': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'code_postal': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'date_creation': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'date_entree': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'date_naissance': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'genre': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nationalite': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'employes_nationalite'", 'db_column': "'nationalite'", 'to_field': "'code'", 'to': "orm['managedref.Pays']", 'blank': 'True', 'null': 'True'}),
+            'nb_postes': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'nom_affichage': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'employes'", 'db_column': "'pays'", 'to_field': "'code'", 'to': "orm['managedref.Pays']", 'blank': 'True', 'null': 'True'}),
+            'prenom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'province': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'situation_famille': ('django.db.models.fields.CharField', [], {'max_length': '1', 'null': 'True', 'blank': 'True'}),
+            'supprime': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'tel_cellulaire': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'tel_domicile': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"}),
+            'ville': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'})
+        },
+        'rh.employecommentaire': {
+            'Meta': {'object_name': 'EmployeCommentaire'},
+            'date_creation': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'employe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'commentaires'", 'db_column': "'employe'", 'to': "orm['rh.Employe']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'owner'", 'to': "orm['auth.User']"}),
+            'supprime': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'texte': ('django.db.models.fields.TextField', [], {}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"})
+        },
+        'rh.employepiece': {
+            'Meta': {'object_name': 'EmployePiece'},
+            'employe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'pieces'", 'db_column': "'employe'", 'to': "orm['rh.Employe']"}),
+            'fichier': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh.familleprofessionnelle': {
+            'Meta': {'object_name': 'FamilleProfessionnelle'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'rh.organismebstg': {
+            'Meta': {'object_name': 'OrganismeBstg'},
+            'date_creation': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'organismes_bstg'", 'db_column': "'pays'", 'to_field': "'code'", 'to': "orm['managedref.Pays']", 'blank': 'True', 'null': 'True'}),
+            'supprime': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"})
+        },
+        'rh.poste': {
+            'Meta': {'object_name': 'Poste'},
+            'appel': ('django.db.models.fields.CharField', [], {'default': "'interne'", 'max_length': '10', 'null': 'True'}),
+            'autre_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'autre_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'classement_max': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'classement_max'", 'to': "orm['rh.Classement']"}),
+            'classement_min': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'classement_min'", 'to': "orm['rh.Classement']"}),
+            'comp_autre_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_autre_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_fonctionpub_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_fonctionpub_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_locale_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_locale_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_ong_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_ong_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_universite_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_universite_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'date_creation': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'date_debut': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_fin': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'devise_comparaison': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'devise_comparaison'", 'to': "orm['rh.Devise']"}),
+            'devise_max': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'db_column': "'devise_max'", 'to': "orm['rh.Devise']"}),
+            'devise_min': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'db_column': "'devise_min'", 'to': "orm['rh.Devise']"}),
+            'expatrie': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'implantation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'implantation'", 'to': "orm['managedref.Implantation']"}),
+            'indemn_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'indemn_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'justification': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'local': ('django.db.models.fields.NullBooleanField', [], {'default': 'True', 'null': 'True', 'blank': 'True'}),
+            'mise_a_disposition': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'nom_feminin': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}),
+            'regime_travail': ('django.db.models.fields.DecimalField', [], {'default': "'100.00'", 'null': 'True', 'max_digits': '12', 'decimal_places': '2'}),
+            'regime_travail_nb_heure_semaine': ('django.db.models.fields.DecimalField', [], {'default': "'35.00'", 'null': 'True', 'max_digits': '12', 'decimal_places': '2'}),
+            'responsable': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'db_column': "'responsable'", 'to': "orm['rh.Poste']"}),
+            'salaire_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'salaire_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'service': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'db_column': "'service'", 'to': "orm['rh.Service']"}),
+            'supprime': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'type_poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'db_column': "'type_poste'", 'to': "orm['rh.TypePoste']"}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"}),
+            'vacant': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+            'valeur_point_max': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'valeur_point_max'", 'to': "orm['rh.ValeurPoint']"}),
+            'valeur_point_min': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'valeur_point_min'", 'to': "orm['rh.ValeurPoint']"})
+        },
+        'rh.postecommentaire': {
+            'Meta': {'object_name': 'PosteCommentaire'},
+            'date_creation': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'owner'", 'to': "orm['auth.User']"}),
+            'poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'commentaires'", 'db_column': "'poste'", 'to': "orm['rh.Poste']"}),
+            'supprime': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'texte': ('django.db.models.fields.TextField', [], {}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"})
+        },
+        'rh.postecomparaison': {
+            'Meta': {'object_name': 'PosteComparaison'},
+            'date_creation': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'devise': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['rh.Devise']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'implantation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['managedref.Implantation']"}),
+            'montant': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rh_comparaisons_internes'", 'to': "orm['rh.Poste']"}),
+            'supprime': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"})
+        },
+        'rh.postefinancement': {
+            'Meta': {'object_name': 'PosteFinancement'},
+            'commentaire': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rh_financements'", 'db_column': "'poste'", 'to': "orm['rh.Poste']"}),
+            'pourcentage': ('django.db.models.fields.DecimalField', [], {'max_digits': '12', 'decimal_places': '2'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '1'})
+        },
+        'rh.postepiece': {
+            'Meta': {'object_name': 'PostePiece'},
+            'fichier': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rh_pieces'", 'db_column': "'poste'", 'to': "orm['rh.Poste']"})
+        },
+        'rh.remuneration': {
+            'Meta': {'object_name': 'Remuneration'},
+            'commentaire': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'date_creation': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'date_debut': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_fin': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'devise': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'devise'", 'to': "orm['rh.Devise']"}),
+            'dossier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rh_remunerations'", 'db_column': "'dossier'", 'to': "orm['rh.Dossier']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'montant': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'supprime': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'type'", 'to': "orm['rh.TypeRemuneration']"}),
+            'type_revalorisation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'type_revalorisation'", 'to': "orm['rh.TypeRevalorisation']"}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"})
+        },
+        'rh.responsableimplantation': {
+            'Meta': {'object_name': 'ResponsableImplantation'},
+            'employe': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'employe'", 'to': "orm['rh.Employe']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'implantation': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'responsable'", 'unique': 'True', 'db_column': "'implantation'", 'to': "orm['managedref.Implantation']"})
+        },
+        'rh.responsableimplantationproxy': {
+            'Meta': {'object_name': 'ResponsableImplantationProxy', 'db_table': "u'ref_implantation'", '_ormbases': ['references.Implantation']}
+        },
+        'rh.service': {
+            'Meta': {'object_name': 'Service'},
+            'archive': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'date_creation': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'supprime': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"})
+        },
+        'rh.statut': {
+            'Meta': {'object_name': 'Statut'},
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '25'}),
+            'date_creation': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'supprime': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"})
+        },
+        'rh.tauxchange': {
+            'Meta': {'object_name': 'TauxChange'},
+            'annee': ('django.db.models.fields.IntegerField', [], {}),
+            'date_creation': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'devise': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh.Devise']", 'db_column': "'devise'"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'supprime': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'taux': ('django.db.models.fields.FloatField', [], {}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"})
+        },
+        'rh.typecontrat': {
+            'Meta': {'object_name': 'TypeContrat'},
+            'date_creation': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'nom_long': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'supprime': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"})
+        },
+        'rh.typeposte': {
+            'Meta': {'object_name': 'TypePoste'},
+            'categorie_emploi': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'categorie_emploi'", 'to': "orm['rh.CategorieEmploi']"}),
+            'date_creation': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'famille_professionnelle': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'types_de_poste'", 'null': 'True', 'to': "orm['rh.FamilleProfessionnelle']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_responsable': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'nom_feminin': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'supprime': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"})
+        },
+        'rh.typeremuneration': {
+            'Meta': {'object_name': 'TypeRemuneration'},
+            'archive': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'date_creation': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nature_remuneration': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'supprime': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'type_paiement': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"})
+        },
+        'rh.typerevalorisation': {
+            'Meta': {'object_name': 'TypeRevalorisation'},
+            'date_creation': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'supprime': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"})
+        },
+        'rh.valeurpoint': {
+            'Meta': {'object_name': 'ValeurPoint'},
+            'annee': ('django.db.models.fields.IntegerField', [], {}),
+            'date_creation': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'devise': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'devise'", 'to': "orm['rh.Devise']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'implantation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rh_valeur_point'", 'db_column': "'implantation'", 'to': "orm['managedref.Implantation']"}),
+            'supprime': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"}),
+            'valeur': ('django.db.models.fields.FloatField', [], {'null': 'True'})
+        }
+    }
+    
+    complete_apps = ['rh']
diff --git a/project/rh/migrations/0030_auto__del_field_postecomparaison_supprime__del_field_postecomparaison_.py b/project/rh/migrations/0030_auto__del_field_postecomparaison_supprime__del_field_postecomparaison_.py
new file mode 100644 (file)
index 0000000..d5b74f2
--- /dev/null
@@ -0,0 +1,1125 @@
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+class Migration(SchemaMigration):
+    
+    def forwards(self, orm):
+        
+        # Deleting field 'PosteComparaison.supprime'
+        db.delete_column('rh_postecomparaison', 'supprime')
+
+        # Deleting field 'PosteComparaison.date_creation'
+        db.delete_column('rh_postecomparaison', 'date_creation')
+
+        # Deleting field 'PosteComparaison.user_creation'
+        db.delete_column('rh_postecomparaison', 'user_creation')
+
+        # Deleting field 'PosteComparaison.user_modification'
+        db.delete_column('rh_postecomparaison', 'user_modification')
+
+        # Deleting field 'PosteComparaison.date_modification'
+        db.delete_column('rh_postecomparaison', 'date_modification')
+
+        # Deleting field 'Contrat.supprime'
+        db.delete_column('rh_contrat', 'supprime')
+
+        # Deleting field 'Contrat.date_creation'
+        db.delete_column('rh_contrat', 'date_creation')
+
+        # Deleting field 'Contrat.user_creation'
+        db.delete_column('rh_contrat', 'user_creation')
+
+        # Deleting field 'Contrat.user_modification'
+        db.delete_column('rh_contrat', 'user_modification')
+
+        # Deleting field 'Contrat.date_modification'
+        db.delete_column('rh_contrat', 'date_modification')
+
+        # Deleting field 'PosteCommentaire.supprime'
+        db.delete_column('rh_postecommentaire', 'supprime')
+
+        # Deleting field 'PosteCommentaire.user_creation'
+        db.delete_column('rh_postecommentaire', 'user_creation')
+
+        # Deleting field 'PosteCommentaire.user_modification'
+        db.delete_column('rh_postecommentaire', 'user_modification')
+
+        # Deleting field 'PosteCommentaire.date_modification'
+        db.delete_column('rh_postecommentaire', 'date_modification')
+
+        # Changing field 'PosteCommentaire.date_creation'
+        db.alter_column('rh_postecommentaire', 'date_creation', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True, null=True))
+
+        # Deleting field 'Classement.date_creation'
+        db.delete_column('rh_classement', 'date_creation')
+
+        # Deleting field 'Classement.supprime'
+        db.delete_column('rh_classement', 'supprime')
+
+        # Deleting field 'Classement.user_creation'
+        db.delete_column('rh_classement', 'user_creation')
+
+        # Deleting field 'Classement.user_modification'
+        db.delete_column('rh_classement', 'user_modification')
+
+        # Deleting field 'Classement.date_modification'
+        db.delete_column('rh_classement', 'date_modification')
+
+        # Deleting field 'TypeRevalorisation.supprime'
+        db.delete_column('rh_typerevalorisation', 'supprime')
+
+        # Deleting field 'TypeRevalorisation.user_creation'
+        db.delete_column('rh_typerevalorisation', 'user_creation')
+
+        # Deleting field 'TypeRevalorisation.user_modification'
+        db.delete_column('rh_typerevalorisation', 'user_modification')
+
+        # Deleting field 'TypeRevalorisation.date_modification'
+        db.delete_column('rh_typerevalorisation', 'date_modification')
+
+        # Deleting field 'TypeRevalorisation.date_creation'
+        db.delete_column('rh_typerevalorisation', 'date_creation')
+
+        # Deleting field 'TypeRemuneration.supprime'
+        db.delete_column('rh_typeremuneration', 'supprime')
+
+        # Deleting field 'TypeRemuneration.date_creation'
+        db.delete_column('rh_typeremuneration', 'date_creation')
+
+        # Deleting field 'TypeRemuneration.user_creation'
+        db.delete_column('rh_typeremuneration', 'user_creation')
+
+        # Deleting field 'TypeRemuneration.user_modification'
+        db.delete_column('rh_typeremuneration', 'user_modification')
+
+        # Deleting field 'TypeRemuneration.date_modification'
+        db.delete_column('rh_typeremuneration', 'date_modification')
+
+        # Deleting field 'TypePoste.supprime'
+        db.delete_column('rh_typeposte', 'supprime')
+
+        # Deleting field 'TypePoste.user_creation'
+        db.delete_column('rh_typeposte', 'user_creation')
+
+        # Deleting field 'TypePoste.user_modification'
+        db.delete_column('rh_typeposte', 'user_modification')
+
+        # Deleting field 'TypePoste.date_modification'
+        db.delete_column('rh_typeposte', 'date_modification')
+
+        # Deleting field 'TypePoste.date_creation'
+        db.delete_column('rh_typeposte', 'date_creation')
+
+        # Deleting field 'CategorieEmploi.supprime'
+        db.delete_column('rh_categorieemploi', 'supprime')
+
+        # Deleting field 'CategorieEmploi.user_creation'
+        db.delete_column('rh_categorieemploi', 'user_creation')
+
+        # Deleting field 'CategorieEmploi.user_modification'
+        db.delete_column('rh_categorieemploi', 'user_modification')
+
+        # Deleting field 'CategorieEmploi.date_modification'
+        db.delete_column('rh_categorieemploi', 'date_modification')
+
+        # Deleting field 'CategorieEmploi.date_creation'
+        db.delete_column('rh_categorieemploi', 'date_creation')
+
+        # Deleting field 'Poste.supprime'
+        db.delete_column('rh_poste', 'supprime')
+
+        # Deleting field 'Poste.date_modification'
+        db.delete_column('rh_poste', 'date_modification')
+
+        # Deleting field 'Poste.user_creation'
+        db.delete_column('rh_poste', 'user_creation')
+
+        # Deleting field 'Poste.user_modification'
+        db.delete_column('rh_poste', 'user_modification')
+
+        # Deleting field 'Poste.date_creation'
+        db.delete_column('rh_poste', 'date_creation')
+
+        # Deleting field 'Employe.supprime'
+        db.delete_column('rh_employe', 'supprime')
+
+        # Deleting field 'Employe.date_modification'
+        db.delete_column('rh_employe', 'date_modification')
+
+        # Deleting field 'Employe.user_creation'
+        db.delete_column('rh_employe', 'user_creation')
+
+        # Deleting field 'Employe.user_modification'
+        db.delete_column('rh_employe', 'user_modification')
+
+        # Deleting field 'Employe.date_creation'
+        db.delete_column('rh_employe', 'date_creation')
+
+        # Deleting field 'ValeurPoint.supprime'
+        db.delete_column('rh_valeurpoint', 'supprime')
+
+        # Deleting field 'ValeurPoint.date_creation'
+        db.delete_column('rh_valeurpoint', 'date_creation')
+
+        # Deleting field 'ValeurPoint.user_creation'
+        db.delete_column('rh_valeurpoint', 'user_creation')
+
+        # Deleting field 'ValeurPoint.date_modification'
+        db.delete_column('rh_valeurpoint', 'date_modification')
+
+        # Deleting field 'ValeurPoint.user_modification'
+        db.delete_column('rh_valeurpoint', 'user_modification')
+
+        # Deleting field 'DossierCommentaire.supprime'
+        db.delete_column('rh_dossiercommentaire', 'supprime')
+
+        # Deleting field 'DossierCommentaire.user_creation'
+        db.delete_column('rh_dossiercommentaire', 'user_creation')
+
+        # Deleting field 'DossierCommentaire.user_modification'
+        db.delete_column('rh_dossiercommentaire', 'user_modification')
+
+        # Deleting field 'DossierCommentaire.date_modification'
+        db.delete_column('rh_dossiercommentaire', 'date_modification')
+
+        # Changing field 'DossierCommentaire.date_creation'
+        db.alter_column('rh_dossiercommentaire', 'date_creation', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True, null=True))
+
+        # Deleting field 'Service.date_creation'
+        db.delete_column('rh_service', 'date_creation')
+
+        # Deleting field 'Service.supprime'
+        db.delete_column('rh_service', 'supprime')
+
+        # Deleting field 'Service.user_creation'
+        db.delete_column('rh_service', 'user_creation')
+
+        # Deleting field 'Service.user_modification'
+        db.delete_column('rh_service', 'user_modification')
+
+        # Deleting field 'Service.date_modification'
+        db.delete_column('rh_service', 'date_modification')
+
+        # Deleting field 'AyantDroit.supprime'
+        db.delete_column('rh_ayantdroit', 'supprime')
+
+        # Deleting field 'AyantDroit.user_creation'
+        db.delete_column('rh_ayantdroit', 'user_creation')
+
+        # Deleting field 'AyantDroit.user_modification'
+        db.delete_column('rh_ayantdroit', 'user_modification')
+
+        # Deleting field 'AyantDroit.date_modification'
+        db.delete_column('rh_ayantdroit', 'date_modification')
+
+        # Deleting field 'AyantDroit.date_creation'
+        db.delete_column('rh_ayantdroit', 'date_creation')
+
+        # Deleting field 'Dossier.date_creation'
+        db.delete_column('rh_dossier', 'date_creation')
+
+        # Deleting field 'Dossier.supprime'
+        db.delete_column('rh_dossier', 'supprime')
+
+        # Deleting field 'Dossier.user_creation'
+        db.delete_column('rh_dossier', 'user_creation')
+
+        # Deleting field 'Dossier.date_modification'
+        db.delete_column('rh_dossier', 'date_modification')
+
+        # Deleting field 'Dossier.user_modification'
+        db.delete_column('rh_dossier', 'user_modification')
+
+        # Deleting field 'TypeContrat.supprime'
+        db.delete_column('rh_typecontrat', 'supprime')
+
+        # Deleting field 'TypeContrat.user_creation'
+        db.delete_column('rh_typecontrat', 'user_creation')
+
+        # Deleting field 'TypeContrat.user_modification'
+        db.delete_column('rh_typecontrat', 'user_modification')
+
+        # Deleting field 'TypeContrat.date_modification'
+        db.delete_column('rh_typecontrat', 'date_modification')
+
+        # Deleting field 'TypeContrat.date_creation'
+        db.delete_column('rh_typecontrat', 'date_creation')
+
+        # Deleting field 'AyantDroitCommentaire.supprime'
+        db.delete_column('rh_ayantdroitcommentaire', 'supprime')
+
+        # Deleting field 'AyantDroitCommentaire.user_creation'
+        db.delete_column('rh_ayantdroitcommentaire', 'user_creation')
+
+        # Deleting field 'AyantDroitCommentaire.user_modification'
+        db.delete_column('rh_ayantdroitcommentaire', 'user_modification')
+
+        # Deleting field 'AyantDroitCommentaire.date_modification'
+        db.delete_column('rh_ayantdroitcommentaire', 'date_modification')
+
+        # Changing field 'AyantDroitCommentaire.date_creation'
+        db.alter_column('rh_ayantdroitcommentaire', 'date_creation', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True, null=True))
+
+        # Deleting field 'TauxChange.supprime'
+        db.delete_column('rh_tauxchange', 'supprime')
+
+        # Deleting field 'TauxChange.date_creation'
+        db.delete_column('rh_tauxchange', 'date_creation')
+
+        # Deleting field 'TauxChange.user_creation'
+        db.delete_column('rh_tauxchange', 'user_creation')
+
+        # Deleting field 'TauxChange.date_modification'
+        db.delete_column('rh_tauxchange', 'date_modification')
+
+        # Deleting field 'TauxChange.user_modification'
+        db.delete_column('rh_tauxchange', 'user_modification')
+
+        # Deleting field 'OrganismeBstg.supprime'
+        db.delete_column('rh_organismebstg', 'supprime')
+
+        # Deleting field 'OrganismeBstg.user_creation'
+        db.delete_column('rh_organismebstg', 'user_creation')
+
+        # Deleting field 'OrganismeBstg.user_modification'
+        db.delete_column('rh_organismebstg', 'user_modification')
+
+        # Deleting field 'OrganismeBstg.date_modification'
+        db.delete_column('rh_organismebstg', 'date_modification')
+
+        # Deleting field 'OrganismeBstg.date_creation'
+        db.delete_column('rh_organismebstg', 'date_creation')
+
+        # Deleting field 'Remuneration.supprime'
+        db.delete_column('rh_remuneration', 'supprime')
+
+        # Deleting field 'Remuneration.user_creation'
+        db.delete_column('rh_remuneration', 'user_creation')
+
+        # Deleting field 'Remuneration.date_creation'
+        db.delete_column('rh_remuneration', 'date_creation')
+
+        # Deleting field 'Remuneration.date_modification'
+        db.delete_column('rh_remuneration', 'date_modification')
+
+        # Deleting field 'Remuneration.user_modification'
+        db.delete_column('rh_remuneration', 'user_modification')
+
+        # Deleting field 'EmployeCommentaire.supprime'
+        db.delete_column('rh_employecommentaire', 'supprime')
+
+        # Deleting field 'EmployeCommentaire.user_creation'
+        db.delete_column('rh_employecommentaire', 'user_creation')
+
+        # Deleting field 'EmployeCommentaire.user_modification'
+        db.delete_column('rh_employecommentaire', 'user_modification')
+
+        # Deleting field 'EmployeCommentaire.date_modification'
+        db.delete_column('rh_employecommentaire', 'date_modification')
+
+        # Changing field 'EmployeCommentaire.date_creation'
+        db.alter_column('rh_employecommentaire', 'date_creation', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True, null=True))
+
+        # Deleting field 'Devise.date_creation'
+        db.delete_column('rh_devise', 'date_creation')
+
+        # Deleting field 'Devise.supprime'
+        db.delete_column('rh_devise', 'supprime')
+
+        # Deleting field 'Devise.user_creation'
+        db.delete_column('rh_devise', 'user_creation')
+
+        # Deleting field 'Devise.user_modification'
+        db.delete_column('rh_devise', 'user_modification')
+
+        # Deleting field 'Devise.date_modification'
+        db.delete_column('rh_devise', 'date_modification')
+
+        # Deleting field 'Statut.supprime'
+        db.delete_column('rh_statut', 'supprime')
+
+        # Deleting field 'Statut.user_creation'
+        db.delete_column('rh_statut', 'user_creation')
+
+        # Deleting field 'Statut.user_modification'
+        db.delete_column('rh_statut', 'user_modification')
+
+        # Deleting field 'Statut.date_modification'
+        db.delete_column('rh_statut', 'date_modification')
+
+        # Deleting field 'Statut.date_creation'
+        db.delete_column('rh_statut', 'date_creation')
+    
+    
+    def backwards(self, orm):
+        
+        # Adding field 'PosteComparaison.supprime'
+        db.add_column('rh_postecomparaison', 'supprime', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        # Adding field 'PosteComparaison.date_creation'
+        db.add_column('rh_postecomparaison', 'date_creation', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'PosteComparaison.user_creation'
+        db.add_column('rh_postecomparaison', 'user_creation', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_creation', blank=True), keep_default=False)
+
+        # Adding field 'PosteComparaison.user_modification'
+        db.add_column('rh_postecomparaison', 'user_modification', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_modification', blank=True), keep_default=False)
+
+        # Adding field 'PosteComparaison.date_modification'
+        db.add_column('rh_postecomparaison', 'date_modification', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'Contrat.supprime'
+        db.add_column('rh_contrat', 'supprime', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        # Adding field 'Contrat.date_creation'
+        db.add_column('rh_contrat', 'date_creation', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'Contrat.user_creation'
+        db.add_column('rh_contrat', 'user_creation', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_creation', blank=True), keep_default=False)
+
+        # Adding field 'Contrat.user_modification'
+        db.add_column('rh_contrat', 'user_modification', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_modification', blank=True), keep_default=False)
+
+        # Adding field 'Contrat.date_modification'
+        db.add_column('rh_contrat', 'date_modification', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'PosteCommentaire.supprime'
+        db.add_column('rh_postecommentaire', 'supprime', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        # Adding field 'PosteCommentaire.user_creation'
+        db.add_column('rh_postecommentaire', 'user_creation', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_creation', blank=True), keep_default=False)
+
+        # Adding field 'PosteCommentaire.user_modification'
+        db.add_column('rh_postecommentaire', 'user_modification', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_modification', blank=True), keep_default=False)
+
+        # Adding field 'PosteCommentaire.date_modification'
+        db.add_column('rh_postecommentaire', 'date_modification', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Changing field 'PosteCommentaire.date_creation'
+        db.alter_column('rh_postecommentaire', 'date_creation', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True))
+
+        # Adding field 'Classement.date_creation'
+        db.add_column('rh_classement', 'date_creation', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'Classement.supprime'
+        db.add_column('rh_classement', 'supprime', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        # Adding field 'Classement.user_creation'
+        db.add_column('rh_classement', 'user_creation', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_creation', blank=True), keep_default=False)
+
+        # Adding field 'Classement.user_modification'
+        db.add_column('rh_classement', 'user_modification', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_modification', blank=True), keep_default=False)
+
+        # Adding field 'Classement.date_modification'
+        db.add_column('rh_classement', 'date_modification', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'TypeRevalorisation.supprime'
+        db.add_column('rh_typerevalorisation', 'supprime', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        # Adding field 'TypeRevalorisation.user_creation'
+        db.add_column('rh_typerevalorisation', 'user_creation', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_creation', blank=True), keep_default=False)
+
+        # Adding field 'TypeRevalorisation.user_modification'
+        db.add_column('rh_typerevalorisation', 'user_modification', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_modification', blank=True), keep_default=False)
+
+        # Adding field 'TypeRevalorisation.date_modification'
+        db.add_column('rh_typerevalorisation', 'date_modification', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'TypeRevalorisation.date_creation'
+        db.add_column('rh_typerevalorisation', 'date_creation', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'TypeRemuneration.supprime'
+        db.add_column('rh_typeremuneration', 'supprime', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        # Adding field 'TypeRemuneration.date_creation'
+        db.add_column('rh_typeremuneration', 'date_creation', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'TypeRemuneration.user_creation'
+        db.add_column('rh_typeremuneration', 'user_creation', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_creation', blank=True), keep_default=False)
+
+        # Adding field 'TypeRemuneration.user_modification'
+        db.add_column('rh_typeremuneration', 'user_modification', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_modification', blank=True), keep_default=False)
+
+        # Adding field 'TypeRemuneration.date_modification'
+        db.add_column('rh_typeremuneration', 'date_modification', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'TypePoste.supprime'
+        db.add_column('rh_typeposte', 'supprime', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        # Adding field 'TypePoste.user_creation'
+        db.add_column('rh_typeposte', 'user_creation', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_creation', blank=True), keep_default=False)
+
+        # Adding field 'TypePoste.user_modification'
+        db.add_column('rh_typeposte', 'user_modification', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_modification', blank=True), keep_default=False)
+
+        # Adding field 'TypePoste.date_modification'
+        db.add_column('rh_typeposte', 'date_modification', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'TypePoste.date_creation'
+        db.add_column('rh_typeposte', 'date_creation', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'CategorieEmploi.supprime'
+        db.add_column('rh_categorieemploi', 'supprime', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        # Adding field 'CategorieEmploi.user_creation'
+        db.add_column('rh_categorieemploi', 'user_creation', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_creation', blank=True), keep_default=False)
+
+        # Adding field 'CategorieEmploi.user_modification'
+        db.add_column('rh_categorieemploi', 'user_modification', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_modification', blank=True), keep_default=False)
+
+        # Adding field 'CategorieEmploi.date_modification'
+        db.add_column('rh_categorieemploi', 'date_modification', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'CategorieEmploi.date_creation'
+        db.add_column('rh_categorieemploi', 'date_creation', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'Poste.supprime'
+        db.add_column('rh_poste', 'supprime', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        # Adding field 'Poste.date_modification'
+        db.add_column('rh_poste', 'date_modification', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'Poste.user_creation'
+        db.add_column('rh_poste', 'user_creation', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_creation', blank=True), keep_default=False)
+
+        # Adding field 'Poste.user_modification'
+        db.add_column('rh_poste', 'user_modification', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_modification', blank=True), keep_default=False)
+
+        # Adding field 'Poste.date_creation'
+        db.add_column('rh_poste', 'date_creation', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'Employe.supprime'
+        db.add_column('rh_employe', 'supprime', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        # Adding field 'Employe.date_modification'
+        db.add_column('rh_employe', 'date_modification', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'Employe.user_creation'
+        db.add_column('rh_employe', 'user_creation', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_creation', blank=True), keep_default=False)
+
+        # Adding field 'Employe.user_modification'
+        db.add_column('rh_employe', 'user_modification', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_modification', blank=True), keep_default=False)
+
+        # Adding field 'Employe.date_creation'
+        db.add_column('rh_employe', 'date_creation', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'ValeurPoint.supprime'
+        db.add_column('rh_valeurpoint', 'supprime', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        # Adding field 'ValeurPoint.date_creation'
+        db.add_column('rh_valeurpoint', 'date_creation', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'ValeurPoint.user_creation'
+        db.add_column('rh_valeurpoint', 'user_creation', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_creation', blank=True), keep_default=False)
+
+        # Adding field 'ValeurPoint.date_modification'
+        db.add_column('rh_valeurpoint', 'date_modification', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'ValeurPoint.user_modification'
+        db.add_column('rh_valeurpoint', 'user_modification', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_modification', blank=True), keep_default=False)
+
+        # Adding field 'DossierCommentaire.supprime'
+        db.add_column('rh_dossiercommentaire', 'supprime', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        # Adding field 'DossierCommentaire.user_creation'
+        db.add_column('rh_dossiercommentaire', 'user_creation', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_creation', blank=True), keep_default=False)
+
+        # Adding field 'DossierCommentaire.user_modification'
+        db.add_column('rh_dossiercommentaire', 'user_modification', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_modification', blank=True), keep_default=False)
+
+        # Adding field 'DossierCommentaire.date_modification'
+        db.add_column('rh_dossiercommentaire', 'date_modification', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Changing field 'DossierCommentaire.date_creation'
+        db.alter_column('rh_dossiercommentaire', 'date_creation', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True))
+
+        # Adding field 'Service.date_creation'
+        db.add_column('rh_service', 'date_creation', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'Service.supprime'
+        db.add_column('rh_service', 'supprime', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        # Adding field 'Service.user_creation'
+        db.add_column('rh_service', 'user_creation', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_creation', blank=True), keep_default=False)
+
+        # Adding field 'Service.user_modification'
+        db.add_column('rh_service', 'user_modification', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_modification', blank=True), keep_default=False)
+
+        # Adding field 'Service.date_modification'
+        db.add_column('rh_service', 'date_modification', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'AyantDroit.supprime'
+        db.add_column('rh_ayantdroit', 'supprime', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        # Adding field 'AyantDroit.user_creation'
+        db.add_column('rh_ayantdroit', 'user_creation', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_creation', blank=True), keep_default=False)
+
+        # Adding field 'AyantDroit.user_modification'
+        db.add_column('rh_ayantdroit', 'user_modification', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_modification', blank=True), keep_default=False)
+
+        # Adding field 'AyantDroit.date_modification'
+        db.add_column('rh_ayantdroit', 'date_modification', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'AyantDroit.date_creation'
+        db.add_column('rh_ayantdroit', 'date_creation', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'Dossier.date_creation'
+        db.add_column('rh_dossier', 'date_creation', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'Dossier.supprime'
+        db.add_column('rh_dossier', 'supprime', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        # Adding field 'Dossier.user_creation'
+        db.add_column('rh_dossier', 'user_creation', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_creation', blank=True), keep_default=False)
+
+        # Adding field 'Dossier.date_modification'
+        db.add_column('rh_dossier', 'date_modification', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'Dossier.user_modification'
+        db.add_column('rh_dossier', 'user_modification', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_modification', blank=True), keep_default=False)
+
+        # Adding field 'TypeContrat.supprime'
+        db.add_column('rh_typecontrat', 'supprime', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        # Adding field 'TypeContrat.user_creation'
+        db.add_column('rh_typecontrat', 'user_creation', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_creation', blank=True), keep_default=False)
+
+        # Adding field 'TypeContrat.user_modification'
+        db.add_column('rh_typecontrat', 'user_modification', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_modification', blank=True), keep_default=False)
+
+        # Adding field 'TypeContrat.date_modification'
+        db.add_column('rh_typecontrat', 'date_modification', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'TypeContrat.date_creation'
+        db.add_column('rh_typecontrat', 'date_creation', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'AyantDroitCommentaire.supprime'
+        db.add_column('rh_ayantdroitcommentaire', 'supprime', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        # Adding field 'AyantDroitCommentaire.user_creation'
+        db.add_column('rh_ayantdroitcommentaire', 'user_creation', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_creation', blank=True), keep_default=False)
+
+        # Adding field 'AyantDroitCommentaire.user_modification'
+        db.add_column('rh_ayantdroitcommentaire', 'user_modification', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_modification', blank=True), keep_default=False)
+
+        # Adding field 'AyantDroitCommentaire.date_modification'
+        db.add_column('rh_ayantdroitcommentaire', 'date_modification', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Changing field 'AyantDroitCommentaire.date_creation'
+        db.alter_column('rh_ayantdroitcommentaire', 'date_creation', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True))
+
+        # Adding field 'TauxChange.supprime'
+        db.add_column('rh_tauxchange', 'supprime', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        # Adding field 'TauxChange.date_creation'
+        db.add_column('rh_tauxchange', 'date_creation', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'TauxChange.user_creation'
+        db.add_column('rh_tauxchange', 'user_creation', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_creation', blank=True), keep_default=False)
+
+        # Adding field 'TauxChange.date_modification'
+        db.add_column('rh_tauxchange', 'date_modification', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'TauxChange.user_modification'
+        db.add_column('rh_tauxchange', 'user_modification', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_modification', blank=True), keep_default=False)
+
+        # Adding field 'OrganismeBstg.supprime'
+        db.add_column('rh_organismebstg', 'supprime', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        # Adding field 'OrganismeBstg.user_creation'
+        db.add_column('rh_organismebstg', 'user_creation', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_creation', blank=True), keep_default=False)
+
+        # Adding field 'OrganismeBstg.user_modification'
+        db.add_column('rh_organismebstg', 'user_modification', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_modification', blank=True), keep_default=False)
+
+        # Adding field 'OrganismeBstg.date_modification'
+        db.add_column('rh_organismebstg', 'date_modification', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'OrganismeBstg.date_creation'
+        db.add_column('rh_organismebstg', 'date_creation', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'Remuneration.supprime'
+        db.add_column('rh_remuneration', 'supprime', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        # Adding field 'Remuneration.user_creation'
+        db.add_column('rh_remuneration', 'user_creation', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_creation', blank=True), keep_default=False)
+
+        # Adding field 'Remuneration.date_creation'
+        db.add_column('rh_remuneration', 'date_creation', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'Remuneration.date_modification'
+        db.add_column('rh_remuneration', 'date_modification', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'Remuneration.user_modification'
+        db.add_column('rh_remuneration', 'user_modification', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_modification', blank=True), keep_default=False)
+
+        # Adding field 'EmployeCommentaire.supprime'
+        db.add_column('rh_employecommentaire', 'supprime', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        # Adding field 'EmployeCommentaire.user_creation'
+        db.add_column('rh_employecommentaire', 'user_creation', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_creation', blank=True), keep_default=False)
+
+        # Adding field 'EmployeCommentaire.user_modification'
+        db.add_column('rh_employecommentaire', 'user_modification', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_modification', blank=True), keep_default=False)
+
+        # Adding field 'EmployeCommentaire.date_modification'
+        db.add_column('rh_employecommentaire', 'date_modification', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Changing field 'EmployeCommentaire.date_creation'
+        db.alter_column('rh_employecommentaire', 'date_creation', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True))
+
+        # Adding field 'Devise.date_creation'
+        db.add_column('rh_devise', 'date_creation', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'Devise.supprime'
+        db.add_column('rh_devise', 'supprime', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        # Adding field 'Devise.user_creation'
+        db.add_column('rh_devise', 'user_creation', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_creation', blank=True), keep_default=False)
+
+        # Adding field 'Devise.user_modification'
+        db.add_column('rh_devise', 'user_modification', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_modification', blank=True), keep_default=False)
+
+        # Adding field 'Devise.date_modification'
+        db.add_column('rh_devise', 'date_modification', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'Statut.supprime'
+        db.add_column('rh_statut', 'supprime', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+        # Adding field 'Statut.user_creation'
+        db.add_column('rh_statut', 'user_creation', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_creation', blank=True), keep_default=False)
+
+        # Adding field 'Statut.user_modification'
+        db.add_column('rh_statut', 'user_modification', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, to=orm['auth.User'], db_column='user_modification', blank=True), keep_default=False)
+
+        # Adding field 'Statut.date_modification'
+        db.add_column('rh_statut', 'date_modification', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+
+        # Adding field 'Statut.date_creation'
+        db.add_column('rh_statut', 'date_creation', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True), keep_default=False)
+    
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'managedref.bureau': {
+            'Meta': {'object_name': 'Bureau', 'db_table': "u'ref_bureau'"},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'implantation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['managedref.Implantation']", 'db_column': "'implantation'"}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'nom_court': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'nom_long': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'region': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['managedref.Region']", 'db_column': "'region'"})
+        },
+        'managedref.implantation': {
+            'Meta': {'object_name': 'Implantation', 'db_table': "u'ref_implantation'"},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'adresse_physique_bureau': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'adresse_physique_code_postal': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'adresse_physique_code_postal_avant_ville': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+            'adresse_physique_no': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'adresse_physique_pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'impl_adresse_physique'", 'to_field': "'code'", 'db_column': "'adresse_physique_pays'", 'to': "orm['managedref.Pays']"}),
+            'adresse_physique_precision': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'adresse_physique_precision_avant': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'adresse_physique_region': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'adresse_physique_rue': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'adresse_physique_ville': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'adresse_postale_boite_postale': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'adresse_postale_bureau': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'adresse_postale_code_postal': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+            'adresse_postale_code_postal_avant_ville': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+            'adresse_postale_no': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+            'adresse_postale_pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'impl_adresse_postale'", 'to_field': "'code'", 'db_column': "'adresse_postale_pays'", 'to': "orm['managedref.Pays']"}),
+            'adresse_postale_precision': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'adresse_postale_precision_avant': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'adresse_postale_region': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'adresse_postale_rue': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'adresse_postale_ville': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'bureau_rattachement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['managedref.Implantation']", 'db_column': "'bureau_rattachement'"}),
+            'code_meteo': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'commentaire': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'courriel': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'courriel_interne': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'date_extension': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_fermeture': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_inauguration': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_ouverture': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'fax': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'fax_interne': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'fuseau_horaire': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'hebergement_convention': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+            'hebergement_convention_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'hebergement_etablissement': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'modif_date': ('django.db.models.fields.DateField', [], {}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'nom_court': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'nom_long': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'region': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['managedref.Region']", 'db_column': "'region'"}),
+            'remarque': ('django.db.models.fields.TextField', [], {}),
+            'responsable_implantation': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'statut': ('django.db.models.fields.IntegerField', [], {}),
+            'telephone': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'telephone_interne': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'url': ('django.db.models.fields.URLField', [], {'max_length': '255', 'blank': 'True'})
+        },
+        'managedref.pays': {
+            'Meta': {'object_name': 'Pays', 'db_table': "u'ref_pays'"},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '2'}),
+            'code_bureau': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['managedref.Bureau']", 'to_field': "'code'", 'null': 'True', 'db_column': "'code_bureau'", 'blank': 'True'}),
+            'code_iso3': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'}),
+            'developpement': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'monnaie': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'nord_sud': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'region': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['managedref.Region']", 'db_column': "'region'"})
+        },
+        'managedref.region': {
+            'Meta': {'object_name': 'Region', 'db_table': "u'ref_region'"},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'implantation_bureau': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'gere_region'", 'null': 'True', 'db_column': "'implantation_bureau'", 'to': "orm['managedref.Implantation']"}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255', 'db_index': 'True'})
+        },
+        'references.implantation': {
+            'Meta': {'managed': 'False', 'object_name': 'Implantation', 'db_table': "u'ref_implantation'", '_ormbases': ['managedref.Implantation']}
+        },
+        'references.pays': {
+            'Meta': {'managed': 'False', 'object_name': 'Pays', 'db_table': "u'ref_pays'", '_ormbases': ['managedref.Pays']}
+        },
+        'rh.ayantdroit': {
+            'Meta': {'object_name': 'AyantDroit'},
+            'date_naissance': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'employe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ayantdroits'", 'db_column': "'employe'", 'to': "orm['rh.Employe']"}),
+            'genre': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'lien_parente': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+            'nationalite': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ayantdroits_nationalite'", 'db_column': "'nationalite'", 'to_field': "'code'", 'to': "orm['managedref.Pays']", 'blank': 'True', 'null': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'nom_affichage': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'prenom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh.ayantdroitcommentaire': {
+            'Meta': {'object_name': 'AyantDroitCommentaire'},
+            'ayant_droit': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'commentaires'", 'db_column': "'ayant_droit'", 'to': "orm['rh.AyantDroit']"}),
+            'date_creation': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'owner'", 'to': "orm['auth.User']"}),
+            'texte': ('django.db.models.fields.TextField', [], {})
+        },
+        'rh.categorieemploi': {
+            'Meta': {'object_name': 'CategorieEmploi'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh.classement': {
+            'Meta': {'object_name': 'Classement'},
+            'coefficient': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+            'commentaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'degre': ('django.db.models.fields.IntegerField', [], {'default': '0', 'blank': 'True'}),
+            'echelon': ('django.db.models.fields.IntegerField', [], {'default': '0', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '10'})
+        },
+        'rh.contrat': {
+            'Meta': {'object_name': 'Contrat'},
+            'date_debut': ('django.db.models.fields.DateField', [], {}),
+            'date_fin': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'dossier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rh_contrats'", 'db_column': "'dossier'", 'to': "orm['rh.Dossier']"}),
+            'fichier': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'type_contrat': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'type_contrat'", 'to': "orm['rh.TypeContrat']"})
+        },
+        'rh.devise': {
+            'Meta': {'object_name': 'Devise'},
+            'archive': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh.dossier': {
+            'Meta': {'object_name': 'Dossier'},
+            'classement': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'classement'", 'to': "orm['rh.Classement']"}),
+            'date_debut': ('django.db.models.fields.DateField', [], {}),
+            'date_fin': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'employe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rh_dossiers'", 'db_column': "'employe'", 'to': "orm['rh.Employe']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'organisme_bstg': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'organisme_bstg'", 'to': "orm['rh.OrganismeBstg']"}),
+            'poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rh_dossiers'", 'db_column': "'poste'", 'to': "orm['rh.Poste']"}),
+            'principal': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'regime_travail': ('django.db.models.fields.DecimalField', [], {'default': "'100.00'", 'null': 'True', 'max_digits': '12', 'decimal_places': '2'}),
+            'regime_travail_nb_heure_semaine': ('django.db.models.fields.DecimalField', [], {'default': "'35.00'", 'null': 'True', 'max_digits': '12', 'decimal_places': '2'}),
+            'remplacement': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'remplacement_de': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['rh.Dossier']"}),
+            'statut': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'to': "orm['rh.Statut']"}),
+            'statut_residence': ('django.db.models.fields.CharField', [], {'default': "'local'", 'max_length': '10', 'null': 'True'})
+        },
+        'rh.dossiercommentaire': {
+            'Meta': {'object_name': 'DossierCommentaire'},
+            'date_creation': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'dossier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'commentaires'", 'db_column': "'dossier'", 'to': "orm['rh.Dossier']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'owner'", 'to': "orm['auth.User']"}),
+            'texte': ('django.db.models.fields.TextField', [], {})
+        },
+        'rh.dossiercomparaison': {
+            'Meta': {'object_name': 'DossierComparaison'},
+            'devise': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['rh.Devise']"}),
+            'dossier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rh_comparaisons'", 'to': "orm['rh.Dossier']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'implantation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['managedref.Implantation']"}),
+            'montant': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+            'personne': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'poste': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'})
+        },
+        'rh.dossierpiece': {
+            'Meta': {'object_name': 'DossierPiece'},
+            'dossier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rh_dossierpieces'", 'db_column': "'dossier'", 'to': "orm['rh.Dossier']"}),
+            'fichier': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh.employe': {
+            'Meta': {'object_name': 'Employe'},
+            'adresse': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'code_postal': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'date_entree': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_naissance': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'genre': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nationalite': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'employes_nationalite'", 'db_column': "'nationalite'", 'to_field': "'code'", 'to': "orm['managedref.Pays']", 'blank': 'True', 'null': 'True'}),
+            'nb_postes': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'nom_affichage': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'employes'", 'db_column': "'pays'", 'to_field': "'code'", 'to': "orm['managedref.Pays']", 'blank': 'True', 'null': 'True'}),
+            'prenom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'province': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'situation_famille': ('django.db.models.fields.CharField', [], {'max_length': '1', 'null': 'True', 'blank': 'True'}),
+            'tel_cellulaire': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'tel_domicile': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'ville': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'})
+        },
+        'rh.employecommentaire': {
+            'Meta': {'object_name': 'EmployeCommentaire'},
+            'date_creation': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'employe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'commentaires'", 'db_column': "'employe'", 'to': "orm['rh.Employe']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'owner'", 'to': "orm['auth.User']"}),
+            'texte': ('django.db.models.fields.TextField', [], {})
+        },
+        'rh.employepiece': {
+            'Meta': {'object_name': 'EmployePiece'},
+            'employe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'pieces'", 'db_column': "'employe'", 'to': "orm['rh.Employe']"}),
+            'fichier': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh.familleprofessionnelle': {
+            'Meta': {'object_name': 'FamilleProfessionnelle'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'rh.organismebstg': {
+            'Meta': {'object_name': 'OrganismeBstg'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'organismes_bstg'", 'db_column': "'pays'", 'to_field': "'code'", 'to': "orm['managedref.Pays']", 'blank': 'True', 'null': 'True'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '10'})
+        },
+        'rh.poste': {
+            'Meta': {'object_name': 'Poste'},
+            'appel': ('django.db.models.fields.CharField', [], {'default': "'interne'", 'max_length': '10', 'null': 'True'}),
+            'autre_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'autre_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'classement_max': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'classement_max'", 'to': "orm['rh.Classement']"}),
+            'classement_min': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'classement_min'", 'to': "orm['rh.Classement']"}),
+            'comp_autre_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_autre_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_fonctionpub_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_fonctionpub_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_locale_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_locale_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_ong_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_ong_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_universite_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_universite_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'date_debut': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_fin': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'devise_comparaison': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'devise_comparaison'", 'to': "orm['rh.Devise']"}),
+            'devise_max': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'db_column': "'devise_max'", 'to': "orm['rh.Devise']"}),
+            'devise_min': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'db_column': "'devise_min'", 'to': "orm['rh.Devise']"}),
+            'expatrie': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'implantation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'implantation'", 'to': "orm['managedref.Implantation']"}),
+            'indemn_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'indemn_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'justification': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'local': ('django.db.models.fields.NullBooleanField', [], {'default': 'True', 'null': 'True', 'blank': 'True'}),
+            'mise_a_disposition': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'nom_feminin': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}),
+            'regime_travail': ('django.db.models.fields.DecimalField', [], {'default': "'100.00'", 'null': 'True', 'max_digits': '12', 'decimal_places': '2'}),
+            'regime_travail_nb_heure_semaine': ('django.db.models.fields.DecimalField', [], {'default': "'35.00'", 'null': 'True', 'max_digits': '12', 'decimal_places': '2'}),
+            'responsable': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'db_column': "'responsable'", 'to': "orm['rh.Poste']"}),
+            'salaire_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'salaire_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'service': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'db_column': "'service'", 'to': "orm['rh.Service']"}),
+            'type_poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'db_column': "'type_poste'", 'to': "orm['rh.TypePoste']"}),
+            'vacant': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+            'valeur_point_max': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'valeur_point_max'", 'to': "orm['rh.ValeurPoint']"}),
+            'valeur_point_min': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'valeur_point_min'", 'to': "orm['rh.ValeurPoint']"})
+        },
+        'rh.postecommentaire': {
+            'Meta': {'object_name': 'PosteCommentaire'},
+            'date_creation': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'owner'", 'to': "orm['auth.User']"}),
+            'poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'commentaires'", 'db_column': "'poste'", 'to': "orm['rh.Poste']"}),
+            'texte': ('django.db.models.fields.TextField', [], {})
+        },
+        'rh.postecomparaison': {
+            'Meta': {'object_name': 'PosteComparaison'},
+            'devise': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['rh.Devise']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'implantation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['managedref.Implantation']"}),
+            'montant': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rh_comparaisons_internes'", 'to': "orm['rh.Poste']"})
+        },
+        'rh.postefinancement': {
+            'Meta': {'object_name': 'PosteFinancement'},
+            'commentaire': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rh_financements'", 'db_column': "'poste'", 'to': "orm['rh.Poste']"}),
+            'pourcentage': ('django.db.models.fields.DecimalField', [], {'max_digits': '12', 'decimal_places': '2'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '1'})
+        },
+        'rh.postepiece': {
+            'Meta': {'object_name': 'PostePiece'},
+            'fichier': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rh_pieces'", 'db_column': "'poste'", 'to': "orm['rh.Poste']"})
+        },
+        'rh.remuneration': {
+            'Meta': {'object_name': 'Remuneration'},
+            'commentaire': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'date_debut': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_fin': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'devise': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'devise'", 'to': "orm['rh.Devise']"}),
+            'dossier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rh_remunerations'", 'db_column': "'dossier'", 'to': "orm['rh.Dossier']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'montant': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'type'", 'to': "orm['rh.TypeRemuneration']"}),
+            'type_revalorisation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'type_revalorisation'", 'to': "orm['rh.TypeRevalorisation']"})
+        },
+        'rh.responsableimplantation': {
+            'Meta': {'object_name': 'ResponsableImplantation'},
+            'employe': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'employe'", 'to': "orm['rh.Employe']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'implantation': ('django.db.models.fields.related.OneToOneField', [], {'related_name': "'responsable'", 'unique': 'True', 'db_column': "'implantation'", 'to': "orm['managedref.Implantation']"})
+        },
+        'rh.responsableimplantationproxy': {
+            'Meta': {'object_name': 'ResponsableImplantationProxy', 'db_table': "u'ref_implantation'", '_ormbases': ['references.Implantation']}
+        },
+        'rh.service': {
+            'Meta': {'object_name': 'Service'},
+            'archive': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh.statut': {
+            'Meta': {'object_name': 'Statut'},
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '25'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh.tauxchange': {
+            'Meta': {'object_name': 'TauxChange'},
+            'annee': ('django.db.models.fields.IntegerField', [], {}),
+            'devise': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh.Devise']", 'db_column': "'devise'"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'taux': ('django.db.models.fields.FloatField', [], {})
+        },
+        'rh.typecontrat': {
+            'Meta': {'object_name': 'TypeContrat'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'nom_long': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh.typeposte': {
+            'Meta': {'object_name': 'TypePoste'},
+            'categorie_emploi': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'categorie_emploi'", 'to': "orm['rh.CategorieEmploi']"}),
+            'famille_professionnelle': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'types_de_poste'", 'null': 'True', 'to': "orm['rh.FamilleProfessionnelle']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_responsable': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'nom_feminin': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh.typeremuneration': {
+            'Meta': {'object_name': 'TypeRemuneration'},
+            'archive': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nature_remuneration': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'type_paiement': ('django.db.models.fields.CharField', [], {'max_length': '30'})
+        },
+        'rh.typerevalorisation': {
+            'Meta': {'object_name': 'TypeRevalorisation'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh.valeurpoint': {
+            'Meta': {'object_name': 'ValeurPoint'},
+            'annee': ('django.db.models.fields.IntegerField', [], {}),
+            'devise': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'devise'", 'to': "orm['rh.Devise']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'implantation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rh_valeur_point'", 'db_column': "'implantation'", 'to': "orm['managedref.Implantation']"}),
+            'valeur': ('django.db.models.fields.FloatField', [], {'null': 'True'})
+        }
+    }
+    
+    complete_apps = ['rh']
index d2771ba..07e702f 100644 (file)
@@ -7,8 +7,6 @@ from decimal import Decimal
 import reversion
 from auf.django.emploi.models import \
         GENRE_CHOICES, SITUATION_CHOICES  # devrait plutot être dans references
-from auf.django.metadata.models import AUFMetadata
-from auf.django.metadata.managers import NoDeleteManager
 from auf.django.references import models as ref
 from django.core.files.storage import FileSystemStorage
 from django.db import models
@@ -109,12 +107,15 @@ class DevisableMixin(object):
         return int(round(float(self.montant) * float(taux), 2))
 
 
-class Commentaire(AUFMetadata):
+class Commentaire(models.Model):
     texte = models.TextField()
     owner = models.ForeignKey(
         'auth.User', db_column='owner', related_name='+',
         verbose_name=u"Commentaire de"
     )
+    date_creation = models.DateTimeField(
+        u'date', auto_now_add=True, blank=True, null=True
+    )
 
     class Meta:
         abstract = True
@@ -132,7 +133,7 @@ POSTE_APPEL_CHOICES = (
 )
 
 
-class Poste_(AUFMetadata):
+class Poste_(models.Model):
     """
     Un Poste est un emploi (job) à combler dans une implantation.
     Un Poste peut être comblé par un Employe, auquel cas un Dossier est créé.
@@ -335,14 +336,13 @@ class Poste(Poste_):
         UTILISE pour mettre a jour le flag vacant
         """
         return [
-            d.employe for d in self.rh_dossiers
-            .filter(supprime=False)
-            .exclude(date_fin__lt=date.today())
+            d.employe
+            for d in self.rh_dossiers.exclude(date_fin__lt=date.today())
         ]
 
 reversion.register(Poste, format='xml', follow=[
     'rh_financements', 'rh_pieces', 'rh_comparaisons_internes',
-    'commentaires', 'rh_dossiers'
+    'commentaires'
 ])
 
 
@@ -412,7 +412,7 @@ class PostePiece(PostePiece_):
 reversion.register(PostePiece, format='xml')
 
 
-class PosteComparaison_(AUFMetadata, DevisableMixin):
+class PosteComparaison_(models.Model, DevisableMixin):
     """
     De la même manière qu'un dossier, un poste peut-être comparé à un autre
     poste.
@@ -440,8 +440,6 @@ class PosteComparaison(PosteComparaison_):
         Poste, related_name='rh_comparaisons_internes'
     )
 
-    objects = NoDeleteManager()
-
 reversion.register(PosteComparaison, format='xml')
 
 
@@ -455,7 +453,7 @@ reversion.register(PosteCommentaire, format='xml')
 
 ### EMPLOYÉ/PERSONNE
 
-class Employe(AUFMetadata):
+class Employe(models.Model):
     """
     Personne occupant ou ayant occupé un Poste. Un Employe aura autant de
     Dossiers qu'il occupe ou a occupé de Postes.
@@ -588,7 +586,7 @@ class Employe(AUFMetadata):
         return regions
 
 reversion.register(Employe, format='xml', follow=[
-    'pieces', 'commentaires', 'ayantdroits', 'rh_dossiers'
+    'pieces', 'commentaires', 'ayantdroits'
 ])
 
 
@@ -637,7 +635,7 @@ LIEN_PARENTE_CHOICES = (
 )
 
 
-class AyantDroit(AUFMetadata):
+class AyantDroit(models.Model):
     """
     Personne en relation avec un Employe.
     """
@@ -709,7 +707,7 @@ COMPTE_COMPTA_CHOICES = (
 )
 
 
-class Dossier_(AUFMetadata, DevisableMixin):
+class Dossier_(models.Model, DevisableMixin):
     """
     Le Dossier regroupe les informations relatives à l'occupation
     d'un Poste par un Employe. Un seul Dossier existe par Poste occupé
@@ -1073,7 +1071,7 @@ reversion.register(DossierComparaison, format='xml')
 
 ### RÉMUNÉRATION
 
-class RemunerationMixin(AUFMetadata):
+class RemunerationMixin(models.Model):
 
     # Identification
     type = models.ForeignKey(
@@ -1144,13 +1142,14 @@ reversion.register(Remuneration, format='xml')
 
 ### CONTRATS
 
-class ContratManager(NoDeleteManager):
+class ContratManager(models.Manager):
+
     def get_query_set(self):
         return super(ContratManager, self).get_query_set() \
                 .select_related('dossier', 'dossier__poste')
 
 
-class Contrat_(AUFMetadata):
+class Contrat_(models.Model):
     """
     Document juridique qui encadre la relation de travail d'un Employe
     pour un Poste particulier. Pour un Dossier (qui documente cette
@@ -1188,7 +1187,7 @@ reversion.register(Contrat, format='xml')
 
 ### RÉFÉRENCES RH
 
-class CategorieEmploi(AUFMetadata):
+class CategorieEmploi(models.Model):
     """
     Catégorie utilisée dans la gestion des Postes.
     Catégorie supérieure à TypePoste.
@@ -1223,7 +1222,7 @@ class FamilleProfessionnelle(models.Model):
 reversion.register(FamilleProfessionnelle, format='xml')
 
 
-class TypePoste(AUFMetadata):
+class TypePoste(models.Model):
     """
     Catégorie de Poste.
     """
@@ -1266,7 +1265,7 @@ NATURE_REMUNERATION_CHOICES = (
 )
 
 
-class TypeRemuneration(AUFMetadata):
+class TypeRemuneration(models.Model):
     """
     Catégorie de Remuneration.
     """
@@ -1297,7 +1296,7 @@ class TypeRemuneration(AUFMetadata):
 reversion.register(TypeRemuneration, format='xml')
 
 
-class TypeRevalorisation(AUFMetadata):
+class TypeRevalorisation(models.Model):
     """
     Justification du changement de la Remuneration.
     (Actuellement utilisé dans aucun traitement informatique.)
@@ -1315,7 +1314,7 @@ class TypeRevalorisation(AUFMetadata):
 reversion.register(TypeRevalorisation, format='xml')
 
 
-class Service(AUFMetadata):
+class Service(models.Model):
     """
     Unité administrative où les Postes sont rattachés.
     """
@@ -1345,7 +1344,7 @@ TYPE_ORGANISME_CHOICES = (
 )
 
 
-class OrganismeBstg(AUFMetadata):
+class OrganismeBstg(models.Model):
     """
     Organisation d'où provient un Employe mis à disposition (MAD) de
     ou détaché (DET) à l'AUF à titre gratuit.
@@ -1375,7 +1374,7 @@ class OrganismeBstg(AUFMetadata):
 reversion.register(OrganismeBstg, format='xml')
 
 
-class Statut(AUFMetadata):
+class Statut(models.Model):
     """
     Statut de l'Employe dans le cadre d'un Dossier particulier.
     """
@@ -1426,7 +1425,7 @@ class ClassementManager(models.Manager):
         return qs.all()
 
 
-class Classement_(AUFMetadata):
+class Classement_(models.Model):
     """
     Éléments de classement de la
     "Grille générique de classement hiérarchique".
@@ -1464,7 +1463,7 @@ class Classement(Classement_):
 reversion.register(Classement, format='xml')
 
 
-class TauxChange_(AUFMetadata):
+class TauxChange_(models.Model):
     """
     Taux de change de la devise vers l'euro (EUR)
     pour chaque année budgétaire.
@@ -1490,14 +1489,14 @@ class TauxChange(TauxChange_):
 reversion.register(TauxChange, format='xml')
 
 
-class ValeurPointManager(NoDeleteManager):
+class ValeurPointManager(models.Manager):
 
     def get_query_set(self):
         return super(ValeurPointManager, self).get_query_set() \
                 .select_related('devise', 'implantation')
 
 
-class ValeurPoint_(AUFMetadata):
+class ValeurPoint_(models.Model):
     """
     Utile pour connaître, pour un Dossier, le salaire de base théorique lié
     au classement dans la grille. La ValeurPoint s'obtient par l'implantation
@@ -1506,6 +1505,7 @@ class ValeurPoint_(AUFMetadata):
     salaire de base = coefficient * valeur du point de l'Implantation du Poste
     """
 
+    objects = models.Manager()
     actuelles = ValeurPointManager()
 
     valeur = models.FloatField(null=True)
@@ -1535,7 +1535,7 @@ class ValeurPoint(ValeurPoint_):
 reversion.register(ValeurPoint, format='xml')
 
 
-class Devise(AUFMetadata):
+class Devise(models.Model):
     """
     Devise monétaire.
     """
@@ -1556,7 +1556,7 @@ class Devise(AUFMetadata):
 reversion.register(Devise, format='xml')
 
 
-class TypeContrat(AUFMetadata):
+class TypeContrat(models.Model):
     """
     Type de contrat.
     """
index 9d2bf64..b4538ea 100644 (file)
@@ -91,7 +91,7 @@ def rapports_contrat(request):
     lookup_params = cl.purge_params(lookup_params)
     q_temporel = cl.get_q_temporel(contrats)
     q = Q(**lookup_params) & q_temporel
-    contrats = contrats.filter(q).exclude(dossier__employe__supprime=1)
+    contrats = contrats.filter(q)
 
     # tri
     if 'o' in request.GET: