remove rh_v1
authorOlivier Larchevêque <olivier.larcheveque@auf.org>
Wed, 11 Jan 2012 20:05:06 +0000 (15:05 -0500)
committerOlivier Larchevêque <olivier.larcheveque@auf.org>
Wed, 11 Jan 2012 20:05:06 +0000 (15:05 -0500)
16 files changed:
project/dae/catalogues.py
project/dae/decorators.py
project/dae/forms.py
project/dae/models.py
project/dae/views.py
project/old_rh_v1/__init__.py [new file with mode: 0644]
project/old_rh_v1/migrations/0001_initial.py [new file with mode: 0644]
project/old_rh_v1/migrations/0002_auto__chg_field_employe_nationalite__chg_field_employe_pays__chg_field.py [new file with mode: 0644]
project/old_rh_v1/migrations/0003_auto__chg_field_tauxchange_devise.py [new file with mode: 0644]
project/old_rh_v1/migrations/0004_auto__chg_field_dossier_classement__chg_field_dossier_responsable__chg.py [new file with mode: 0644]
project/old_rh_v1/migrations/__init__.py [new file with mode: 0644]
project/old_rh_v1/models.py [new file with mode: 0644]
project/rh/models.py
project/settings.py
project/utils.py [new file with mode: 0644]
project/workflow.py [new file with mode: 0644]

index 2ce242a..9474baf 100644 (file)
@@ -1,7 +1,7 @@
 # -*- encoding: utf-8 -*-
 
 from django.db.models import Q
-from rh_v1 import models as rh
+from rh import models as rh
 from utils import get_employe_from_user, is_user_dans_services_centraux
 from workflow import grp_drh
 
@@ -56,10 +56,10 @@ class Dossier(object):
     def get_query(self,q,request):
         
         employe = get_employe_from_user(request.user)
-        prefixe_implantation = 'poste1__implantation'
+        prefixe_implantation = 'poste__implantation'
 
-        q_recherche = Q(complement1__icontains=q) | \
-            Q(poste1__type_poste__nom__icontains=q) | \
+        q_recherche = Q(poste__nom__icontains=q) | \
+            Q(poste__type_poste__nom__icontains=q) | \
             Q(employe__nom__icontains=q) | \
             Q(employe__prenom__icontains=q)
 
index ac36918..5ba749d 100644 (file)
@@ -8,7 +8,7 @@ from django.http import HttpResponseRedirect
 from django.shortcuts import get_object_or_404
 from workflow import dae_groupes, ETATS_EDITABLE, ETATS_VALIDE, grp_drh
 from project.dae import models as dae
-from project.rh_v1 import models as rh
+from project.rh import models as rh
 from utils import get_employe_from_user
 
 def user_in_dae_groupes(user):
@@ -114,7 +114,7 @@ def vieux_dossier_dans_ma_region_ou_service(fn):
         dossier_id = kwargs.get('dossier_id', None)
 
         employe = get_employe_from_user(request.user)
-        prefixe_implantation = 'poste1__implantation'
+        prefixe_implantation = 'poste__implantation'
 
         #if is_user_dans_service(request.user):
         #    q_place = Q(**{ '%s' % prefixe_implantation : employe.implantation })
index 1296cc9..2e33c61 100644 (file)
@@ -9,7 +9,7 @@ from auf.django.workflow.forms import WorkflowFormMixin
 from datamaster_modeles import models as ref
 from dae import models as dae
 from utils import get_employe_from_user, is_user_dans_services_centraux
-from rh_v1 import models as rh
+from rh import models as rh
 from workflow import grp_drh, POSTE_ETATS_BOUTONS
 
 def _implantation_choices(obj, request):
@@ -33,11 +33,11 @@ def _employe_choices(obj, request):
     # SERVICE
     if is_user_dans_services_centraux(request.user):
         q_dae_region_service = Q(poste__implantation=employe.implantation)
-        q_rh_region_service = Q(implantation1=employe.implantation) | Q(implantation2=employe.implantation)
+        q_rh_region_service = Q(poste__implantation=employe.implantation)
     # REGION
     else:
         q_dae_region_service = Q(poste__implantation__region=employe.implantation.region)
-        q_rh_region_service = Q(implantation1__region=employe.implantation.region) | Q(implantation2__region=employe.implantation.region)
+        q_rh_region_service = Q(poste__implantation__region=employe.implantation.region)
     # TRAITEMENT DRH
     if grp_drh in request.user.groups.all():
         q_dae_region_service = Q()
@@ -198,7 +198,7 @@ class PosteForm(forms.ModelForm):
         if self.instance and self.instance.id is None:
             dossiers = self.instance.get_dossiers()
             if len(dossiers) > 0:
-                self.initial['service'] = dossiers[0].service_id
+                self.initial['service'] = dossiers[0].poste.service
                 self.initial['nom'] = "%s %s" % (self.initial['nom'], self.instance.get_complement_nom())
 
 
index bddc120..51e0c8d 100644 (file)
@@ -11,7 +11,7 @@ from workflow import DOSSIER_ETAT_DRH_FINALISATION, DOSSIER_ETAT_REGION_FINALISA
 from managers import DossierManager, PosteManager, PosteComparaisonManager, \
                      DossierComparaisonManager
 import datamaster_modeles.models as ref
-from rh_v1 import models as rh
+from rh import models as rh
 
 
 # Constantes
@@ -161,8 +161,7 @@ class Poste(PosteWorkflow, models.Model):
         """
         if self.id_rh is None:
             return []
-        postes = [p for p in self.id_rh.poste1.all()]
-        return sorted(postes, key=lambda poste: poste.id, reverse=True)
+        return self.id_rh.dossiers.all()
 
     def get_complement_nom(self):
         """
@@ -171,7 +170,7 @@ class Poste(PosteWorkflow, models.Model):
         """
         dossiers = self.get_dossiers()
         if len(dossiers) > 0:
-            nom = dossiers[0].complement1
+            nom = dossiers[0].poste.nom
         else:
             nom = ""
         return nom
index 959c6df..3519796 100644 (file)
@@ -38,7 +38,7 @@ from dae.decorators import redirect_interdiction, dae_groupe_requis, \
         dossier_est_modifiable, \
         poste_est_modifiable, get_contrat
 from dae.mail import send_drh_finalisation_mail
-from rh_v1 import models as rh
+from rh import models as rh
 
 
 def devises():
@@ -515,7 +515,7 @@ def dossier(request, poste_key, employe_key):
 
     # Récupérer la devise de l'implantation lié au poste
     implantation_devise = poste.get_default_devise()
-    data.update({'devise' : implantation_devise.id})
+    data.update({'devise' : implantation_devise})
 
     if poste.id_rh_id is not None:
         poste_rh = get_object_or_404(rh.Poste, pk=poste.id_rh_id)
@@ -540,7 +540,7 @@ def dossier(request, poste_key, employe_key):
 
       # récupération de l'ancien dossier rh v1 pour l'employe DAE
       try:
-          dossier_rh = rh.Dossier.objects.get(employe=employe_dae.id_rh_id, mandat_date_fin=None)
+          dossier_rh = rh.Dossier.objects.get(employe=employe_dae.id_rh_id, date_fin=None)
       except (rh.Dossier.DoesNotExist):
           dossier_rh = rh.Dossier()
 
@@ -561,7 +561,7 @@ def dossier(request, poste_key, employe_key):
       # récupération de l'ancien dossier rh v1 pour l'employe rh v1, s'il n'en a pas,
       # on en fournit un nouveau qui servira uniquement un créer un nouveau dossier DAE.
       try:
-          dossier_rh = rh.Dossier.objects.get(employe=employe_rh, mandat_date_fin=None)
+          dossier_rh = rh.Dossier.objects.get(employe=employe_rh, date_fin=None)
       except (rh.Dossier.DoesNotExist):
           dossier_rh = rh.Dossier()
       dossier = pre_filled_dossier(dossier_rh, employe_source, poste_rh)
@@ -584,16 +584,16 @@ def pre_filled_dossier(dossier_rh, employe_source, poste_rh):
             dossier.classement_anterieur = dossier_rh.classement
 
         # Récupération du salaire de base
-        remun = dossier_rh.remuneration_set.filter(type=1).order_by('-date_effective')
+        remun = dossier_rh.remunerations().filter(type=1).order_by('-date_debut')
         if remun:
             dossier.salaire_anterieur = remun[0].montant
             dossier.devise_anterieur = remun[0].devise
 
     # Récupération du titulaire précédent
     try:
-        dossiers = rh.Dossier.objects.order_by('-mandat_date_debut')
+        dossiers = rh.Dossier.objects.order_by('-date_debut')
         if poste_rh:
-            dossiers = dossiers.filter(poste1=poste_rh) | dossiers.filter(poste2=poste_rh)
+            dossiers = dossiers.filter(poste=poste_rh)
         else:
             dossiers = rh.Dossier.objects.none()
         if len(dossiers):
@@ -605,7 +605,7 @@ def pre_filled_dossier(dossier_rh, employe_source, poste_rh):
                 dossier.employe_anterieur = titulaire
                 dossier.classement_titulaire_anterieur = d.classement
                 dossier.statut_titulaire_anterieur = d.statut
-                remun = d.remuneration_set.filter(type=1).order_by('-date_effective')[0]
+                remun = d.remunerations().filter(type=1).order_by('-date_debut')[0]
                 dossier.salaire_titulaire_anterieur = remun.montant
                 dossier.devise_titulaire_anterieur = remun.devise
             except:
@@ -630,14 +630,15 @@ def dossier_resume(request, dossier_id=None):
     data = {}
     data['personne'] = unicode(dossier.employe)
     data['classement'] = dossier.classement.id
-    data['statut'] = dossier.statut.id
-    data['implantation'] = dossier.implantation1.id
-    data['poste'] = u"%s %s" % (dossier.poste1.type_poste.nom, dossier.complement1)
-    data['montant'] = dossier.get_salaire()
-    salaire = dossier.get_dernier_salaire_remun()
-    if salaire is not None:
+    if dossier.statut is not None:
+        data['statut'] = dossier.statut.id
+    data['implantation'] = dossier.poste.implantation.id
+    data['poste'] = u"%s %s" % (dossier.poste.type_poste.nom, dossier.poste.nom)
+    salaire = dossier.get_salaire()
+    data['montant'] = salaire.montant
+    if salaire.devise is not None:
         data['devise'] = salaire.devise.id
-        data['montant_euros'] = salaire.en_euros()
+        data['montant_euros'] = salaire.montant_euro()
     else:
         data['devise'] = None
         data['montant_euros'] = 0
@@ -656,7 +657,7 @@ def poste_resume(request, dossier_id=None):
         return HttpResponseGone("Ce dossier n'est pas accessible")
 
     data = {}
-    data['implantation'] = dossier.implantation1.id
+    data['implantation'] = dossier.poste.implantation.id
     data['poste'] = u"%s %s" % (dossier.poste1.type_poste.nom, dossier.complement1)
     data['montant'] = dossier.get_salaire()
     salaire = dossier.get_dernier_salaire_remun()
diff --git a/project/old_rh_v1/__init__.py b/project/old_rh_v1/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/project/old_rh_v1/migrations/0001_initial.py b/project/old_rh_v1/migrations/0001_initial.py
new file mode 100644 (file)
index 0000000..7842892
--- /dev/null
@@ -0,0 +1,553 @@
+# 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):
+        
+        # Adding model 'Employe'
+        db.create_table('rh_v1_employe', (
+            ('id', self.gf('django.db.models.fields.IntegerField')(primary_key=True)),
+            ('nom', self.gf('django.db.models.fields.CharField')(max_length=255)),
+            ('prenom', self.gf('django.db.models.fields.CharField')(max_length=255)),
+            ('nationalite', self.gf('django.db.models.fields.related.ForeignKey')(related_name='nationalite', db_column='nationalite', to=orm['datamaster_modeles.Pays'])),
+            ('date_naissance', self.gf('django.db.models.fields.DateField')(null=True, blank=True)),
+            ('genre', self.gf('django.db.models.fields.CharField')(max_length=1, null=True, blank=True)),
+            ('situation_famille', self.gf('django.db.models.fields.CharField')(max_length=1, null=True, blank=True)),
+            ('date_entree', self.gf('django.db.models.fields.DateField')(null=True, blank=True)),
+            ('tel_domicile', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True)),
+            ('tel_cellulaire', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True)),
+            ('adresse', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True)),
+            ('no_rue', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True)),
+            ('ville', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True)),
+            ('province', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True)),
+            ('code_postal', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True)),
+            ('pays', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='pays', null=True, db_column='pays', to=orm['datamaster_modeles.Pays'])),
+            ('date_creation', self.gf('django.db.models.fields.DateField')(auto_now_add=True, blank=True)),
+            ('date_maj', self.gf('django.db.models.fields.DateField')(auto_now=True, blank=True)),
+            ('commentaire', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
+        ))
+        db.send_create_signal('rh_v1', ['Employe'])
+
+        # Adding model 'Dossier'
+        db.create_table('rh_v1_dossier', (
+            ('id', self.gf('django.db.models.fields.IntegerField')(primary_key=True)),
+            ('code', self.gf('django.db.models.fields.CharField')(unique=True, max_length=10)),
+            ('employe', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['rh_v1.Employe'], db_column='employe')),
+            ('poste1', self.gf('django.db.models.fields.related.ForeignKey')(related_name='poste1', db_column='poste1', to=orm['rh_v1.Poste'])),
+            ('implantation1', self.gf('django.db.models.fields.related.ForeignKey')(related_name='implantation1', db_column='implantation1', to=orm['datamaster_modeles.Implantation'])),
+            ('complement1', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
+            ('responsable_implantation1', self.gf('django.db.models.fields.IntegerField')()),
+            ('poste2', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='poste2', null=True, db_column='poste2', to=orm['rh_v1.Poste'])),
+            ('implantation2', self.gf('django.db.models.fields.related.ForeignKey')(related_name='implantation2', db_column='implantation2', to=orm['datamaster_modeles.Implantation'])),
+            ('complement2', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
+            ('responsable_implantation2', self.gf('django.db.models.fields.IntegerField')()),
+            ('service', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['rh_v1.Service'], db_column='service')),
+            ('responsable', self.gf('django.db.models.fields.related.ForeignKey')(related_name='responsable', db_column='responsable', to=orm['rh_v1.Employe'])),
+            ('remplacement_de', self.gf('django.db.models.fields.related.ForeignKey')(related_name='remplacement_de', db_column='remplacement_de', to=orm['rh_v1.Employe'])),
+            ('type', self.gf('django.db.models.fields.CharField')(max_length=1)),
+            ('statut', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['rh_v1.Statut'], db_column='statut')),
+            ('organisme_bstg', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['rh_v1.OrganismeBstg'], db_column='organisme_bstg')),
+            ('classement', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['rh_v1.Classement'], db_column='classement')),
+            ('regime_travail', self.gf('django.db.models.fields.IntegerField')()),
+            ('mandat_date_debut', self.gf('django.db.models.fields.DateField')()),
+            ('mandat_date_fin', self.gf('django.db.models.fields.DateField')()),
+            ('contrat_date_debut', self.gf('django.db.models.fields.DateField')()),
+            ('contrat_date_fin', self.gf('django.db.models.fields.DateField')()),
+            ('type_contrat', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['rh_v1.TypeContrat'], db_column='type_contrat')),
+            ('date_creation', self.gf('django.db.models.fields.DateField')(auto_now_add=True, blank=True)),
+            ('date_maj', self.gf('django.db.models.fields.DateField')(auto_now=True, blank=True)),
+            ('commentaire', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
+        ))
+        db.send_create_signal('rh_v1', ['Dossier'])
+
+        # Adding model 'AyantDroit'
+        db.create_table('rh_v1_ayantdroit', (
+            ('id', self.gf('django.db.models.fields.IntegerField')(primary_key=True)),
+            ('nom', self.gf('django.db.models.fields.CharField')(max_length=255)),
+            ('prenom', self.gf('django.db.models.fields.CharField')(max_length=255)),
+            ('employe', self.gf('django.db.models.fields.related.ForeignKey')(related_name='employe', db_column='employe', to=orm['rh_v1.Employe'])),
+            ('lien_parente', self.gf('django.db.models.fields.CharField')(max_length=10, null=True, blank=True)),
+            ('commentaire', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
+            ('actif', self.gf('django.db.models.fields.BooleanField')(default=False)),
+        ))
+        db.send_create_signal('rh_v1', ['AyantDroit'])
+
+        # Adding model 'Remuneration'
+        db.create_table('rh_v1_remuneration', (
+            ('id', self.gf('django.db.models.fields.IntegerField')(primary_key=True)),
+            ('dossier', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['rh_v1.Dossier'], db_column='dossier')),
+            ('type', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['rh_v1.TypeRemuneration'], db_column='type')),
+            ('type_revalorisation', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['rh_v1.TypeRevalorisation'], db_column='type_revalorisation')),
+            ('montant', self.gf('django.db.models.fields.FloatField')()),
+            ('devise', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['rh_v1.Devise'], to_field='code', db_column='devise')),
+            ('date_effective', self.gf('django.db.models.fields.DateField')()),
+            ('pourcentage', self.gf('django.db.models.fields.IntegerField')()),
+            ('date_creation', self.gf('django.db.models.fields.DateField')(auto_now_add=True, blank=True)),
+            ('user_creation', self.gf('django.db.models.fields.IntegerField')()),
+            ('desactivation', self.gf('django.db.models.fields.BooleanField')(default=False)),
+            ('date_desactivation', self.gf('django.db.models.fields.DateField')()),
+            ('user_desactivation', self.gf('django.db.models.fields.IntegerField')()),
+            ('annulation', self.gf('django.db.models.fields.BooleanField')(default=False)),
+            ('date_annulation', self.gf('django.db.models.fields.DateField')()),
+            ('user_annulation', self.gf('django.db.models.fields.IntegerField')()),
+        ))
+        db.send_create_signal('rh_v1', ['Remuneration'])
+
+        # Adding model 'FamilleEmploi'
+        db.create_table('rh_v1_familleemploi', (
+            ('id', self.gf('django.db.models.fields.IntegerField')(primary_key=True)),
+            ('nom', self.gf('django.db.models.fields.CharField')(max_length=255)),
+            ('actif', self.gf('django.db.models.fields.BooleanField')(default=False)),
+        ))
+        db.send_create_signal('rh_v1', ['FamilleEmploi'])
+
+        # Adding model 'TypePoste'
+        db.create_table('rh_v1_typeposte', (
+            ('id', self.gf('django.db.models.fields.IntegerField')(primary_key=True)),
+            ('nom', self.gf('django.db.models.fields.CharField')(max_length=255)),
+            ('nom_feminin', self.gf('django.db.models.fields.CharField')(max_length=255)),
+            ('description', self.gf('django.db.models.fields.CharField')(max_length=255)),
+            ('is_responsable', self.gf('django.db.models.fields.BooleanField')(default=False)),
+            ('famille_emploi', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['rh_v1.FamilleEmploi'], db_column='famille_emploi')),
+            ('date_modification', self.gf('django.db.models.fields.DateField')(auto_now=True, blank=True)),
+            ('actif', self.gf('django.db.models.fields.BooleanField')(default=False)),
+        ))
+        db.send_create_signal('rh_v1', ['TypePoste'])
+
+        # Adding model 'TypeRemuneration'
+        db.create_table('rh_v1_typeremuneration', (
+            ('id', self.gf('django.db.models.fields.IntegerField')(primary_key=True)),
+            ('nom', self.gf('django.db.models.fields.CharField')(max_length=255)),
+            ('type_paiement', self.gf('django.db.models.fields.CharField')(max_length=30)),
+            ('nature_remuneration', self.gf('django.db.models.fields.CharField')(max_length=30)),
+            ('actif', self.gf('django.db.models.fields.BooleanField')(default=False)),
+        ))
+        db.send_create_signal('rh_v1', ['TypeRemuneration'])
+
+        # Adding model 'TypeRevalorisation'
+        db.create_table('rh_v1_typerevalorisation', (
+            ('id', self.gf('django.db.models.fields.IntegerField')(primary_key=True)),
+            ('nom', self.gf('django.db.models.fields.CharField')(max_length=255)),
+            ('actif', self.gf('django.db.models.fields.BooleanField')(default=False)),
+        ))
+        db.send_create_signal('rh_v1', ['TypeRevalorisation'])
+
+        # Adding model 'Poste'
+        db.create_table('rh_v1_poste', (
+            ('id', self.gf('django.db.models.fields.IntegerField')(primary_key=True)),
+            ('implantation', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['datamaster_modeles.Implantation'], db_column='implantation')),
+            ('type_poste', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['rh_v1.TypePoste'], db_column='type_poste')),
+            ('proportion', self.gf('django.db.models.fields.CharField')(max_length=10)),
+            ('date_modification', self.gf('django.db.models.fields.DateField')(auto_now=True, blank=True)),
+            ('actif', self.gf('django.db.models.fields.BooleanField')(default=False)),
+        ))
+        db.send_create_signal('rh_v1', ['Poste'])
+
+        # Adding model 'Service'
+        db.create_table('rh_v1_service', (
+            ('id', self.gf('django.db.models.fields.IntegerField')(primary_key=True)),
+            ('nom', self.gf('django.db.models.fields.CharField')(max_length=255)),
+            ('actif', self.gf('django.db.models.fields.BooleanField')(default=False)),
+        ))
+        db.send_create_signal('rh_v1', ['Service'])
+
+        # Adding model 'OrganismeBstg'
+        db.create_table('rh_v1_organismebstg', (
+            ('id', self.gf('django.db.models.fields.IntegerField')(primary_key=True)),
+            ('nom', self.gf('django.db.models.fields.CharField')(max_length=255)),
+            ('type', self.gf('django.db.models.fields.CharField')(max_length=10)),
+            ('actif', self.gf('django.db.models.fields.BooleanField')(default=False)),
+        ))
+        db.send_create_signal('rh_v1', ['OrganismeBstg'])
+
+        # Adding model 'Statut'
+        db.create_table('rh_v1_statut', (
+            ('id', self.gf('django.db.models.fields.IntegerField')(primary_key=True)),
+            ('code', self.gf('django.db.models.fields.CharField')(unique=True, max_length=25)),
+            ('nom', self.gf('django.db.models.fields.CharField')(max_length=255)),
+            ('type_contrat_categorie', self.gf('django.db.models.fields.CharField')(max_length=10)),
+            ('actif', self.gf('django.db.models.fields.BooleanField')(default=False)),
+        ))
+        db.send_create_signal('rh_v1', ['Statut'])
+
+        # Adding model 'Classement'
+        db.create_table('rh_v1_classement', (
+            ('id', self.gf('django.db.models.fields.IntegerField')(primary_key=True)),
+            ('type', self.gf('django.db.models.fields.CharField')(max_length=10)),
+            ('echelon', self.gf('django.db.models.fields.IntegerField')()),
+            ('degre', self.gf('django.db.models.fields.IntegerField')()),
+            ('coefficient', self.gf('django.db.models.fields.FloatField')()),
+            ('commentaire', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
+            ('date_modification', self.gf('django.db.models.fields.DateField')(auto_now=True, blank=True)),
+            ('actif', self.gf('django.db.models.fields.BooleanField')(default=False)),
+        ))
+        db.send_create_signal('rh_v1', ['Classement'])
+
+        # Adding model 'ValeurPoint'
+        db.create_table('rh_v1_valeurpoint', (
+            ('id', self.gf('django.db.models.fields.IntegerField')(primary_key=True)),
+            ('valeur', self.gf('django.db.models.fields.FloatField')()),
+            ('implantation', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['datamaster_modeles.Implantation'], db_column='implantation')),
+            ('annee', self.gf('django.db.models.fields.IntegerField')()),
+        ))
+        db.send_create_signal('rh_v1', ['ValeurPoint'])
+
+        # Adding model 'TauxChange'
+        db.create_table('rh_v1_tauxchange', (
+            ('id', self.gf('django.db.models.fields.IntegerField')(primary_key=True)),
+            ('devise', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['rh_v1.Devise'], to_field='code', db_column='devise')),
+            ('annee', self.gf('django.db.models.fields.IntegerField')()),
+            ('taux', self.gf('django.db.models.fields.FloatField')()),
+            ('implantation', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['datamaster_modeles.Implantation'], db_column='implantation')),
+        ))
+        db.send_create_signal('rh_v1', ['TauxChange'])
+
+        # Adding model 'Devise'
+        db.create_table('rh_v1_devise', (
+            ('id', self.gf('django.db.models.fields.IntegerField')(primary_key=True)),
+            ('code', self.gf('django.db.models.fields.CharField')(unique=True, max_length=10)),
+            ('nom', self.gf('django.db.models.fields.CharField')(max_length=255)),
+        ))
+        db.send_create_signal('rh_v1', ['Devise'])
+
+        # Adding model 'TypeContrat'
+        db.create_table('rh_v1_typecontrat', (
+            ('id', self.gf('django.db.models.fields.IntegerField')(primary_key=True)),
+            ('nom', self.gf('django.db.models.fields.CharField')(max_length=255)),
+            ('nom_long', self.gf('django.db.models.fields.CharField')(max_length=255)),
+            ('categorie', self.gf('django.db.models.fields.CharField')(max_length=10)),
+            ('actif', self.gf('django.db.models.fields.BooleanField')(default=False)),
+        ))
+        db.send_create_signal('rh_v1', ['TypeContrat'])
+
+
+    def backwards(self, orm):
+        
+        # Deleting model 'Employe'
+        db.delete_table('rh_v1_employe')
+
+        # Deleting model 'Dossier'
+        db.delete_table('rh_v1_dossier')
+
+        # Deleting model 'AyantDroit'
+        db.delete_table('rh_v1_ayantdroit')
+
+        # Deleting model 'Remuneration'
+        db.delete_table('rh_v1_remuneration')
+
+        # Deleting model 'FamilleEmploi'
+        db.delete_table('rh_v1_familleemploi')
+
+        # Deleting model 'TypePoste'
+        db.delete_table('rh_v1_typeposte')
+
+        # Deleting model 'TypeRemuneration'
+        db.delete_table('rh_v1_typeremuneration')
+
+        # Deleting model 'TypeRevalorisation'
+        db.delete_table('rh_v1_typerevalorisation')
+
+        # Deleting model 'Poste'
+        db.delete_table('rh_v1_poste')
+
+        # Deleting model 'Service'
+        db.delete_table('rh_v1_service')
+
+        # Deleting model 'OrganismeBstg'
+        db.delete_table('rh_v1_organismebstg')
+
+        # Deleting model 'Statut'
+        db.delete_table('rh_v1_statut')
+
+        # Deleting model 'Classement'
+        db.delete_table('rh_v1_classement')
+
+        # Deleting model 'ValeurPoint'
+        db.delete_table('rh_v1_valeurpoint')
+
+        # Deleting model 'TauxChange'
+        db.delete_table('rh_v1_tauxchange')
+
+        # Deleting model 'Devise'
+        db.delete_table('rh_v1_devise')
+
+        # Deleting model 'TypeContrat'
+        db.delete_table('rh_v1_typecontrat')
+
+
+    models = {
+        'datamaster_modeles.bureau': {
+            'Meta': {'object_name': 'Bureau', 'db_table': "u'ref_bureau'"},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'implantation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.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['datamaster_modeles.Region']", 'db_column': "'region'"})
+        },
+        'datamaster_modeles.implantation': {
+            'Meta': {'ordering': "('nom',)", 'object_name': 'Implantation', 'db_table': "u'ref_implantation'"},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            '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'", 'db_column': "'adresse_physique_pays'", 'to': "orm['datamaster_modeles.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', 'blank': 'True'}),
+            'adresse_postale_bureau': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'adresse_postale_code_postal': ('django.db.models.fields.CharField', [], {'max_length': '20', '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', 'blank': 'True'}),
+            'adresse_postale_pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'impl_adresse_postale'", 'db_column': "'adresse_postale_pays'", 'to': "orm['datamaster_modeles.Pays']"}),
+            'adresse_postale_precision': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'adresse_postale_precision_avant': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'adresse_postale_region': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'adresse_postale_rue': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'adresse_postale_ville': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'bureau_rattachement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Implantation']", 'db_column': "'bureau_rattachement'"}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            '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.IntegerField', [], {'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['datamaster_modeles.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'})
+        },
+        'datamaster_modeles.pays': {
+            'Meta': {'ordering': "('nom',)", 'object_name': 'Pays', 'db_table': "u'ref_pays'"},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'code': ('django.db.models.fields.CharField', [], {'max_length': '2', 'primary_key': 'True'}),
+            'code_bureau': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Bureau']", 'to_field': "'code'", 'db_column': "'code_bureau'"}),
+            'code_iso3': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3', 'blank': 'True'}),
+            'developpement': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.IntegerField', [], {}),
+            '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['datamaster_modeles.Region']", 'db_column': "'region'"})
+        },
+        'datamaster_modeles.region': {
+            'Meta': {'object_name': 'Region', 'db_table': "u'ref_region'"},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'implantation_bureau': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'gere_region'", 'db_column': "'implantation_bureau'", 'to': "orm['datamaster_modeles.Implantation']"}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh_v1.ayantdroit': {
+            'Meta': {'object_name': 'AyantDroit'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'commentaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'employe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'employe'", 'db_column': "'employe'", 'to': "orm['rh_v1.Employe']"}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'lien_parente': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'prenom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh_v1.classement': {
+            'Meta': {'object_name': 'Classement'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'coefficient': ('django.db.models.fields.FloatField', [], {}),
+            'commentaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'degre': ('django.db.models.fields.IntegerField', [], {}),
+            'echelon': ('django.db.models.fields.IntegerField', [], {}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '10'})
+        },
+        'rh_v1.devise': {
+            'Meta': {'object_name': 'Devise'},
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh_v1.dossier': {
+            'Meta': {'object_name': 'Dossier'},
+            'classement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.Classement']", 'db_column': "'classement'"}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}),
+            'commentaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'complement1': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'complement2': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'contrat_date_debut': ('django.db.models.fields.DateField', [], {}),
+            'contrat_date_fin': ('django.db.models.fields.DateField', [], {}),
+            'date_creation': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'date_maj': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'employe': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.Employe']", 'db_column': "'employe'"}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'implantation1': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'implantation1'", 'db_column': "'implantation1'", 'to': "orm['datamaster_modeles.Implantation']"}),
+            'implantation2': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'implantation2'", 'db_column': "'implantation2'", 'to': "orm['datamaster_modeles.Implantation']"}),
+            'mandat_date_debut': ('django.db.models.fields.DateField', [], {}),
+            'mandat_date_fin': ('django.db.models.fields.DateField', [], {}),
+            'organisme_bstg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.OrganismeBstg']", 'db_column': "'organisme_bstg'"}),
+            'poste1': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'poste1'", 'db_column': "'poste1'", 'to': "orm['rh_v1.Poste']"}),
+            'poste2': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'poste2'", 'null': 'True', 'db_column': "'poste2'", 'to': "orm['rh_v1.Poste']"}),
+            'regime_travail': ('django.db.models.fields.IntegerField', [], {}),
+            'remplacement_de': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'remplacement_de'", 'db_column': "'remplacement_de'", 'to': "orm['rh_v1.Employe']"}),
+            'responsable': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'responsable'", 'db_column': "'responsable'", 'to': "orm['rh_v1.Employe']"}),
+            'responsable_implantation1': ('django.db.models.fields.IntegerField', [], {}),
+            'responsable_implantation2': ('django.db.models.fields.IntegerField', [], {}),
+            'service': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.Service']", 'db_column': "'service'"}),
+            'statut': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.Statut']", 'db_column': "'statut'"}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
+            'type_contrat': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.TypeContrat']", 'db_column': "'type_contrat'"})
+        },
+        'rh_v1.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'}),
+            'commentaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'date_creation': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'date_entree': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_maj': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'date_naissance': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'genre': ('django.db.models.fields.CharField', [], {'max_length': '1', 'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nationalite': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nationalite'", 'db_column': "'nationalite'", 'to': "orm['datamaster_modeles.Pays']"}),
+            'no_rue': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'pays': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'pays'", 'null': 'True', 'db_column': "'pays'", 'to': "orm['datamaster_modeles.Pays']"}),
+            '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_v1.familleemploi': {
+            'Meta': {'object_name': 'FamilleEmploi'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh_v1.organismebstg': {
+            'Meta': {'object_name': 'OrganismeBstg'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '10'})
+        },
+        'rh_v1.poste': {
+            'Meta': {'object_name': 'Poste'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'date_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'implantation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Implantation']", 'db_column': "'implantation'"}),
+            'proportion': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
+            'type_poste': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.TypePoste']", 'db_column': "'type_poste'"})
+        },
+        'rh_v1.remuneration': {
+            'Meta': {'object_name': 'Remuneration'},
+            'annulation': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'date_annulation': ('django.db.models.fields.DateField', [], {}),
+            'date_creation': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'date_desactivation': ('django.db.models.fields.DateField', [], {}),
+            'date_effective': ('django.db.models.fields.DateField', [], {}),
+            'desactivation': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'devise': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.Devise']", 'to_field': "'code'", 'db_column': "'devise'"}),
+            'dossier': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.Dossier']", 'db_column': "'dossier'"}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'montant': ('django.db.models.fields.FloatField', [], {}),
+            'pourcentage': ('django.db.models.fields.IntegerField', [], {}),
+            'type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.TypeRemuneration']", 'db_column': "'type'"}),
+            'type_revalorisation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.TypeRevalorisation']", 'db_column': "'type_revalorisation'"}),
+            'user_annulation': ('django.db.models.fields.IntegerField', [], {}),
+            'user_creation': ('django.db.models.fields.IntegerField', [], {}),
+            'user_desactivation': ('django.db.models.fields.IntegerField', [], {})
+        },
+        'rh_v1.service': {
+            'Meta': {'object_name': 'Service'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh_v1.statut': {
+            'Meta': {'object_name': 'Statut'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '25'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'type_contrat_categorie': ('django.db.models.fields.CharField', [], {'max_length': '10'})
+        },
+        'rh_v1.tauxchange': {
+            'Meta': {'object_name': 'TauxChange'},
+            'annee': ('django.db.models.fields.IntegerField', [], {}),
+            'devise': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.Devise']", 'to_field': "'code'", 'db_column': "'devise'"}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'implantation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Implantation']", 'db_column': "'implantation'"}),
+            'taux': ('django.db.models.fields.FloatField', [], {})
+        },
+        'rh_v1.typecontrat': {
+            'Meta': {'object_name': 'TypeContrat'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'categorie': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'nom_long': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh_v1.typeposte': {
+            'Meta': {'object_name': 'TypePoste'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'date_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'famille_emploi': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.FamilleEmploi']", 'db_column': "'famille_emploi'"}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'is_responsable': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'nom_feminin': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh_v1.typeremuneration': {
+            'Meta': {'object_name': 'TypeRemuneration'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'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_v1.typerevalorisation': {
+            'Meta': {'object_name': 'TypeRevalorisation'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh_v1.valeurpoint': {
+            'Meta': {'object_name': 'ValeurPoint'},
+            'annee': ('django.db.models.fields.IntegerField', [], {}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'implantation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Implantation']", 'db_column': "'implantation'"}),
+            'valeur': ('django.db.models.fields.FloatField', [], {})
+        }
+    }
+
+    complete_apps = ['rh_v1']
diff --git a/project/old_rh_v1/migrations/0002_auto__chg_field_employe_nationalite__chg_field_employe_pays__chg_field.py b/project/old_rh_v1/migrations/0002_auto__chg_field_employe_nationalite__chg_field_employe_pays__chg_field.py
new file mode 100644 (file)
index 0000000..abe5ea2
--- /dev/null
@@ -0,0 +1,370 @@
+# 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):
+        
+        # Changing field 'Employe.nationalite'
+        db.alter_column('rh_v1_employe', 'nationalite', self.gf('django.db.models.fields.related.ForeignKey')(to_field='code', db_column='nationalite', to=orm['datamaster_modeles.Pays']))
+
+        # Changing field 'Employe.pays'
+        db.alter_column('rh_v1_employe', 'pays', self.gf('django.db.models.fields.related.ForeignKey')(db_column='pays', to_field='code', to=orm['datamaster_modeles.Pays'], null=True))
+
+        # Changing field 'Remuneration.user_annulation'
+        db.alter_column('rh_v1_remuneration', 'user_annulation', self.gf('django.db.models.fields.IntegerField')(null=True))
+
+        # Changing field 'Remuneration.date_desactivation'
+        db.alter_column('rh_v1_remuneration', 'date_desactivation', self.gf('django.db.models.fields.DateField')(null=True))
+
+        # Changing field 'Remuneration.pourcentage'
+        db.alter_column('rh_v1_remuneration', 'pourcentage', self.gf('django.db.models.fields.IntegerField')(null=True))
+
+        # Changing field 'Remuneration.montant'
+        db.alter_column('rh_v1_remuneration', 'montant', self.gf('django.db.models.fields.FloatField')(null=True))
+
+        # Changing field 'Remuneration.user_creation'
+        db.alter_column('rh_v1_remuneration', 'user_creation', self.gf('django.db.models.fields.IntegerField')(null=True))
+
+        # Changing field 'Remuneration.user_desactivation'
+        db.alter_column('rh_v1_remuneration', 'user_desactivation', self.gf('django.db.models.fields.IntegerField')(null=True))
+
+        # Changing field 'Remuneration.annulation'
+        db.alter_column('rh_v1_remuneration', 'annulation', self.gf('django.db.models.fields.NullBooleanField')(null=True))
+
+        # Changing field 'Remuneration.devise'
+        db.alter_column('rh_v1_remuneration', 'devise', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['rh_v1.Devise'], to_field='code', null=True, db_column='devise'))
+
+        # Changing field 'Remuneration.date_effective'
+        db.alter_column('rh_v1_remuneration', 'date_effective', self.gf('django.db.models.fields.DateField')(null=True))
+
+        # Changing field 'Remuneration.type_revalorisation'
+        db.alter_column('rh_v1_remuneration', 'type_revalorisation', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['rh_v1.TypeRevalorisation'], null=True, db_column='type_revalorisation'))
+
+        # Changing field 'Remuneration.date_annulation'
+        db.alter_column('rh_v1_remuneration', 'date_annulation', self.gf('django.db.models.fields.DateField')(null=True))
+
+        # Changing field 'Remuneration.desactivation'
+        db.alter_column('rh_v1_remuneration', 'desactivation', self.gf('django.db.models.fields.NullBooleanField')(null=True))
+
+
+    def backwards(self, orm):
+        
+        # Changing field 'Employe.nationalite'
+        db.alter_column('rh_v1_employe', 'nationalite', self.gf('django.db.models.fields.related.ForeignKey')(db_column='nationalite', to=orm['datamaster_modeles.Pays']))
+
+        # Changing field 'Employe.pays'
+        db.alter_column('rh_v1_employe', 'pays', self.gf('django.db.models.fields.related.ForeignKey')(null=True, to=orm['datamaster_modeles.Pays'], db_column='pays'))
+
+        # Changing field 'Remuneration.user_annulation'
+        db.alter_column('rh_v1_remuneration', 'user_annulation', self.gf('django.db.models.fields.IntegerField')(default=False))
+
+        # Changing field 'Remuneration.date_desactivation'
+        db.alter_column('rh_v1_remuneration', 'date_desactivation', self.gf('django.db.models.fields.DateField')(default=datetime.date(2011, 4, 5)))
+
+        # Changing field 'Remuneration.pourcentage'
+        db.alter_column('rh_v1_remuneration', 'pourcentage', self.gf('django.db.models.fields.IntegerField')(default=0))
+
+        # Changing field 'Remuneration.montant'
+        db.alter_column('rh_v1_remuneration', 'montant', self.gf('django.db.models.fields.FloatField')(default=0))
+
+        # Changing field 'Remuneration.user_creation'
+        db.alter_column('rh_v1_remuneration', 'user_creation', self.gf('django.db.models.fields.IntegerField')(default=datetime.date(2011, 4, 5)))
+
+        # Changing field 'Remuneration.user_desactivation'
+        db.alter_column('rh_v1_remuneration', 'user_desactivation', self.gf('django.db.models.fields.IntegerField')(default=0))
+
+        # Changing field 'Remuneration.annulation'
+        db.alter_column('rh_v1_remuneration', 'annulation', self.gf('django.db.models.fields.BooleanField')())
+
+        # Changing field 'Remuneration.devise'
+        db.alter_column('rh_v1_remuneration', 'devise', self.gf('django.db.models.fields.related.ForeignKey')(default=0, to=orm['rh_v1.Devise'], to_field='code', db_column='devise'))
+
+        # Changing field 'Remuneration.date_effective'
+        db.alter_column('rh_v1_remuneration', 'date_effective', self.gf('django.db.models.fields.DateField')(default=datetime.date(2011, 4, 5)))
+
+        # Changing field 'Remuneration.type_revalorisation'
+        db.alter_column('rh_v1_remuneration', 'type_revalorisation', self.gf('django.db.models.fields.related.ForeignKey')(default=0, to=orm['rh_v1.TypeRevalorisation'], db_column='type_revalorisation'))
+
+        # Changing field 'Remuneration.date_annulation'
+        db.alter_column('rh_v1_remuneration', 'date_annulation', self.gf('django.db.models.fields.DateField')(default=datetime.date(2011, 4, 5)))
+
+        # Changing field 'Remuneration.desactivation'
+        db.alter_column('rh_v1_remuneration', 'desactivation', self.gf('django.db.models.fields.BooleanField')())
+
+
+    models = {
+        'datamaster_modeles.bureau': {
+            'Meta': {'object_name': 'Bureau', 'db_table': "u'ref_bureau'"},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'implantation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.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['datamaster_modeles.Region']", 'db_column': "'region'"})
+        },
+        'datamaster_modeles.implantation': {
+            'Meta': {'object_name': 'Implantation', 'db_table': "u'ref_implantation'"},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            '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['datamaster_modeles.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['datamaster_modeles.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['datamaster_modeles.Implantation']", 'db_column': "'bureau_rattachement'"}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            '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.IntegerField', [], {'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['datamaster_modeles.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'})
+        },
+        'datamaster_modeles.pays': {
+            'Meta': {'object_name': 'Pays', 'db_table': "u'ref_pays'"},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '2'}),
+            'code_bureau': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Bureau']", 'to_field': "'code'", 'db_column': "'code_bureau'"}),
+            'code_iso3': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3', 'blank': 'True'}),
+            'developpement': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'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['datamaster_modeles.Region']", 'db_column': "'region'"})
+        },
+        'datamaster_modeles.region': {
+            'Meta': {'object_name': 'Region', 'db_table': "u'ref_region'"},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'implantation_bureau': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'gere_region'", 'db_column': "'implantation_bureau'", 'to': "orm['datamaster_modeles.Implantation']"}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh_v1.ayantdroit': {
+            'Meta': {'object_name': 'AyantDroit'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'commentaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'employe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'employe'", 'db_column': "'employe'", 'to': "orm['rh_v1.Employe']"}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'lien_parente': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'prenom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh_v1.classement': {
+            'Meta': {'object_name': 'Classement'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'coefficient': ('django.db.models.fields.FloatField', [], {}),
+            'commentaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'degre': ('django.db.models.fields.IntegerField', [], {}),
+            'echelon': ('django.db.models.fields.IntegerField', [], {}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '10'})
+        },
+        'rh_v1.devise': {
+            'Meta': {'object_name': 'Devise'},
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh_v1.dossier': {
+            'Meta': {'object_name': 'Dossier'},
+            'classement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.Classement']", 'db_column': "'classement'"}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}),
+            'commentaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'complement1': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'complement2': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'contrat_date_debut': ('django.db.models.fields.DateField', [], {}),
+            'contrat_date_fin': ('django.db.models.fields.DateField', [], {}),
+            'date_creation': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'date_maj': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'employe': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.Employe']", 'db_column': "'employe'"}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'implantation1': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'implantation1'", 'db_column': "'implantation1'", 'to': "orm['datamaster_modeles.Implantation']"}),
+            'implantation2': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'implantation2'", 'db_column': "'implantation2'", 'to': "orm['datamaster_modeles.Implantation']"}),
+            'mandat_date_debut': ('django.db.models.fields.DateField', [], {}),
+            'mandat_date_fin': ('django.db.models.fields.DateField', [], {}),
+            'organisme_bstg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.OrganismeBstg']", 'db_column': "'organisme_bstg'"}),
+            'poste1': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'poste1'", 'db_column': "'poste1'", 'to': "orm['rh_v1.Poste']"}),
+            'poste2': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'poste2'", 'null': 'True', 'db_column': "'poste2'", 'to': "orm['rh_v1.Poste']"}),
+            'regime_travail': ('django.db.models.fields.IntegerField', [], {}),
+            'remplacement_de': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'remplacement_de'", 'db_column': "'remplacement_de'", 'to': "orm['rh_v1.Employe']"}),
+            'responsable': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'responsable'", 'db_column': "'responsable'", 'to': "orm['rh_v1.Employe']"}),
+            'responsable_implantation1': ('django.db.models.fields.IntegerField', [], {}),
+            'responsable_implantation2': ('django.db.models.fields.IntegerField', [], {}),
+            'service': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.Service']", 'db_column': "'service'"}),
+            'statut': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.Statut']", 'db_column': "'statut'"}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
+            'type_contrat': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.TypeContrat']", 'db_column': "'type_contrat'"})
+        },
+        'rh_v1.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'}),
+            'commentaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'date_creation': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'date_entree': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_maj': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'date_naissance': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'genre': ('django.db.models.fields.CharField', [], {'max_length': '1', 'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nationalite': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nationalite'", 'to_field': "'code'", 'db_column': "'nationalite'", 'to': "orm['datamaster_modeles.Pays']"}),
+            'no_rue': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'pays'", 'db_column': "'pays'", 'to_field': "'code'", 'to': "orm['datamaster_modeles.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_v1.familleemploi': {
+            'Meta': {'object_name': 'FamilleEmploi'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh_v1.organismebstg': {
+            'Meta': {'object_name': 'OrganismeBstg'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '10'})
+        },
+        'rh_v1.poste': {
+            'Meta': {'object_name': 'Poste'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'date_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'implantation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'implantation'", 'to': "orm['datamaster_modeles.Implantation']"}),
+            'proportion': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
+            'type_poste': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.TypePoste']", 'db_column': "'type_poste'"})
+        },
+        'rh_v1.remuneration': {
+            'Meta': {'object_name': 'Remuneration'},
+            'annulation': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+            'date_annulation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_creation': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'date_desactivation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_effective': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'desactivation': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+            'devise': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.Devise']", 'to_field': "'code'", 'null': 'True', 'db_column': "'devise'", 'blank': 'True'}),
+            'dossier': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.Dossier']", 'db_column': "'dossier'"}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'montant': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+            'pourcentage': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.TypeRemuneration']", 'db_column': "'type'"}),
+            'type_revalorisation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.TypeRevalorisation']", 'null': 'True', 'db_column': "'type_revalorisation'", 'blank': 'True'}),
+            'user_annulation': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'user_creation': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'user_desactivation': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'rh_v1.service': {
+            'Meta': {'object_name': 'Service'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh_v1.statut': {
+            'Meta': {'object_name': 'Statut'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '25'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'type_contrat_categorie': ('django.db.models.fields.CharField', [], {'max_length': '10'})
+        },
+        'rh_v1.tauxchange': {
+            'Meta': {'object_name': 'TauxChange'},
+            'annee': ('django.db.models.fields.IntegerField', [], {}),
+            'devise': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.Devise']", 'to_field': "'code'", 'db_column': "'devise'"}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'implantation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Implantation']", 'db_column': "'implantation'"}),
+            'taux': ('django.db.models.fields.FloatField', [], {})
+        },
+        'rh_v1.typecontrat': {
+            'Meta': {'object_name': 'TypeContrat'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'categorie': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'nom_long': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh_v1.typeposte': {
+            'Meta': {'object_name': 'TypePoste'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'date_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'famille_emploi': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.FamilleEmploi']", 'db_column': "'famille_emploi'"}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'is_responsable': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'nom_feminin': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh_v1.typeremuneration': {
+            'Meta': {'object_name': 'TypeRemuneration'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'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_v1.typerevalorisation': {
+            'Meta': {'object_name': 'TypeRevalorisation'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh_v1.valeurpoint': {
+            'Meta': {'object_name': 'ValeurPoint'},
+            'annee': ('django.db.models.fields.IntegerField', [], {}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'implantation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Implantation']", 'db_column': "'implantation'"}),
+            'valeur': ('django.db.models.fields.FloatField', [], {})
+        }
+    }
+
+    complete_apps = ['rh_v1']
diff --git a/project/old_rh_v1/migrations/0003_auto__chg_field_tauxchange_devise.py b/project/old_rh_v1/migrations/0003_auto__chg_field_tauxchange_devise.py
new file mode 100644 (file)
index 0000000..51781c9
--- /dev/null
@@ -0,0 +1,292 @@
+# 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):
+        
+        # Changing field 'TauxChange.devise'
+        db.alter_column('rh_v1_tauxchange', 'devise', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['rh_v1.Devise'], db_column='devise'))
+
+
+    def backwards(self, orm):
+        
+        # Changing field 'TauxChange.devise'
+        db.alter_column('rh_v1_tauxchange', 'devise', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['rh_v1.Devise'], to_field='code', db_column='devise'))
+
+
+    models = {
+        'datamaster_modeles.bureau': {
+            'Meta': {'object_name': 'Bureau', 'db_table': "u'ref_bureau'"},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'implantation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.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['datamaster_modeles.Region']", 'db_column': "'region'"})
+        },
+        'datamaster_modeles.implantation': {
+            'Meta': {'object_name': 'Implantation', 'db_table': "u'ref_implantation'"},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            '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['datamaster_modeles.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['datamaster_modeles.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['datamaster_modeles.Implantation']", 'db_column': "'bureau_rattachement'"}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            '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.IntegerField', [], {'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['datamaster_modeles.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'})
+        },
+        'datamaster_modeles.pays': {
+            'Meta': {'object_name': 'Pays', 'db_table': "u'ref_pays'"},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '2'}),
+            'code_bureau': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Bureau']", 'to_field': "'code'", 'db_column': "'code_bureau'"}),
+            'code_iso3': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3', 'blank': 'True'}),
+            'developpement': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'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['datamaster_modeles.Region']", 'db_column': "'region'"})
+        },
+        'datamaster_modeles.region': {
+            'Meta': {'object_name': 'Region', 'db_table': "u'ref_region'"},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'implantation_bureau': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'gere_region'", 'db_column': "'implantation_bureau'", 'to': "orm['datamaster_modeles.Implantation']"}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh_v1.ayantdroit': {
+            'Meta': {'object_name': 'AyantDroit'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'commentaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'employe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'employe'", 'db_column': "'employe'", 'to': "orm['rh_v1.Employe']"}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'lien_parente': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'prenom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh_v1.classement': {
+            'Meta': {'object_name': 'Classement'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'coefficient': ('django.db.models.fields.FloatField', [], {}),
+            'commentaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'degre': ('django.db.models.fields.IntegerField', [], {}),
+            'echelon': ('django.db.models.fields.IntegerField', [], {}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '10'})
+        },
+        'rh_v1.devise': {
+            'Meta': {'object_name': 'Devise'},
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh_v1.dossier': {
+            'Meta': {'object_name': 'Dossier'},
+            'classement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.Classement']", 'db_column': "'classement'"}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}),
+            'commentaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'complement1': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'complement2': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'contrat_date_debut': ('django.db.models.fields.DateField', [], {}),
+            'contrat_date_fin': ('django.db.models.fields.DateField', [], {}),
+            'date_creation': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'date_maj': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'employe': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.Employe']", 'db_column': "'employe'"}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'implantation1': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'implantation1'", 'db_column': "'implantation1'", 'to': "orm['datamaster_modeles.Implantation']"}),
+            'implantation2': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'implantation2'", 'db_column': "'implantation2'", 'to': "orm['datamaster_modeles.Implantation']"}),
+            'mandat_date_debut': ('django.db.models.fields.DateField', [], {}),
+            'mandat_date_fin': ('django.db.models.fields.DateField', [], {}),
+            'organisme_bstg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.OrganismeBstg']", 'db_column': "'organisme_bstg'"}),
+            'poste1': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'poste1'", 'db_column': "'poste1'", 'to': "orm['rh_v1.Poste']"}),
+            'poste2': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'poste2'", 'null': 'True', 'db_column': "'poste2'", 'to': "orm['rh_v1.Poste']"}),
+            'regime_travail': ('django.db.models.fields.IntegerField', [], {}),
+            'remplacement_de': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'remplacement_de'", 'db_column': "'remplacement_de'", 'to': "orm['rh_v1.Employe']"}),
+            'responsable': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'responsable'", 'db_column': "'responsable'", 'to': "orm['rh_v1.Employe']"}),
+            'responsable_implantation1': ('django.db.models.fields.IntegerField', [], {}),
+            'responsable_implantation2': ('django.db.models.fields.IntegerField', [], {}),
+            'service': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.Service']", 'db_column': "'service'"}),
+            'statut': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.Statut']", 'db_column': "'statut'"}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
+            'type_contrat': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.TypeContrat']", 'db_column': "'type_contrat'"})
+        },
+        'rh_v1.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'}),
+            'commentaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'date_creation': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'date_entree': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_maj': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'date_naissance': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'genre': ('django.db.models.fields.CharField', [], {'max_length': '1', 'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nationalite': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nationalite'", 'to_field': "'code'", 'db_column': "'nationalite'", 'to': "orm['datamaster_modeles.Pays']"}),
+            'no_rue': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'pays'", 'db_column': "'pays'", 'to_field': "'code'", 'to': "orm['datamaster_modeles.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_v1.familleemploi': {
+            'Meta': {'object_name': 'FamilleEmploi'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh_v1.organismebstg': {
+            'Meta': {'object_name': 'OrganismeBstg'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '10'})
+        },
+        'rh_v1.poste': {
+            'Meta': {'object_name': 'Poste'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'date_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'implantation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'implantation'", 'to': "orm['datamaster_modeles.Implantation']"}),
+            'proportion': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
+            'type_poste': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.TypePoste']", 'db_column': "'type_poste'"})
+        },
+        'rh_v1.remuneration': {
+            'Meta': {'object_name': 'Remuneration'},
+            'annulation': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+            'date_annulation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_creation': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'date_desactivation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_effective': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'desactivation': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+            'devise': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.Devise']", 'to_field': "'code'", 'null': 'True', 'db_column': "'devise'", 'blank': 'True'}),
+            'dossier': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.Dossier']", 'db_column': "'dossier'"}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'montant': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+            'pourcentage': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.TypeRemuneration']", 'db_column': "'type'"}),
+            'type_revalorisation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.TypeRevalorisation']", 'null': 'True', 'db_column': "'type_revalorisation'", 'blank': 'True'}),
+            'user_annulation': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'user_creation': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'user_desactivation': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'rh_v1.service': {
+            'Meta': {'object_name': 'Service'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh_v1.statut': {
+            'Meta': {'object_name': 'Statut'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '25'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'type_contrat_categorie': ('django.db.models.fields.CharField', [], {'max_length': '10'})
+        },
+        'rh_v1.tauxchange': {
+            'Meta': {'object_name': 'TauxChange'},
+            'annee': ('django.db.models.fields.IntegerField', [], {}),
+            'devise': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.Devise']", 'db_column': "'devise'"}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'implantation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Implantation']", 'db_column': "'implantation'"}),
+            'taux': ('django.db.models.fields.FloatField', [], {})
+        },
+        'rh_v1.typecontrat': {
+            'Meta': {'object_name': 'TypeContrat'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'categorie': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'nom_long': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh_v1.typeposte': {
+            'Meta': {'object_name': 'TypePoste'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'date_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'famille_emploi': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.FamilleEmploi']", 'db_column': "'famille_emploi'"}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'is_responsable': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'nom_feminin': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh_v1.typeremuneration': {
+            'Meta': {'object_name': 'TypeRemuneration'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'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_v1.typerevalorisation': {
+            'Meta': {'object_name': 'TypeRevalorisation'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh_v1.valeurpoint': {
+            'Meta': {'object_name': 'ValeurPoint'},
+            'annee': ('django.db.models.fields.IntegerField', [], {}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'implantation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Implantation']", 'db_column': "'implantation'"}),
+            'valeur': ('django.db.models.fields.FloatField', [], {})
+        }
+    }
+
+    complete_apps = ['rh_v1']
diff --git a/project/old_rh_v1/migrations/0004_auto__chg_field_dossier_classement__chg_field_dossier_responsable__chg.py b/project/old_rh_v1/migrations/0004_auto__chg_field_dossier_classement__chg_field_dossier_responsable__chg.py
new file mode 100644 (file)
index 0000000..0ffbdcc
--- /dev/null
@@ -0,0 +1,346 @@
+# 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):
+        
+        # Changing field 'Dossier.classement'
+        db.alter_column('rh_v1_dossier', 'classement', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['rh_v1.Classement'], null=True, db_column='classement'))
+
+        # Changing field 'Dossier.responsable'
+        db.alter_column('rh_v1_dossier', 'responsable', self.gf('django.db.models.fields.related.ForeignKey')(null=True, db_column='responsable', to=orm['rh_v1.Employe']))
+
+        # Changing field 'Dossier.type_contrat'
+        db.alter_column('rh_v1_dossier', 'type_contrat', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['rh_v1.TypeContrat'], null=True, db_column='type_contrat'))
+
+        # Changing field 'Dossier.organisme_bstg'
+        db.alter_column('rh_v1_dossier', 'organisme_bstg', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['rh_v1.OrganismeBstg'], null=True, db_column='organisme_bstg'))
+
+        # Changing field 'Dossier.service'
+        db.alter_column('rh_v1_dossier', 'service', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['rh_v1.Service'], null=True, db_column='service'))
+
+        # Changing field 'Dossier.implantation1'
+        db.alter_column('rh_v1_dossier', 'implantation1', self.gf('django.db.models.fields.related.ForeignKey')(null=True, db_column='implantation1', to=orm['datamaster_modeles.Implantation']))
+
+        # Changing field 'Dossier.implantation2'
+        db.alter_column('rh_v1_dossier', 'implantation2', self.gf('django.db.models.fields.related.ForeignKey')(null=True, db_column='implantation2', to=orm['datamaster_modeles.Implantation']))
+
+        # Changing field 'Dossier.statut'
+        db.alter_column('rh_v1_dossier', 'statut', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['rh_v1.Statut'], null=True, db_column='statut'))
+
+        # Changing field 'Dossier.remplacement_de'
+        db.alter_column('rh_v1_dossier', 'remplacement_de', self.gf('django.db.models.fields.related.ForeignKey')(null=True, db_column='remplacement_de', to=orm['rh_v1.Employe']))
+
+        # Changing field 'Dossier.mandat_date_fin'
+        db.alter_column('rh_v1_dossier', 'mandat_date_fin', self.gf('django.db.models.fields.DateField')(null=True))
+
+
+    def backwards(self, orm):
+        
+        # Changing field 'Dossier.classement'
+        db.alter_column('rh_v1_dossier', 'classement', self.gf('django.db.models.fields.related.ForeignKey')(default=0, to=orm['rh_v1.Classement'], db_column='classement'))
+
+        # Changing field 'Dossier.responsable'
+        db.alter_column('rh_v1_dossier', 'responsable', self.gf('django.db.models.fields.related.ForeignKey')(default=0, db_column='responsable', to=orm['rh_v1.Employe']))
+
+        # Changing field 'Dossier.type_contrat'
+        db.alter_column('rh_v1_dossier', 'type_contrat', self.gf('django.db.models.fields.related.ForeignKey')(default=0, to=orm['rh_v1.TypeContrat'], db_column='type_contrat'))
+
+        # Changing field 'Dossier.organisme_bstg'
+        db.alter_column('rh_v1_dossier', 'organisme_bstg', self.gf('django.db.models.fields.related.ForeignKey')(default=0, to=orm['rh_v1.OrganismeBstg'], db_column='organisme_bstg'))
+
+        # Changing field 'Dossier.service'
+        db.alter_column('rh_v1_dossier', 'service', self.gf('django.db.models.fields.related.ForeignKey')(default=0, to=orm['rh_v1.Service'], db_column='service'))
+
+        # Changing field 'Dossier.implantation1'
+        db.alter_column('rh_v1_dossier', 'implantation1', self.gf('django.db.models.fields.related.ForeignKey')(default=0, db_column='implantation1', to=orm['datamaster_modeles.Implantation']))
+
+        # Changing field 'Dossier.implantation2'
+        db.alter_column('rh_v1_dossier', 'implantation2', self.gf('django.db.models.fields.related.ForeignKey')(default=0, db_column='implantation2', to=orm['datamaster_modeles.Implantation']))
+
+        # Changing field 'Dossier.statut'
+        db.alter_column('rh_v1_dossier', 'statut', self.gf('django.db.models.fields.related.ForeignKey')(default=0, to=orm['rh_v1.Statut'], db_column='statut'))
+
+        # Changing field 'Dossier.remplacement_de'
+        db.alter_column('rh_v1_dossier', 'remplacement_de', self.gf('django.db.models.fields.related.ForeignKey')(default=0, db_column='remplacement_de', to=orm['rh_v1.Employe']))
+
+        # Changing field 'Dossier.mandat_date_fin'
+        db.alter_column('rh_v1_dossier', 'mandat_date_fin', self.gf('django.db.models.fields.DateField')(default=0))
+
+
+    models = {
+        'datamaster_modeles.bureau': {
+            'Meta': {'object_name': 'Bureau', 'db_table': "u'ref_bureau'"},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'implantation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.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['datamaster_modeles.Region']", 'db_column': "'region'"})
+        },
+        'datamaster_modeles.implantation': {
+            'Meta': {'object_name': 'Implantation', 'db_table': "u'ref_implantation'"},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            '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['datamaster_modeles.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['datamaster_modeles.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['datamaster_modeles.Implantation']", 'db_column': "'bureau_rattachement'"}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            '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.IntegerField', [], {'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['datamaster_modeles.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'})
+        },
+        'datamaster_modeles.pays': {
+            'Meta': {'object_name': 'Pays', 'db_table': "u'ref_pays'"},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '2'}),
+            'code_bureau': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Bureau']", 'to_field': "'code'", 'db_column': "'code_bureau'"}),
+            'code_iso3': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3', 'blank': 'True'}),
+            'developpement': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'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['datamaster_modeles.Region']", 'db_column': "'region'"})
+        },
+        'datamaster_modeles.region': {
+            'Meta': {'object_name': 'Region', 'db_table': "u'ref_region'"},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'implantation_bureau': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'gere_region'", 'db_column': "'implantation_bureau'", 'to': "orm['datamaster_modeles.Implantation']"}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh_v1.ayantdroit': {
+            'Meta': {'object_name': 'AyantDroit'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'commentaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'employe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'employe'", 'db_column': "'employe'", 'to': "orm['rh_v1.Employe']"}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'lien_parente': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'prenom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh_v1.classement': {
+            'Meta': {'object_name': 'Classement'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'coefficient': ('django.db.models.fields.FloatField', [], {}),
+            'commentaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'degre': ('django.db.models.fields.IntegerField', [], {}),
+            'echelon': ('django.db.models.fields.IntegerField', [], {}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '10'})
+        },
+        'rh_v1.devise': {
+            'Meta': {'object_name': 'Devise'},
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh_v1.dossier': {
+            'Meta': {'object_name': 'Dossier'},
+            'classement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.Classement']", 'null': 'True', 'db_column': "'classement'", 'blank': 'True'}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}),
+            'commentaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'complement1': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'complement2': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'contrat_date_debut': ('django.db.models.fields.DateField', [], {}),
+            'contrat_date_fin': ('django.db.models.fields.DateField', [], {}),
+            'date_creation': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'date_maj': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'employe': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.Employe']", 'db_column': "'employe'"}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'implantation1': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'implantation1'", 'null': 'True', 'db_column': "'implantation1'", 'to': "orm['datamaster_modeles.Implantation']"}),
+            'implantation2': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'implantation2'", 'null': 'True', 'db_column': "'implantation2'", 'to': "orm['datamaster_modeles.Implantation']"}),
+            'mandat_date_debut': ('django.db.models.fields.DateField', [], {}),
+            'mandat_date_fin': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'organisme_bstg': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.OrganismeBstg']", 'null': 'True', 'db_column': "'organisme_bstg'", 'blank': 'True'}),
+            'poste1': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'poste1'", 'db_column': "'poste1'", 'to': "orm['rh_v1.Poste']"}),
+            'poste2': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'poste2'", 'null': 'True', 'db_column': "'poste2'", 'to': "orm['rh_v1.Poste']"}),
+            'regime_travail': ('django.db.models.fields.IntegerField', [], {}),
+            'remplacement_de': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'remplacement_de'", 'null': 'True', 'db_column': "'remplacement_de'", 'to': "orm['rh_v1.Employe']"}),
+            'responsable': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'responsable'", 'null': 'True', 'db_column': "'responsable'", 'to': "orm['rh_v1.Employe']"}),
+            'responsable_implantation1': ('django.db.models.fields.IntegerField', [], {}),
+            'responsable_implantation2': ('django.db.models.fields.IntegerField', [], {}),
+            'service': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.Service']", 'null': 'True', 'db_column': "'service'", 'blank': 'True'}),
+            'statut': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.Statut']", 'null': 'True', 'db_column': "'statut'", 'blank': 'True'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
+            'type_contrat': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.TypeContrat']", 'null': 'True', 'db_column': "'type_contrat'", 'blank': 'True'})
+        },
+        'rh_v1.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'}),
+            'commentaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'date_creation': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'date_entree': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_maj': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'date_naissance': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'genre': ('django.db.models.fields.CharField', [], {'max_length': '1', 'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nationalite': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'nationalite'", 'to_field': "'code'", 'db_column': "'nationalite'", 'to': "orm['datamaster_modeles.Pays']"}),
+            'no_rue': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'pays'", 'db_column': "'pays'", 'to_field': "'code'", 'to': "orm['datamaster_modeles.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_v1.familleemploi': {
+            'Meta': {'object_name': 'FamilleEmploi'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh_v1.organismebstg': {
+            'Meta': {'object_name': 'OrganismeBstg'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '10'})
+        },
+        'rh_v1.poste': {
+            'Meta': {'object_name': 'Poste'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'date_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'implantation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'implantation'", 'to': "orm['datamaster_modeles.Implantation']"}),
+            'proportion': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
+            'type_poste': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.TypePoste']", 'db_column': "'type_poste'"})
+        },
+        'rh_v1.remuneration': {
+            'Meta': {'object_name': 'Remuneration'},
+            'annulation': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+            'date_annulation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_creation': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'date_desactivation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_effective': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'desactivation': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+            'devise': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.Devise']", 'to_field': "'code'", 'null': 'True', 'db_column': "'devise'", 'blank': 'True'}),
+            'dossier': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.Dossier']", 'db_column': "'dossier'"}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'montant': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+            'pourcentage': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.TypeRemuneration']", 'db_column': "'type'"}),
+            'type_revalorisation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.TypeRevalorisation']", 'null': 'True', 'db_column': "'type_revalorisation'", 'blank': 'True'}),
+            'user_annulation': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'user_creation': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'user_desactivation': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'rh_v1.service': {
+            'Meta': {'object_name': 'Service'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh_v1.statut': {
+            'Meta': {'object_name': 'Statut'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '25'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'type_contrat_categorie': ('django.db.models.fields.CharField', [], {'max_length': '10'})
+        },
+        'rh_v1.tauxchange': {
+            'Meta': {'object_name': 'TauxChange'},
+            'annee': ('django.db.models.fields.IntegerField', [], {}),
+            'devise': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.Devise']", 'db_column': "'devise'"}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'implantation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Implantation']", 'db_column': "'implantation'"}),
+            'taux': ('django.db.models.fields.FloatField', [], {})
+        },
+        'rh_v1.typecontrat': {
+            'Meta': {'object_name': 'TypeContrat'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'categorie': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'nom_long': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh_v1.typeposte': {
+            'Meta': {'object_name': 'TypePoste'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'date_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'description': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'famille_emploi': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['rh_v1.FamilleEmploi']", 'db_column': "'famille_emploi'"}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'is_responsable': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'nom_feminin': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh_v1.typeremuneration': {
+            'Meta': {'object_name': 'TypeRemuneration'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'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_v1.typerevalorisation': {
+            'Meta': {'object_name': 'TypeRevalorisation'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'rh_v1.valeurpoint': {
+            'Meta': {'object_name': 'ValeurPoint'},
+            'annee': ('django.db.models.fields.IntegerField', [], {}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'implantation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Implantation']", 'db_column': "'implantation'"}),
+            'valeur': ('django.db.models.fields.FloatField', [], {})
+        }
+    }
+
+    complete_apps = ['rh_v1']
diff --git a/project/old_rh_v1/migrations/__init__.py b/project/old_rh_v1/migrations/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/project/old_rh_v1/models.py b/project/old_rh_v1/models.py
new file mode 100644 (file)
index 0000000..71e0ce5
--- /dev/null
@@ -0,0 +1,538 @@
+# -=- encoding: utf-8 -=-
+
+import datetime
+from django.db import models
+from datamaster_modeles.models import Pays, Implantation
+from dae.managers import SecurityManager
+
+GENRE_CHOICES = (
+    ('m', 'Homme'),
+    ('f', 'Femme'),
+)
+SITUATION_CHOICES = (
+    ('C', 'Célibataire'),
+    ('F', 'Fiancé'),
+    ('M', 'Marié'),
+)
+
+class Employe(models.Model):   
+    # Identification
+    id = models.IntegerField(primary_key=True)
+    nom = models.CharField(max_length=255)
+    prenom = models.CharField(max_length=255)
+    nationalite = models.ForeignKey('datamaster_modeles.Pays', to_field='code', 
+                            related_name='nationalite', 
+                            db_column='nationalite')
+    date_naissance = models.DateField(null=True, blank=True)
+    # Infos personnelles
+    genre = models.CharField(max_length=1, null=True, blank=True,
+                            choices=GENRE_CHOICES)
+    situation_famille = models.CharField(max_length=1, null=True, blank=True,
+                            choices=SITUATION_CHOICES)
+    date_entree = models.DateField(null=True, blank=True) #devrait pas être là
+    # Coordonnées
+    tel_domicile = models.CharField(max_length=255, null=True, blank=True)
+    tel_cellulaire = models.CharField(max_length=255, null=True, blank=True)
+    adresse = models.CharField(max_length=255, null=True, blank=True)
+    no_rue = models.CharField(max_length=255, null=True, blank=True)
+    ville = models.CharField(max_length=255, null=True, blank=True)
+    province = models.CharField(max_length=255, null=True, blank=True)
+    code_postal = models.CharField(max_length=255, null=True, blank=True)
+    pays = models.ForeignKey('datamaster_modeles.Pays', to_field='code', 
+                            null=True, blank=True, 
+                            related_name='pays', db_column='pays')
+    # Métas
+    date_creation = models.DateField(auto_now_add=True)
+    date_maj = models.DateField(auto_now=True)
+    commentaire = models.TextField(null=True, blank=True)
+
+    def __unicode__(self):
+        return u'%s %s' % (self.prenom, self.nom)
+
+
+TYPE_DOSSIER_CHOICES = (
+    ('2', 'Local'),
+    ('1', 'Expatrié'),
+)
+
+class DossierManager(models.Manager):
+    """
+    Chargement de tous les objets FK existants sur chaque QuerySet.
+    """
+    prefixe_service = "poste1__service"
+    prefixe_implantation = "poste1__implantation__region"
+
+    def get_query_set(self):
+        fkeys = (
+            'employe',
+            'poste1',
+            'implantation1',
+            'poste2',
+            'implantation2',
+            'service',
+            'responsable',
+            'remplacement_de',
+            'statut',
+            'organisme_bstg',
+            'classement',
+            'type_contrat',
+        )
+        return super(DossierManager, self).get_query_set().select_related(*fkeys).all()
+
+class Dossier(models.Model):
+    # Identification
+    id = models.IntegerField(primary_key=True)
+    code = models.CharField(max_length=10, unique=True)
+    employe = models.ForeignKey('Employe', db_column='employe')
+    # Postes
+    poste1 = models.ForeignKey('Poste', db_column='poste1', 
+                            related_name='poste1')
+    implantation1 = models.ForeignKey('datamaster_modeles.Implantation', 
+                            db_column='implantation1', 
+                            related_name='implantation1', 
+                            blank=True, null=True)
+    complement1 = models.TextField(null=True, blank=True)
+    responsable_implantation1 = models.IntegerField()
+    poste2 = models.ForeignKey('Poste', db_column='poste2', 
+                            related_name='poste2', 
+                            blank=True, null=True)
+    implantation2 = models.ForeignKey('datamaster_modeles.Implantation', 
+                            db_column='implantation2', 
+                            related_name='implantation2', 
+                            null=True, blank=True)
+    complement2 = models.TextField(null=True, blank=True)
+    responsable_implantation2 = models.IntegerField() 
+    # Relations
+    service = models.ForeignKey('Service', db_column='service', 
+                            blank=True, null=True)
+    responsable = models.ForeignKey('Employe', db_column='responsable', 
+                            related_name='responsable', 
+                            blank=True, null=True)
+    remplacement_de = models.ForeignKey('Employe', db_column='remplacement_de', 
+                            related_name='remplacement_de', 
+                            blank=True, null=True)
+    type = models.CharField(max_length=1, choices=TYPE_DOSSIER_CHOICES)
+    statut = models.ForeignKey('Statut', db_column='statut', 
+                            blank=True, null=True)
+    organisme_bstg = models.ForeignKey('OrganismeBstg', 
+                            db_column='organisme_bstg', 
+                            blank=True, null=True)
+    # Rémunération
+    classement = models.ForeignKey('Classement', db_column='classement', 
+                            blank=True, null=True)
+    regime_travail = models.IntegerField()
+    # Mandat
+    mandat_date_debut = models.DateField()
+    mandat_date_fin = models.DateField(null=True, blank=True)
+    # Contrat
+    contrat_date_debut = models.DateField()
+    contrat_date_fin = models.DateField()
+    type_contrat = models.ForeignKey('TypeContrat', db_column='type_contrat', 
+                            blank=True, null=True)
+    # Meta
+    date_creation = models.DateField(auto_now_add=True)
+    date_maj = models.DateField(auto_now=True)
+    commentaire = models.TextField(null=True, blank=True) 
+
+    # Managers
+    objects = DossierManager()
+    
+    def __unicode__(self):
+        return u'%s : %s %s' % (self.employe, self.poste1, self.complement1)
+
+    def get_dernier_salaire_remun(self):
+        remun = [r for r in self.remuneration_set.all().order_by('-id') if r.type_id == 1] # type salaire de base
+        if len(remun) == 0:
+            return None
+        else:
+            return remun[0]
+
+    def get_salaire(self):
+        remun = self.get_dernier_salaire_remun()
+        if remun is not None:
+            return int(remun.montant)
+        else:
+            return None
+
+    def get_salaire_display(self):
+        """
+        Moyen rapide de récupérer le salaire correspodant à un dossier. Par contre,
+        toutes les rémuérations n'ont pas de devise associées, c'est pourquoi on récupère
+        les anciennes rémunérations pour rechercher si elle existait auparavant.
+        """
+        if self.dernier_salaire_remun() is not None:
+            devise_code = self.dernier_salaire_remun().devise.code
+        else:
+            devise_code = '???'
+        return "%s %s" % (self.get_salaire(), devise_code, )
+
+    def get_salaire_euro_display(self):
+        """
+        Moyen rapide de récupérer le salaire correspodant à un dossier. Par contre,
+        toutes les rémuérations n'ont pas de devise associées, c'est pourquoi on récupère
+        les anciennes rémunérations pour rechercher si elle existait auparavant.
+        La valeur est est affichée en Euros en se servant du taux actuel.
+        """
+        return "%s EUR" % (self.get_dernier_salaire_remun().en_euros())
+
+LIEN_PARENTE_CHOICES = (
+    ('Conjoint', 'Conjoint'),
+    ('Conjointe', 'Conjointe'),
+    ('Fille', 'Fille'),
+    ('Fils', 'Fils'),
+)
+
+class AyantDroit(models.Model):
+    # Identification
+    id = models.IntegerField(primary_key=True)
+    nom = models.CharField(max_length=255)
+    prenom = models.CharField(max_length=255)
+    # Relation
+    employe = models.ForeignKey('Employe', db_column='employe', 
+                            related_name='employe')
+    lien_parente = models.CharField(max_length=10, null=True, blank=True, 
+                            choices=LIEN_PARENTE_CHOICES)
+    # Méta
+    commentaire = models.TextField(null=True, blank=True) 
+    actif = models.BooleanField()
+    
+    
+class Remuneration(models.Model):
+    # Identification
+    id = models.IntegerField(primary_key=True)
+    dossier = models.ForeignKey('Dossier', db_column='dossier')
+    type = models.ForeignKey('TypeRemuneration', db_column='type')
+    type_revalorisation = models.ForeignKey('TypeRevalorisation', 
+                            db_column='type_revalorisation', 
+                            null=True, blank=True)
+    montant = models.FloatField(null=True, blank=True)
+    devise = models.ForeignKey('Devise', to_field='id', db_column='devise', null=True, blank=True)
+    date_effective = models.DateField(null=True, blank=True)
+    pourcentage = models.IntegerField(null=True, blank=True)
+    # Méta
+    date_creation = models.DateField(auto_now_add=True)
+    user_creation = models.IntegerField(null=True, blank=True) #User ou employé
+    desactivation = models.NullBooleanField(null=True, blank=True) #
+    date_desactivation = models.DateField(null=True, blank=True)
+    user_desactivation = models.IntegerField(null=True, blank=True) #User ou employé
+    annulation = models.NullBooleanField(null=True, blank=True)
+    date_annulation = models.DateField(null=True, blank=True)
+    user_annulation = models.IntegerField(null=True, blank=True) #User ou employé
+    
+    def __unicode__(self):
+        try:
+            devise = self.devise.code
+        except:
+            devise = "???"
+        return "%s %s (%s EUR - %s)" % (self.montant, devise, self.en_euros(), self.get_taux_historique(), )
+
+    def get_taux_historique(self):
+        """
+        Retourne le taux en vigueur durant l'année considérée. Un taux de 0 est crée, si le taux de change
+        n'existe pas.
+        """
+        taux = TauxChange.objects.filter(devise=self.devise, annee=self.date_creation.year)
+        if len(taux) > 0:
+            return taux[0]
+        else:   
+            return None
+
+    def en_euros(self):
+        tauxchange = self.get_taux_historique()
+        if tauxchange is not None:
+            return int(self.montant * tauxchange.taux)
+        else:
+            return 0
+
+class FamilleEmploi(models.Model):
+    # Identification
+    id = models.IntegerField(primary_key=True)
+    nom = models.CharField(max_length=255)
+    # Méta
+    actif = models.BooleanField()
+
+class TypePoste(models.Model):
+    # Identification
+    id = models.IntegerField(primary_key=True)
+    nom = models.CharField(max_length=255)
+    nom_feminin = models.CharField(max_length=255)
+    description = models.CharField(max_length=255)
+    is_responsable = models.BooleanField()
+    famille_emploi = models.ForeignKey('FamilleEmploi', 
+                            db_column='famille_emploi')
+    # Méta
+    date_modification = models.DateField(auto_now=True)
+    actif = models.BooleanField()
+
+    def __unicode__(self):
+        return u'%s' % self.nom
+        
+    class Meta:
+        ordering = ['nom']
+
+
+TYPE_PAIEMENT_CHOICES = (
+    ('Régulier', 'Régulier'),
+    ('Ponctuel', 'Ponctuel'),
+)
+
+NATURE_REMUNERATION_CHOICES = (
+    ('Accessoire', 'Accessoire'),
+    ('Charges', 'Charges'),
+    ('Indemnité', 'Indemnité'),
+    ('RAS', 'RAS'),
+    ('Traitement', 'Traitement'),
+)
+
+class TypeRemuneration(models.Model):
+    # Identification
+    id = models.IntegerField(primary_key=True)
+    nom = models.CharField(max_length=255)
+    type_paiement = models.CharField(max_length=30, 
+                            choices=TYPE_PAIEMENT_CHOICES)
+    nature_remuneration = models.CharField(max_length=30, 
+                            choices=NATURE_REMUNERATION_CHOICES)
+    # Méta
+    actif = models.BooleanField()
+
+    def __unicode__(self):
+        return u'%s' % self.nom
+
+
+class TypeRevalorisation(models.Model):
+    # Identification
+    id = models.IntegerField(primary_key=True)
+    nom = models.CharField(max_length=255)
+    # Méta
+    actif = models.BooleanField()
+    
+PROPORTION_CHOICES = (
+    ('0.5', '0.5'),
+    ('1', '1'),
+)
+
+class PosteManager(SecurityManager):
+    """
+    Chargement de tous les objets FK existants sur chaque QuerySet.
+    """
+    prefixe_implantation = "implantation__region"
+
+    def get_query_set(self):
+        fkeys = (
+            'implantation',
+            'type_poste',
+        )
+        return super(PosteManager, self).get_query_set().select_related(*fkeys).all()
+
+class Poste(models.Model):
+    # Identification
+    id = models.IntegerField(primary_key=True)
+    implantation = models.ForeignKey('datamaster_modeles.Implantation',
+                            db_column='implantation', related_name='+')
+    type_poste = models.ForeignKey('TypePoste', db_column='type_poste')
+    proportion = models.CharField(max_length=10, choices=PROPORTION_CHOICES)
+    #(sert à quoi?) renommer "regime_travail" ou autre?    convertir data en % (data * 100; ex: 1 = 100%)
+    # Méta
+    date_modification = models.DateField(auto_now=True)
+    actif = models.BooleanField()
+
+    # Managers
+    objects = PosteManager()
+
+    def __unicode__(self):
+        return u'%s - %s [%s]' % (self.implantation, self.type_poste.nom, 
+                            self.id)
+
+
+class Service(models.Model):
+    # Identification
+    id = models.IntegerField(primary_key=True)
+    nom = models.CharField(max_length=255)
+    # Méta
+    actif = models.BooleanField()
+
+    def __unicode__(self):
+        return u'%s' % self.nom
+        
+    class Meta:
+        ordering = ['nom']
+
+
+TYPE_ORGANISME_CHOICES = (
+    ('MAD', 'Mise à disposition'),
+    ('DET', 'Détachement'),
+)
+
+class OrganismeBstg(models.Model):
+    # Identification
+    id = models.IntegerField(primary_key=True)
+    nom = models.CharField(max_length=255)
+    type = models.CharField(max_length=10, choices=TYPE_ORGANISME_CHOICES)
+    # Méta
+    actif = models.BooleanField()
+
+    def __unicode__(self):
+        return u'%s (%s)' % (self.nom, self.type)
+
+    class Meta:
+        ordering = ['type', 'nom']
+
+
+CONTRAT_CATEGORIE_CHOICES= (
+    ('A', 'A'),
+    ('C', 'C'),
+)
+class Statut(models.Model):
+    # Identification
+    id = models.IntegerField(primary_key=True)
+    code = models.CharField(max_length=25, unique=True)
+    nom = models.CharField(max_length=255)
+    type_contrat_categorie = models.CharField(max_length=10, 
+                            choices=CONTRAT_CATEGORIE_CHOICES)
+    #CHOICES A, C (veut dire quoi?) voir TypeContrat.categorie
+    # Méta
+    actif = models.BooleanField()
+
+    def __unicode__(self):
+        return u'%s : %s' % (self.code, self.nom)
+
+TYPE_CLASSEMENT_CHOICES = (
+    ('S', 'S'),
+    ('T', 'T'),
+)
+
+class ClassementManager(models.Manager):
+    """
+    Ordonner les spcéfiquement les classements.
+    """
+    def get_query_set(self):
+        qs = super(self.__class__, self).get_query_set()
+        qs = qs.extra(select={'ponderation': 'FIND_IN_SET(type,"SO,HG,S,T,P,C,D")'})
+        qs = qs.extra(order_by=('ponderation', ))
+        return qs.all()
+
+
+class Classement(models.Model):
+    # Identification
+    id = models.IntegerField(primary_key=True)
+    type = models.CharField(max_length=10, choices=TYPE_CLASSEMENT_CHOICES)
+    echelon = models.IntegerField()
+    degre = models.IntegerField()
+    coefficient = models.FloatField()
+    # Méta
+    commentaire = models.TextField(null=True, blank=True) 
+    date_modification = models.DateField(auto_now=True)
+    actif = models.BooleanField()
+
+    # managers
+    objects = ClassementManager()
+
+    def __unicode__(self):
+        return u'%s.%s.%s' % (self.type, self.echelon, self.degre )
+
+    class Meta:
+        ordering = ['type','echelon','degre','coefficient']
+
+class TauxChange(models.Model):
+    # Identification
+    id = models.IntegerField(primary_key=True)
+    devise = models.ForeignKey('Devise', to_field='id', db_column='devise')
+    annee = models.IntegerField()
+    taux = models.FloatField()
+    # Relations
+    implantation = models.ForeignKey('datamaster_modeles.Implantation', 
+                            db_column='implantation',
+                            related_name='taux_change')
+
+    def __unicode__(self):
+        return u"%s %s : %s" % (self.devise, self.annee, self.taux)
+
+class ValeurPointManager(models.Manager):
+    """
+    Manager qui travaille uniquement sur les valeurs du point de l'année en cours.
+    """
+    mois = datetime.datetime.now().month
+    annee_courante = datetime.datetime.now().year
+
+    # Pour le mois de janvier et décembre on mets les 2 années pour faire la transition
+    if mois == 1:
+        filtre_annee = (annee_courante-1, annee_courante)
+    elif mois == 12:
+        filtre_annee = (annee_courante, annee_courante+1)
+    else:
+        filtre_annee = (annee_courante,)
+
+    def get_query_set(self):
+        return super(ValeurPointManager, self).get_query_set().select_related('implantation').filter(annee__in=self.filtre_annee)
+
+
+class ValeurPoint(models.Model):
+    # Identification
+    id = models.IntegerField(primary_key=True)
+    valeur = models.FloatField()
+    implantation = models.ForeignKey('datamaster_modeles.Implantation', 
+                            db_column='implantation', 
+                            related_name='valeurs_point')
+    # Méta
+    annee = models.IntegerField()
+
+    # Stockage de tous les taux de change pour optimiser la recherche de la devise associée
+    annee_courante = datetime.datetime.now().year
+    tauxchange = TauxChange.objects.select_related('devise').filter(annee=annee_courante)
+    
+    def get_tauxchange_courant(self):
+        """
+        Recherche le taux courant associé à la valeur d'un point.
+        Tous les taux de l'année courante sont chargés, pour optimiser un affichage en liste.
+        (On pourrait probablement améliorer le manager pour lui greffer le taux courant sous forme de JOIN)
+        """
+        for tauxchange in self.tauxchange:
+            if tauxchange.implantation_id == self.implantation_id:
+                return tauxchange
+        return None
+
+    def __unicode__(self):
+        tx = self.get_tauxchange_courant()
+        if tx:
+            devise_code = tx.devise.code
+        else:
+            devise_code = "??"
+        return u'%s %s (%s-%s)' % (self.valeur, devise_code, self.implantation.nom, self.annee)
+        
+    class Meta:
+        ordering = ['valeur']
+
+    objects = models.Manager()
+    actuelles = ValeurPointManager()
+
+class DeviseManager(models.Manager):
+    """
+    On oublie le US et le CAN
+    """
+    def get_query_set(self):
+        return super(DeviseManager, self).get_query_set().exclude(id__in=(3, 15))
+
+class Devise(models.Model):
+
+    objects = DeviseManager()
+
+    id = models.IntegerField(primary_key=True)
+    code =  models.CharField(max_length=10, unique=True)
+    nom = models.CharField(max_length=255)
+
+    def __unicode__(self):
+        return u'%s - %s' % (self.code, self.nom)
+
+
+class TypeContrat(models.Model):
+    # Identification
+    id = models.IntegerField(primary_key=True)
+    nom = models.CharField(max_length=255)
+    nom_long = models.CharField(max_length=255) #description
+    categorie = models.CharField(max_length=10, 
+                            choices=CONTRAT_CATEGORIE_CHOICES)
+    # Méta
+    actif = models.BooleanField()
+
+    def __unicode__(self):
+        return u'%s' % (self.nom)
index aa46aaa..87cf6a8 100644 (file)
@@ -10,6 +10,7 @@ from auf.django.metadata.models import AUFMetadata
 from auf.django.metadata.managers import NoDeleteManager
 import datamaster_modeles.models as ref
 from validators import validate_date_passee
+from dae.managers import SecurityManager
 
 # Constantes
 REGIME_TRAVAIL_DEFAULT = 100.00
@@ -52,9 +53,18 @@ POSTE_APPEL_CHOICES = (
     ('externe', 'Externe'),
 )
 
-class PosteManager(NoDeleteManager):
+class PosteManager(SecurityManager):
+    """
+    Chargement de tous les objets FK existants sur chaque QuerySet.
+    """
+    prefixe_implantation = "implantation__region"
+
     def get_query_set(self):
-        return super(PosteManager, self).get_query_set().select_related('implantation')
+        fkeys = (
+            'implantation',
+            'type_poste',
+        )
+        return super(PosteManager, self).get_query_set().select_related(*fkeys).all()
 
 class Poste_(AUFMetadata):
     """Un Poste est un emploi (job) à combler dans une implantation. 
@@ -610,6 +620,11 @@ class Dossier_(AUFMetadata):
     def remunerations(self):
         return self.rh_remuneration_remunerations.all().order_by('date_debut')
 
+    def get_salaire(self):
+        try:
+            return [r for r in self.remunerations().order_by('-date_debut') if r.type_id == 1][0]
+        except:
+            return None
 
 class Dossier(Dossier_):
     __doc__ = Dossier_.__doc__
@@ -1052,7 +1067,7 @@ class ValeurPoint_(AUFMetadata):
     salaire de base = coefficient * valeur du point de l'Implantation du Poste
     """
     
-    objects = ValeurPointManager()
+    actuelles = ValeurPointManager()
 
     valeur = models.FloatField(null=True)
     devise = models.ForeignKey('Devise', db_column='devise', null=True,
index e0a929e..7048099 100644 (file)
@@ -74,10 +74,9 @@ INSTALLED_APPS = (
     'ajax_select',
     'south',
     'reversion',
-    'project.rh',
     'auf.django.workflow',
     'auf.django.permissions',
-    'project.rh_v1',
+    #'project.rh_v1',
     'project.rh',
     'project.dae',
     'alphafilter',
@@ -95,7 +94,6 @@ TEMPLATE_CONTEXT_PROCESSORS = (
     'django.contrib.messages.context_processors.messages',
     'django.core.context_processors.request',
     'auf.django.skin.context_processors.auf',
-    #'project.context_processors.utilisateur',
     'project.context_processors.this_employe',
     'project.context_processors.user_is_admin',
     'dae.context_processors.user_in_dae_groupes',
diff --git a/project/utils.py b/project/utils.py
new file mode 100644 (file)
index 0000000..d8f765b
--- /dev/null
@@ -0,0 +1,23 @@
+# -*- encoding: utf-8 -*-
+
+import datamaster_modeles.models as ref
+
+def get_employe_from_user(user):
+  """
+  Retourne un employé AUF à partir de son user Django. 
+  """
+  try:
+      employe = ref.Authentification.objects.get(courriel=user.email).id
+  except:
+      raise Exception(u"L'employé avec le courriel %s n'a pas été trouvé dans le référentiel." % user.email)
+  return employe
+
+def is_user_dans_services_centraux(user):
+    employe = get_employe_from_user(user)
+    return employe.implantation_id in (15, 19)
+
+def is_user_dans_region(user):
+    employe = get_employe_from_user(user)
+    return not is_user_dans_services_centraux(user)
+
+
diff --git a/project/workflow.py b/project/workflow.py
new file mode 100644 (file)
index 0000000..bf1bd7f
--- /dev/null
@@ -0,0 +1,342 @@
+# -*- encoding: utf-8 -*-
+
+from django.contrib.auth.models import Group
+from auf.django.workflow.models import WorkflowMixin
+from utils import is_user_dans_services_centraux, is_user_dans_region
+
+def safe_create_groupe(name):
+    """
+    Création d'un groupe prédéfini. Retourne None, quand la création
+    ne peut se faire. (C'est le cas au syncdb, quand la table de groupe
+    n'a pas été crée encore).
+    """
+    try:
+        grp, created = Group.objects.get_or_create(name=name)
+    except:
+        return None
+    return grp
+
+# Groupes impliqués dans le Worflow
+grp_correspondants_rh = safe_create_groupe(name='Correspondants RH')
+grp_administrateurs = safe_create_groupe(name='Administrateurs')
+grp_directeurs_bureau = safe_create_groupe(name='Directeurs de bureau')
+grp_drh = safe_create_groupe(name='DRH')
+grp_drh2 = safe_create_groupe(name='DRH-2')
+grp_accior = safe_create_groupe(name='ACCIOR')
+grp_abf = safe_create_groupe(name='ABF')
+grp_haute_direction = safe_create_groupe(name='Haute direction')
+grp_service_utilisateurs = safe_create_groupe(name='Service utilisateurs')
+
+dae_groupes = (
+    grp_correspondants_rh,
+    grp_administrateurs,
+    grp_directeurs_bureau,
+    grp_drh,
+    grp_drh2,
+    grp_accior,
+    grp_abf,
+    grp_haute_direction,
+    grp_service_utilisateurs,
+)
+
+# codes états
+POSTE_ETAT_BROUILLON = 'BROUILLON'
+POSTE_ETAT_ADMINISTRATEUR = 'ADMINISTRATEUR'
+POSTE_ETAT_DIRECTEUR_BUREAU = 'DIRECTEUR_BUREAU'
+POSTE_ETAT_SERVICE_UTILISATEURS = 'SRV_UTILISATEURS'
+POSTE_ETAT_DRH_CONTROLE = 'DRH_CONTROLE'
+POSTE_ETAT_DRH_2 = 'DRH_2'
+POSTE_ETAT_DEMANDE_MODIF = 'DEMANDE_MODIF'
+POSTE_ETAT_ACCIOR = 'ACCIOR'
+POSTE_ETAT_ABF = 'ABF'
+POSTE_ETAT_HAUTE_DIRECTION = 'HAUTE_DIRECTION'
+POSTE_ETAT_DEMANDE_JUSTIF = 'DEMANDE_JUSTIF'
+POSTE_ETAT_REGION_FINALISATION = 'REGION_FINALISATION'
+POSTE_ETAT_DRH_FINALISATION = 'DRH_FINALISATION'
+POSTE_ETAT_FINALISE = 'FINALISE'
+
+#codes actions
+POSTE_ACTION_ENVOYER_BROUILLON = POSTE_ETAT_BROUILLON
+POSTE_ACTION_ENVOYER_ADMINISTRATEUR = POSTE_ETAT_ADMINISTRATEUR
+POSTE_ACTION_ENVOYER_DIRECTEUR_BUREAU = POSTE_ETAT_DIRECTEUR_BUREAU
+POSTE_ACTION_ENVOYER_SRV_UTILISATEURS = POSTE_ETAT_SERVICE_UTILISATEURS
+POSTE_ACTION_ENVOYER_DRH_CONTROLE = POSTE_ETAT_DRH_CONTROLE
+POSTE_ACTION_ENVOYER_DRH_2 = POSTE_ETAT_DRH_2
+POSTE_ACTION_DEMANDE_MODIF = POSTE_ETAT_DEMANDE_MODIF
+POSTE_ACTION_RETOUR_DEMANDE_MODIF = 'RETOUR_DEMANDE_MODIF'
+POSTE_ACTION_ENVOYER_ACCIOR = POSTE_ETAT_ACCIOR
+POSTE_ACTION_ENVOYER_ABF = POSTE_ETAT_ABF
+POSTE_ACTION_ENVOYER_HAUTE_DIRECTION = POSTE_ETAT_HAUTE_DIRECTION
+POSTE_ACTION_DEMANDE_JUSTIF = POSTE_ETAT_DEMANDE_JUSTIF
+POSTE_ACTION_RETOUR_DEMANDE_JUSTIF = 'RETOUR_DEMANDE_JUSTIF'
+POSTE_ACTION_ENVOYER_REGION_FINALISATION = POSTE_ETAT_REGION_FINALISATION
+POSTE_ACTION_ENVOYER_DRH_FINALISATION = POSTE_ETAT_DRH_FINALISATION
+POSTE_ACTION_FINALISER = 'FINALISER'
+
+#libellés états
+POSTE_ETATS = {
+    POSTE_ETAT_BROUILLON : u"En rédaction",
+    POSTE_ETAT_ADMINISTRATEUR : u"Validation de l'administrateur",
+    POSTE_ETAT_DIRECTEUR_BUREAU : u"Directeur de bureau",
+    POSTE_ETAT_SERVICE_UTILISATEURS : u"Service utilisateurs",
+    POSTE_ETAT_DRH_CONTROLE : u"Validation DRH",
+    POSTE_ETAT_DRH_2 : u"Validation DRH 2",
+    POSTE_ETAT_DEMANDE_MODIF : u"Demande de modification",
+    POSTE_ETAT_ACCIOR : u"ACCIOR",
+    POSTE_ETAT_ABF : u"ABF",
+    POSTE_ETAT_HAUTE_DIRECTION : u"Validation : Secrétaire général / Recteur",
+    POSTE_ETAT_DEMANDE_JUSTIF : u"Demande de justification",
+    POSTE_ETAT_REGION_FINALISATION : u'Retour à la région',
+    POSTE_ETAT_DRH_FINALISATION : u'Retour à la DRH',
+    POSTE_ETAT_FINALISE : u'Finalisée'
+    }
+
+#libellés états pour boutons
+POSTE_ETATS_BOUTONS = {
+    POSTE_ETAT_DIRECTEUR_BUREAU : u"Envoyer au directeur de bureau",
+    POSTE_ETAT_SERVICE_UTILISATEURS : u"Envoyer au service utilisateurs",
+    POSTE_ETAT_ADMINISTRATEUR : u"Envoyer à l&#39;adminstrateur",
+    POSTE_ETAT_DRH_CONTROLE : u"Envoyer à la DRH (validation)",
+    POSTE_ETAT_DRH_2 : u"Envoyer à DRH 2",
+    POSTE_ETAT_DEMANDE_MODIF : u"Envoyer une demande de modification",
+    POSTE_ETAT_ACCIOR : u"Envoyer à l&#39;ACCIOR",
+    POSTE_ETAT_ABF : u"Envoyer à l&#39;ABF",
+    POSTE_ETAT_HAUTE_DIRECTION : u"Envoyer à la haute direction",
+    POSTE_ETAT_DEMANDE_JUSTIF : u"Envoyer une demande de justification",
+    POSTE_ETAT_REGION_FINALISATION : u"Retourner à la région pour finalisation",
+    POSTE_ETAT_DRH_FINALISATION : u'Retourner à la DRH pour finalisation',
+    POSTE_ETAT_FINALISE : u'Finaliser'
+    }
+
+# définition du worflow séquentiel
+POSTE_ACTIONS = {
+    POSTE_ACTION_ENVOYER_BROUILLON : {
+        'nom' : u'Créer',
+        'etat_initial' : None,
+        'etat_final' : POSTE_ETAT_BROUILLON,
+    },
+    POSTE_ACTION_ENVOYER_ADMINISTRATEUR : {
+        'nom' : u'Envoyer',
+        'etat_initial' : (POSTE_ETAT_BROUILLON,),
+        'etat_final' : POSTE_ETAT_ADMINISTRATEUR,
+    },
+    POSTE_ACTION_ENVOYER_SRV_UTILISATEURS : {
+        'nom' : u'Envoyer',
+        'etat_initial' : (POSTE_ETAT_ADMINISTRATEUR,),
+        'etat_final' : POSTE_ETAT_SERVICE_UTILISATEURS,
+    },
+    POSTE_ACTION_ENVOYER_DIRECTEUR_BUREAU : {
+        'nom' : u'Envoyer',
+        'etat_initial' : (POSTE_ETAT_ADMINISTRATEUR,),
+        'etat_final' : POSTE_ETAT_DIRECTEUR_BUREAU,
+    },
+    POSTE_ACTION_ENVOYER_DRH_CONTROLE : {
+        'nom' : u'Envoyer',
+        'etat_initial' : (POSTE_ETAT_ADMINISTRATEUR, POSTE_ETAT_DIRECTEUR_BUREAU, POSTE_ETAT_SERVICE_UTILISATEURS),
+        'etat_final' : POSTE_ETAT_DRH_CONTROLE,
+    },
+    POSTE_ACTION_ENVOYER_DRH_2 : {
+        'nom' : u'Envoyer',
+        'etat_initial' : (POSTE_ETAT_DRH_CONTROLE,),
+        'etat_final' : POSTE_ETAT_DRH_2,
+    },
+    POSTE_ACTION_DEMANDE_MODIF : {
+        'nom' : u'Envoyer',
+        'etat_initial' : (POSTE_ETAT_DRH_CONTROLE, POSTE_ETAT_DRH_2),
+        'etat_final': POSTE_ETAT_DEMANDE_MODIF,
+    },
+    POSTE_ACTION_RETOUR_DEMANDE_MODIF : {
+        'nom': u'Retourner',
+        'etat_initial': (POSTE_ETAT_DEMANDE_MODIF,),
+        'etat_final': POSTE_ETAT_DRH_CONTROLE,
+    },
+    POSTE_ACTION_ENVOYER_ACCIOR : {
+        'nom' : u'Envoyer',
+        'etat_initial' : (POSTE_ETAT_DRH_2,),
+        'etat_final' : POSTE_ETAT_ACCIOR,
+    },
+    POSTE_ACTION_ENVOYER_ABF : {
+        'nom' : u'Envoyer',
+        'etat_initial' : (POSTE_ETAT_ACCIOR,),
+        'etat_final' : POSTE_ETAT_ABF,
+    },
+    POSTE_ACTION_ENVOYER_HAUTE_DIRECTION : {
+        'nom' : u'Envoyer',
+        'etat_initial' : (POSTE_ETAT_ABF,),
+        'etat_final' : POSTE_ETAT_HAUTE_DIRECTION,
+    },
+    POSTE_ACTION_DEMANDE_JUSTIF : {
+        'nom' : u'Envoyer',
+        'etat_initial' : (POSTE_ETAT_HAUTE_DIRECTION,),
+        'etat_final': POSTE_ETAT_DEMANDE_JUSTIF,
+    },
+    POSTE_ACTION_RETOUR_DEMANDE_JUSTIF : {
+        'nom' : u'Envoyer',
+        'etat_initial' : (POSTE_ETAT_DEMANDE_JUSTIF,),
+        'etat_final': POSTE_ETAT_HAUTE_DIRECTION,
+    },
+    POSTE_ACTION_ENVOYER_REGION_FINALISATION : {
+        'nom' : u'Envoyer',
+        'etat_initial' : (POSTE_ETAT_HAUTE_DIRECTION,),
+        'etat_final' : POSTE_ETAT_REGION_FINALISATION
+    },
+    POSTE_ACTION_ENVOYER_DRH_FINALISATION : {
+        'nom' : u'Envoyer',
+        'etat_initial' : (POSTE_ETAT_REGION_FINALISATION,),
+        'etat_final' : POSTE_ETAT_DRH_FINALISATION,
+    },
+    POSTE_ACTION_FINALISER : {
+        'nom' : u'Finaliser',
+        'etat_initial' : (POSTE_ETAT_DRH_FINALISATION,),
+        'etat_final' : POSTE_ETAT_FINALISE
+    },
+}
+
+
+class PosteWorkflow(WorkflowMixin):
+    etat_initial = POSTE_ETAT_BROUILLON
+    etats = POSTE_ETATS
+    actions = POSTE_ACTIONS
+
+    class Meta:
+        abstract = True
+        app_label = "rh"
+
+    def acces_directeur_bureau(self, action, request):
+        user_groups = request.user.groups.all()
+        return grp_drh in user_groups or grp_drh2 in user_groups or \
+                (is_user_dans_services_centraux(request.user) and 
+                 grp_administrateurs in user_groups)
+
+    def acces_administrateur(self, action, request):
+        user_groups = request.user.groups.all()
+        return grp_correspondants_rh in user_groups or grp_drh in user_groups or \
+                grp_drh2 in user_groups
+
+    def acces_drh_controle(self, action, request):
+        user_groups = request.user.groups.all()
+        return grp_directeurs_bureau in user_groups or \
+                grp_service_utilisateurs in user_groups or \
+                grp_drh in user_groups or grp_drh2 in user_groups or \
+                (grp_administrateurs in user_groups and
+                 (action == POSTE_ACTION_RETOUR_DEMANDE_MODIF or
+                  is_user_dans_region(request.user)))
+
+    def acces_drh_2(self, action, request):
+        user_groups = request.user.groups.all()
+        return grp_drh in user_groups
+
+    def acces_demande_modif(self, action, request):
+        user_groups = request.user.groups.all()
+        return grp_drh in user_groups or grp_drh2 in user_groups
+
+    def acces_srv_utilisateurs(self, action, request):
+        if not is_user_dans_services_centraux(request.user):
+            return False
+        user_groups = request.user.groups.all()
+        return grp_administrateurs in user_groups or grp_drh in user_groups or \
+               grp_drh2 in user_groups
+
+    def acces_accior(self, action, request):
+        user_groups = request.user.groups.all()
+        return grp_drh in user_groups or grp_drh2 in user_groups
+
+    def acces_abf(self, action, request):
+        user_groups = request.user.groups.all()
+        return grp_accior in user_groups or grp_drh in user_groups or grp_drh2 in user_groups
+
+    def acces_haute_direction(self, action, request):
+        user_groups = request.user.groups.all()
+        return grp_abf in user_groups or grp_drh in user_groups or grp_drh2 in user_groups
+
+    def acces_region_finalisation(self, action, request):
+        user_groups = request.user.groups.all()
+        return grp_haute_direction in user_groups or grp_drh in user_groups or \
+                grp_drh2 in user_groups
+
+    def acces_drh_finalisation(self, action, request):
+        user_groups = request.user.groups.all()
+        return grp_administrateurs in user_groups or \
+               grp_correspondants_rh in user_groups or \
+                grp_drh in user_groups or \
+                grp_drh2 in user_groups
+
+    def acces_demande_justif(self, action, request):
+        user_groups = request.user.groups.all()
+        return grp_haute_direction in user_groups or grp_drh in user_groups or \
+                grp_drh2 in user_groups
+
+    def acces_retour_demande_modif(self, action, request):
+        user_groups = request.user.groups.all()
+        return grp_administrateurs in user_groups or grp_drh in user_groups or \
+                grp_drh2 in user_groups
+
+    def acces_retour_demande_justif(self, action, request):
+        user_groups = request.user.groups.all()
+        return grp_drh in user_groups or grp_drh2 in user_groups
+
+    def acces_finaliser(self, action, request):
+        user_groups = request.user.groups.all()
+        return grp_drh in user_groups or grp_drh2 in user_groups
+
+
+#codes actions
+DOSSIER_ETAT_BROUILLON = POSTE_ETAT_BROUILLON
+DOSSIER_ETAT_ADMINISTRATEUR = POSTE_ETAT_ADMINISTRATEUR
+DOSSIER_ETAT_DIRECTEUR_BUREAU = POSTE_ETAT_DIRECTEUR_BUREAU
+DOSSIER_ETAT_SERVICE_UTILISATEURS = POSTE_ETAT_SERVICE_UTILISATEURS
+DOSSIER_ETAT_DRH_CONTROLE = POSTE_ETAT_DRH_CONTROLE
+DOSSIER_ETAT_DRH_2 = POSTE_ETAT_DRH_2
+DOSSIER_ETAT_DEMANDE_MODIF = POSTE_ETAT_DEMANDE_MODIF
+DOSSIER_ETAT_ACCIOR = POSTE_ETAT_ACCIOR
+DOSSIER_ETAT_ABF = POSTE_ETAT_ABF
+DOSSIER_ETAT_HAUTE_DIRECTION = POSTE_ETAT_HAUTE_DIRECTION
+DOSSIER_ETAT_DEMANDE_JUSTIF = POSTE_ETAT_DEMANDE_JUSTIF
+DOSSIER_ETAT_REGION_FINALISATION = POSTE_ETAT_REGION_FINALISATION
+DOSSIER_ETAT_DRH_FINALISATION = POSTE_ETAT_DRH_FINALISATION
+DOSSIER_ETAT_FINALISE = POSTE_ETAT_FINALISE
+
+class DossierWorkflow(PosteWorkflow):
+
+    class Meta:
+        abstract = True
+        app_label = "rh"
+
+
+MAP_GROUPE_ETATS_A_FAIRE = {
+    grp_correspondants_rh : (POSTE_ETAT_BROUILLON, DOSSIER_ETAT_BROUILLON,
+                             POSTE_ETAT_REGION_FINALISATION,
+                             DOSSIER_ETAT_REGION_FINALISATION),
+    grp_service_utilisateurs : (POSTE_ETAT_SERVICE_UTILISATEURS,
+                                DOSSIER_ETAT_SERVICE_UTILISATEURS,),
+    grp_administrateurs : (POSTE_ETAT_ADMINISTRATEUR,
+                           DOSSIER_ETAT_ADMINISTRATEUR,
+                           POSTE_ETAT_DEMANDE_MODIF,
+                           DOSSIER_ETAT_DEMANDE_MODIF,
+                           POSTE_ETAT_REGION_FINALISATION,
+                           DOSSIER_ETAT_REGION_FINALISATION,
+                          ),
+    grp_directeurs_bureau : (POSTE_ETAT_DIRECTEUR_BUREAU, DOSSIER_ETAT_DIRECTEUR_BUREAU, ),
+    grp_drh : (POSTE_ETAT_DRH_CONTROLE, POSTE_ETAT_DRH_FINALISATION,
+               DOSSIER_ETAT_DRH_CONTROLE, DOSSIER_ETAT_DRH_FINALISATION,
+               POSTE_ETAT_DEMANDE_JUSTIF, DOSSIER_ETAT_DEMANDE_JUSTIF),
+    grp_drh2 : (POSTE_ETAT_DRH_2, DOSSIER_ETAT_DRH_2),
+    grp_accior : (POSTE_ETAT_ACCIOR, DOSSIER_ETAT_ACCIOR, ),
+    grp_abf : (POSTE_ETAT_ABF, DOSSIER_ETAT_ABF, ),
+    grp_haute_direction : (POSTE_ETAT_HAUTE_DIRECTION, DOSSIER_ETAT_HAUTE_DIRECTION, ),
+}
+
+
+ETATS_EDITABLE = (POSTE_ETAT_BROUILLON, POSTE_ETAT_ADMINISTRATEUR,
+                  POSTE_ETAT_DRH_CONTROLE, POSTE_ETAT_DRH_2,
+                  POSTE_ETAT_DIRECTEUR_BUREAU,
+                  POSTE_ETAT_SERVICE_UTILISATEURS, POSTE_ETAT_DEMANDE_MODIF,
+                  POSTE_ETAT_DEMANDE_JUSTIF, DOSSIER_ETAT_BROUILLON,
+                  DOSSIER_ETAT_ADMINISTRATEUR, DOSSIER_ETAT_DRH_CONTROLE,
+                  DOSSIER_ETAT_DRH_2, DOSSIER_ETAT_DIRECTEUR_BUREAU,
+                  DOSSIER_ETAT_SERVICE_UTILISATEURS,
+                  DOSSIER_ETAT_DEMANDE_MODIF, DOSSIER_ETAT_DEMANDE_JUSTIF,
+)
+
+ETATS_VALIDE = (DOSSIER_ETAT_REGION_FINALISATION, DOSSIER_ETAT_DRH_FINALISATION,
+                DOSSIER_ETAT_FINALISE)