fix conflict
authordavin baragiotta <davin.baragiotta@u-db.(none)>
Wed, 25 May 2011 14:00:25 +0000 (10:00 -0400)
committerDavin BARAGIOTTA <davin.baragiotta@auf.org>
Wed, 25 May 2011 14:00:25 +0000 (10:00 -0400)
22 files changed:
buildout.cfg
project/budget/admin.py [new file with mode: 0644]
project/budget/migrations/0003_auto__add_classement__add_tauxchange__add_valeurpoint__add_remuneratio.py [new file with mode: 0644]
project/budget/models.py
project/dae/forms.py
project/dae/managers.py
project/dae/migrations/0038_auto__add_field_poste_type_intervention.py [new file with mode: 0644]
project/dae/models.py
project/dae/templates/dae/embauche.html
project/dae/templates/dae/embauche_consulter.html
project/dae/templates/dae/ligne_validation.html [new file with mode: 0644]
project/dae/templates/dae/poste.html
project/dae/templates/dae/poste_consulter.html
project/dae/templates/dae/poste_resume.html
project/dae/templatetags/dae.py
project/dae/utils.py
project/dae/views.py
project/dae/workflow.py
project/media/css/dae.css
project/rh/admin.py
project/rh/lib.py [new file with mode: 0644]
project/rh/models.py

index 22dfa48..74c2627 100644 (file)
@@ -36,7 +36,7 @@ south = 0.7
 auf.django.skin = 0.15dev
 auf.django.auth = 0.5.2dev
 django-reversion = 1.3.3
-auf.django.workflow = 0.10dev
+auf.django.workflow = 0.13dev
 django-ajax-selects = 1.1.4
 
 #reportlab = 2.5
diff --git a/project/budget/admin.py b/project/budget/admin.py
new file mode 100644 (file)
index 0000000..5338b9b
--- /dev/null
@@ -0,0 +1,15 @@
+# -*- encoding: utf-8 -*-
+
+from django.contrib import admin
+
+from budget.models import *
+from rh.lib import *
+
+admin.site.register(Classement, ClassementAdmin)
+admin.site.register(Dossier, DossierAdmin)
+admin.site.register(Evenement, EvenementAdmin)
+admin.site.register(EvenementRemuneration, EvenementRemunerationAdmin)
+admin.site.register(Poste, PosteAdmin)
+admin.site.register(Remuneration, RemunerationAdmin)
+admin.site.register(ValeurPoint, ValeurPointAdmin)
+admin.site.register(TauxChange, TauxChangeAdmin)
diff --git a/project/budget/migrations/0003_auto__add_classement__add_tauxchange__add_valeurpoint__add_remuneratio.py b/project/budget/migrations/0003_auto__add_classement__add_tauxchange__add_valeurpoint__add_remuneratio.py
new file mode 100644 (file)
index 0000000..9bf5f14
--- /dev/null
@@ -0,0 +1,708 @@
+# 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 'Classement'
+        db.create_table('budget_classement', (
+            ('coefficient', self.gf('django.db.models.fields.FloatField')(default=0)),
+            ('user_desactivation', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='+', null=True, db_column='user_desactivation', to=orm['auth.User'])),
+            ('type', self.gf('django.db.models.fields.CharField')(max_length=10)),
+            ('degre', 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.related.ForeignKey')(blank=True, related_name='+', null=True, db_column='user_creation', to=orm['auth.User'])),
+            ('echelon', self.gf('django.db.models.fields.IntegerField')()),
+            ('commentaire', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
+            ('user_modification', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='+', null=True, db_column='user_modification', to=orm['auth.User'])),
+            ('date_modification', self.gf('django.db.models.fields.DateField')(auto_now=True, blank=True)),
+            ('date_desactivation', self.gf('django.db.models.fields.DateField')(null=True, blank=True)),
+            ('actif', self.gf('django.db.models.fields.BooleanField')(default=True, blank=True)),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('simulation', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['budget.Simulation'])),
+        ))
+        db.send_create_signal('budget', ['Classement'])
+
+        # Adding model 'TauxChange'
+        db.create_table('budget_tauxchange', (
+            ('user_desactivation', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='+', null=True, db_column='user_desactivation', to=orm['auth.User'])),
+            ('devise', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', to_field='code', db_column='devise', to=orm['rh.Devise'])),
+            ('taux', self.gf('django.db.models.fields.FloatField')()),
+            ('date_creation', self.gf('django.db.models.fields.DateField')(auto_now_add=True, blank=True)),
+            ('annee', self.gf('django.db.models.fields.IntegerField')()),
+            ('user_creation', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='+', null=True, db_column='user_creation', to=orm['auth.User'])),
+            ('user_modification', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='+', null=True, db_column='user_modification', to=orm['auth.User'])),
+            ('date_modification', self.gf('django.db.models.fields.DateField')(auto_now=True, blank=True)),
+            ('date_desactivation', self.gf('django.db.models.fields.DateField')(null=True, blank=True)),
+            ('actif', self.gf('django.db.models.fields.BooleanField')(default=True, blank=True)),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('simulation', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['budget.Simulation'])),
+        ))
+        db.send_create_signal('budget', ['TauxChange'])
+
+        # Adding model 'ValeurPoint'
+        db.create_table('budget_valeurpoint', (
+            ('user_desactivation', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='+', null=True, db_column='user_desactivation', to=orm['auth.User'])),
+            ('devise', self.gf('django.db.models.fields.related.ForeignKey')(default=5, related_name='+', db_column='devise', to=orm['rh.Devise'])),
+            ('date_creation', self.gf('django.db.models.fields.DateField')(auto_now_add=True, blank=True)),
+            ('annee', self.gf('django.db.models.fields.IntegerField')()),
+            ('implantation', self.gf('django.db.models.fields.related.ForeignKey')(related_name='budget_valeur_point', db_column='implantation', to=orm['datamaster_modeles.Implantation'])),
+            ('user_creation', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='+', null=True, db_column='user_creation', to=orm['auth.User'])),
+            ('valeur', self.gf('django.db.models.fields.FloatField')()),
+            ('user_modification', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='+', null=True, db_column='user_modification', to=orm['auth.User'])),
+            ('date_modification', self.gf('django.db.models.fields.DateField')(auto_now=True, blank=True)),
+            ('date_desactivation', self.gf('django.db.models.fields.DateField')(null=True, blank=True)),
+            ('actif', self.gf('django.db.models.fields.BooleanField')(default=True, blank=True)),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('simulation', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['budget.Simulation'])),
+        ))
+        db.send_create_signal('budget', ['ValeurPoint'])
+
+        # Adding model 'Remuneration'
+        db.create_table('budget_remuneration', (
+            ('montant', self.gf('django.db.models.fields.FloatField')(default=0, null=True, blank=True)),
+            ('user_desactivation', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='+', null=True, db_column='user_desactivation', to=orm['auth.User'])),
+            ('dossier', self.gf('django.db.models.fields.related.ForeignKey')(related_name='budget_remuneration_remunerations', db_column='dossier', to=orm['rh.Dossier'])),
+            ('type', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', db_column='type', to=orm['rh.TypeRemuneration'])),
+            ('date_fin', self.gf('django.db.models.fields.DateField')(null=True, blank=True)),
+            ('date_creation', self.gf('django.db.models.fields.DateField')(auto_now_add=True, blank=True)),
+            ('date_debut', self.gf('django.db.models.fields.DateField')(null=True, blank=True)),
+            ('devise', self.gf('django.db.models.fields.related.ForeignKey')(default=5, related_name='+', db_column='devise', to=orm['rh.Devise'])),
+            ('user_creation', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='+', null=True, db_column='user_creation', to=orm['auth.User'])),
+            ('commentaire', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True)),
+            ('type_revalorisation', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='+', null=True, db_column='type_revalorisation', to=orm['rh.TypeRevalorisation'])),
+            ('user_modification', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='+', null=True, db_column='user_modification', to=orm['auth.User'])),
+            ('date_modification', self.gf('django.db.models.fields.DateField')(auto_now=True, blank=True)),
+            ('date_desactivation', self.gf('django.db.models.fields.DateField')(null=True, blank=True)),
+            ('actif', self.gf('django.db.models.fields.BooleanField')(default=True, blank=True)),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('simulation', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['budget.Simulation'])),
+        ))
+        db.send_create_signal('budget', ['Remuneration'])
+
+        # Adding model 'Evenement'
+        db.create_table('budget_evenement', (
+            ('nom', self.gf('django.db.models.fields.CharField')(max_length=255)),
+            ('user_desactivation', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='+', null=True, db_column='user_desactivation', to=orm['auth.User'])),
+            ('dossier', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', db_column='dossier', to=orm['rh.Dossier'])),
+            ('date_fin', self.gf('django.db.models.fields.DateField')(null=True, blank=True)),
+            ('date_creation', self.gf('django.db.models.fields.DateField')(auto_now_add=True, blank=True)),
+            ('user_creation', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='+', null=True, db_column='user_creation', to=orm['auth.User'])),
+            ('date_debut', self.gf('django.db.models.fields.DateField')()),
+            ('user_modification', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='+', null=True, db_column='user_modification', to=orm['auth.User'])),
+            ('date_modification', self.gf('django.db.models.fields.DateField')(auto_now=True, blank=True)),
+            ('date_desactivation', self.gf('django.db.models.fields.DateField')(null=True, blank=True)),
+            ('actif', self.gf('django.db.models.fields.BooleanField')(default=True, blank=True)),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('simulation', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['budget.Simulation'])),
+        ))
+        db.send_create_signal('budget', ['Evenement'])
+
+        # Adding model 'EvenementRemuneration'
+        db.create_table('budget_evenementremuneration', (
+            ('montant', self.gf('django.db.models.fields.FloatField')(default=0, null=True, blank=True)),
+            ('user_desactivation', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='+', null=True, db_column='user_desactivation', to=orm['auth.User'])),
+            ('dossier', self.gf('django.db.models.fields.related.ForeignKey')(related_name='budget_evenementremuneration_remunerations', db_column='dossier', to=orm['rh.Dossier'])),
+            ('type', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', db_column='type', to=orm['rh.TypeRemuneration'])),
+            ('evenement', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', db_column='evenement', to=orm['rh.Evenement'])),
+            ('date_fin', self.gf('django.db.models.fields.DateField')(null=True, blank=True)),
+            ('date_creation', self.gf('django.db.models.fields.DateField')(auto_now_add=True, blank=True)),
+            ('date_debut', self.gf('django.db.models.fields.DateField')(null=True, blank=True)),
+            ('devise', self.gf('django.db.models.fields.related.ForeignKey')(default=5, related_name='+', db_column='devise', to=orm['rh.Devise'])),
+            ('user_creation', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='+', null=True, db_column='user_creation', to=orm['auth.User'])),
+            ('commentaire', self.gf('django.db.models.fields.CharField')(max_length=255, null=True, blank=True)),
+            ('type_revalorisation', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='+', null=True, db_column='type_revalorisation', to=orm['rh.TypeRevalorisation'])),
+            ('user_modification', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='+', null=True, db_column='user_modification', to=orm['auth.User'])),
+            ('date_modification', self.gf('django.db.models.fields.DateField')(auto_now=True, blank=True)),
+            ('date_desactivation', self.gf('django.db.models.fields.DateField')(null=True, blank=True)),
+            ('actif', self.gf('django.db.models.fields.BooleanField')(default=True, blank=True)),
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+            ('simulation', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['budget.Simulation'])),
+        ))
+        db.send_create_signal('budget', ['EvenementRemuneration'])
+    
+    
+    def backwards(self, orm):
+        
+        # Deleting model 'Classement'
+        db.delete_table('budget_classement')
+
+        # Deleting model 'TauxChange'
+        db.delete_table('budget_tauxchange')
+
+        # Deleting model 'ValeurPoint'
+        db.delete_table('budget_valeurpoint')
+
+        # Deleting model 'Remuneration'
+        db.delete_table('budget_remuneration')
+
+        # Deleting model 'Evenement'
+        db.delete_table('budget_evenement')
+
+        # Deleting model 'EvenementRemuneration'
+        db.delete_table('budget_evenementremuneration')
+    
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'budget.classement': {
+            'Meta': {'object_name': 'Classement'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'coefficient': ('django.db.models.fields.FloatField', [], {'default': '0'}),
+            'commentaire': ('django.db.models.fields.TextField', [], {'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_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.AutoField', [], {'primary_key': 'True'}),
+            'simulation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['budget.Simulation']"}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_desactivation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_desactivation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"})
+        },
+        'budget.dossier': {
+            'Meta': {'object_name': 'Dossier'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'classement': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'classement'", 'to': "orm['rh.Classement']"}),
+            'date_creation': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'date_debut': ('django.db.models.fields.DateField', [], {}),
+            'date_desactivation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_fin': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'employe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'employe'", 'to': "orm['rh.Employe']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'organisme_bstg': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'organisme_bstg'", 'to': "orm['rh.OrganismeBstg']"}),
+            'poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'poste'", 'to': "orm['rh.Poste']"}),
+            'regime_travail': ('django.db.models.fields.DecimalField', [], {'default': '100.0', 'max_digits': '12', 'decimal_places': '2'}),
+            'regime_travail_nb_heure_semaine': ('django.db.models.fields.DecimalField', [], {'default': '35.0', 'max_digits': '12', 'decimal_places': '2'}),
+            'remplacement': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'simulation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['budget.Simulation']"}),
+            'statut': ('django.db.models.fields.related.ForeignKey', [], {'default': '3', 'related_name': "'+'", 'to': "orm['rh.Statut']"}),
+            'statut_residence': ('django.db.models.fields.CharField', [], {'default': "'local'", 'max_length': '10'}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_desactivation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_desactivation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"})
+        },
+        'budget.evenement': {
+            'Meta': {'object_name': 'Evenement'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'date_creation': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'date_debut': ('django.db.models.fields.DateField', [], {}),
+            'date_desactivation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_fin': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'dossier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'dossier'", 'to': "orm['rh.Dossier']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'simulation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['budget.Simulation']"}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_desactivation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_desactivation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"})
+        },
+        'budget.evenementremuneration': {
+            'Meta': {'object_name': 'EvenementRemuneration'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'commentaire': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'date_creation': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'date_debut': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_desactivation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_fin': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'devise': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'db_column': "'devise'", 'to': "orm['rh.Devise']"}),
+            'dossier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'budget_evenementremuneration_remunerations'", 'db_column': "'dossier'", 'to': "orm['rh.Dossier']"}),
+            'evenement': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'evenement'", 'to': "orm['rh.Evenement']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'montant': ('django.db.models.fields.FloatField', [], {'default': '0', 'null': 'True', 'blank': 'True'}),
+            'simulation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['budget.Simulation']"}),
+            'type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'type'", 'to': "orm['rh.TypeRemuneration']"}),
+            'type_revalorisation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'type_revalorisation'", 'to': "orm['rh.TypeRevalorisation']"}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_desactivation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_desactivation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"})
+        },
+        'budget.poste': {
+            'Meta': {'object_name': 'Poste'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'appel': ('django.db.models.fields.CharField', [], {'default': "'interne'", 'max_length': '10'}),
+            'autre_max': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+            'autre_min': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+            'classement_max': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'classement_max'", 'to': "orm['rh.Classement']"}),
+            'classement_min': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'classement_min'", 'to': "orm['rh.Classement']"}),
+            'comp_autre_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_autre_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_fonctionpub_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_fonctionpub_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_locale_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_locale_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_ong_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_ong_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_universite_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_universite_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'date_creation': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'date_debut': ('django.db.models.fields.DateField', [], {}),
+            'date_desactivation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_fin': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'date_validation': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'devise_comparaison': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'db_column': "'devise_comparaison'", 'to': "orm['rh.Devise']"}),
+            'devise_max': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'db_column': "'devise_max'", 'to': "orm['rh.Devise']"}),
+            'devise_min': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'db_column': "'devise_min'", 'to': "orm['rh.Devise']"}),
+            'expatrie': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'implantation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'implantation'", 'to': "orm['datamaster_modeles.Implantation']"}),
+            'indemn_max': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+            'indemn_min': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+            'justification': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'local': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'mise_a_disposition': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'nom_feminin': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}),
+            'regime_travail': ('django.db.models.fields.DecimalField', [], {'default': '100.0', 'max_digits': '12', 'decimal_places': '2'}),
+            'regime_travail_nb_heure_semaine': ('django.db.models.fields.DecimalField', [], {'default': '35.0', 'max_digits': '12', 'decimal_places': '2'}),
+            'responsable': ('django.db.models.fields.related.ForeignKey', [], {'default': '149', 'related_name': "'+'", 'db_column': "'responsable'", 'to': "orm['rh.Poste']"}),
+            'salaire_max': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+            'salaire_min': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+            'service': ('django.db.models.fields.related.ForeignKey', [], {'default': '1', 'related_name': "'+'", 'db_column': "'service'", 'to': "orm['rh.Service']"}),
+            'simulation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['budget.Simulation']"}),
+            'type_poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'db_column': "'type_poste'", 'to': "orm['rh.TypePoste']"}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_desactivation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_desactivation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"}),
+            'valeur_point_max': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'valeur_point_max'", 'to': "orm['rh.ValeurPoint']"}),
+            'valeur_point_min': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'valeur_point_min'", 'to': "orm['rh.ValeurPoint']"})
+        },
+        'budget.remuneration': {
+            'Meta': {'object_name': 'Remuneration'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'commentaire': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'date_creation': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'date_debut': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_desactivation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_fin': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'devise': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'db_column': "'devise'", 'to': "orm['rh.Devise']"}),
+            'dossier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'budget_remuneration_remunerations'", 'db_column': "'dossier'", 'to': "orm['rh.Dossier']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'montant': ('django.db.models.fields.FloatField', [], {'default': '0', 'null': 'True', 'blank': 'True'}),
+            'simulation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['budget.Simulation']"}),
+            'type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'type'", 'to': "orm['rh.TypeRemuneration']"}),
+            'type_revalorisation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'type_revalorisation'", 'to': "orm['rh.TypeRevalorisation']"}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_desactivation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_desactivation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"})
+        },
+        'budget.simulation': {
+            'Meta': {'object_name': 'Simulation'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'budget.tauxchange': {
+            'Meta': {'object_name': 'TauxChange'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'annee': ('django.db.models.fields.IntegerField', [], {}),
+            '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_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'devise': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to_field': "'code'", 'db_column': "'devise'", 'to': "orm['rh.Devise']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'simulation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['budget.Simulation']"}),
+            'taux': ('django.db.models.fields.FloatField', [], {}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_desactivation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_desactivation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"})
+        },
+        'budget.valeurpoint': {
+            'Meta': {'object_name': 'ValeurPoint'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'annee': ('django.db.models.fields.IntegerField', [], {}),
+            '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_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'devise': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'db_column': "'devise'", 'to': "orm['rh.Devise']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'implantation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'budget_valeur_point'", 'db_column': "'implantation'", 'to': "orm['datamaster_modeles.Implantation']"}),
+            'simulation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['budget.Simulation']"}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_desactivation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_desactivation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"}),
+            'valeur': ('django.db.models.fields.FloatField', [], {})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'datamaster_modeles.bureau': {
+            'Meta': {'object_name': 'Bureau', 'db_table': "u'ref_bureau'"},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '255'}),
+            'id': ('django.db.models.fields.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', 'blank': 'True'}),
+            'adresse_physique_bureau': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'adresse_physique_code_postal': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'adresse_physique_code_postal_avant_ville': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+            'adresse_physique_no': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'adresse_physique_pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'impl_adresse_physique'", 'to_field': "'code'", 'db_column': "'adresse_physique_pays'", 'to': "orm['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', 'blank': 'True'}),
+            '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', 'blank': 'True'}),
+            '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.classement': {
+            'Meta': {'object_name': 'Classement'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'coefficient': ('django.db.models.fields.FloatField', [], {'default': '0'}),
+            'commentaire': ('django.db.models.fields.TextField', [], {'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_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.AutoField', [], {'primary_key': 'True'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_desactivation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_desactivation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"})
+        },
+        'rh.devise': {
+            'Meta': {'object_name': 'Devise'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '10'}),
+            '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_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_desactivation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_desactivation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"})
+        },
+        'rh.dossier': {
+            'Meta': {'object_name': 'Dossier'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'classement': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'classement'", 'to': "orm['rh.Classement']"}),
+            'date_creation': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'date_debut': ('django.db.models.fields.DateField', [], {}),
+            'date_desactivation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_fin': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'employe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'employe'", 'to': "orm['rh.Employe']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'organisme_bstg': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'organisme_bstg'", 'to': "orm['rh.OrganismeBstg']"}),
+            'poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'poste'", 'to': "orm['rh.Poste']"}),
+            'regime_travail': ('django.db.models.fields.DecimalField', [], {'default': '100.0', 'max_digits': '12', 'decimal_places': '2'}),
+            'regime_travail_nb_heure_semaine': ('django.db.models.fields.DecimalField', [], {'default': '35.0', 'max_digits': '12', 'decimal_places': '2'}),
+            'remplacement': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'statut': ('django.db.models.fields.related.ForeignKey', [], {'default': '3', 'related_name': "'+'", 'to': "orm['rh.Statut']"}),
+            'statut_residence': ('django.db.models.fields.CharField', [], {'default': "'local'", 'max_length': '10'}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_desactivation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_desactivation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"})
+        },
+        'rh.employe': {
+            'Meta': {'object_name': 'Employe'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'adresse': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'code_postal': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'date_creation': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'date_desactivation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_entree': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_modification': ('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'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nationalite': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'employes_nationalite'", 'to_field': "'code'", 'db_column': "'nationalite'", 'to': "orm['datamaster_modeles.Pays']"}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'nom_affichage': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'employes'", 'db_column': "'pays'", 'to_field': "'code'", 'to': "orm['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'}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_desactivation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_desactivation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"}),
+            'ville': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'})
+        },
+        'rh.evenement': {
+            'Meta': {'object_name': 'Evenement'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'date_creation': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'date_debut': ('django.db.models.fields.DateField', [], {}),
+            'date_desactivation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_fin': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'dossier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'dossier'", 'to': "orm['rh.Dossier']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_desactivation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_desactivation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"})
+        },
+        'rh.familleemploi': {
+            'Meta': {'object_name': 'FamilleEmploi'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': '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_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_desactivation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_desactivation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"})
+        },
+        'rh.organismebstg': {
+            'Meta': {'object_name': 'OrganismeBstg'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': '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_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'organismes_bstg'", 'db_column': "'pays'", 'to_field': "'code'", 'to': "orm['datamaster_modeles.Pays']", 'blank': 'True', 'null': 'True'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '10'}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_desactivation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_desactivation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"})
+        },
+        'rh.poste': {
+            'Meta': {'object_name': 'Poste'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'appel': ('django.db.models.fields.CharField', [], {'default': "'interne'", 'max_length': '10'}),
+            'autre_max': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+            'autre_min': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+            'classement_max': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'classement_max'", 'to': "orm['rh.Classement']"}),
+            'classement_min': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'classement_min'", 'to': "orm['rh.Classement']"}),
+            'comp_autre_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_autre_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_fonctionpub_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_fonctionpub_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_locale_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_locale_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_ong_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_ong_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_universite_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_universite_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'date_creation': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'date_debut': ('django.db.models.fields.DateField', [], {}),
+            'date_desactivation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_fin': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'date_validation': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'devise_comparaison': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'db_column': "'devise_comparaison'", 'to': "orm['rh.Devise']"}),
+            'devise_max': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'db_column': "'devise_max'", 'to': "orm['rh.Devise']"}),
+            'devise_min': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'db_column': "'devise_min'", 'to': "orm['rh.Devise']"}),
+            'expatrie': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'implantation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'implantation'", 'to': "orm['datamaster_modeles.Implantation']"}),
+            'indemn_max': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+            'indemn_min': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+            'justification': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'local': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'mise_a_disposition': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'nom_feminin': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True'}),
+            'regime_travail': ('django.db.models.fields.DecimalField', [], {'default': '100.0', 'max_digits': '12', 'decimal_places': '2'}),
+            'regime_travail_nb_heure_semaine': ('django.db.models.fields.DecimalField', [], {'default': '35.0', 'max_digits': '12', 'decimal_places': '2'}),
+            'responsable': ('django.db.models.fields.related.ForeignKey', [], {'default': '149', 'related_name': "'+'", 'db_column': "'responsable'", 'to': "orm['rh.Poste']"}),
+            'salaire_max': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+            'salaire_min': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+            'service': ('django.db.models.fields.related.ForeignKey', [], {'default': '1', 'related_name': "'+'", 'db_column': "'service'", 'to': "orm['rh.Service']"}),
+            'type_poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'db_column': "'type_poste'", 'to': "orm['rh.TypePoste']"}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_desactivation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_desactivation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"}),
+            'valeur_point_max': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'valeur_point_max'", 'to': "orm['rh.ValeurPoint']"}),
+            'valeur_point_min': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'valeur_point_min'", 'to': "orm['rh.ValeurPoint']"})
+        },
+        'rh.service': {
+            'Meta': {'object_name': 'Service'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': '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_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_desactivation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_desactivation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"})
+        },
+        'rh.statut': {
+            'Meta': {'object_name': 'Statut'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'code': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '25'}),
+            '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_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_desactivation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_desactivation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"})
+        },
+        'rh.typeposte': {
+            'Meta': {'object_name': 'TypePoste'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': '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_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'famille_emploi': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'famille_emploi'", 'to': "orm['rh.FamilleEmploi']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_responsable': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'nom_feminin': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_desactivation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_desactivation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"})
+        },
+        'rh.typeremuneration': {
+            'Meta': {'object_name': 'TypeRemuneration'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': '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_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nature_remuneration': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'type_paiement': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_desactivation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_desactivation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"})
+        },
+        'rh.typerevalorisation': {
+            'Meta': {'object_name': 'TypeRevalorisation'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': '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_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_desactivation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_desactivation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"})
+        },
+        'rh.valeurpoint': {
+            'Meta': {'object_name': 'ValeurPoint'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'annee': ('django.db.models.fields.IntegerField', [], {}),
+            '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_modification': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'devise': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'db_column': "'devise'", 'to': "orm['rh.Devise']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'implantation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'rh_valeur_point'", 'db_column': "'implantation'", 'to': "orm['datamaster_modeles.Implantation']"}),
+            'user_creation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_creation'", 'to': "orm['auth.User']"}),
+            'user_desactivation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_desactivation'", 'to': "orm['auth.User']"}),
+            'user_modification': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'db_column': "'user_modification'", 'to': "orm['auth.User']"}),
+            'valeur': ('django.db.models.fields.FloatField', [], {})
+        }
+    }
+    
+    complete_apps = ['budget']
index 67d8371..1e6b00f 100755 (executable)
@@ -1,5 +1,7 @@
 # -=- encoding: utf-8 -=-
 
+import inspect
+
 from django.db import models
 
 from rh import models as rh
@@ -9,44 +11,120 @@ class Simulation(models.Model):
     nom = models.CharField(max_length=255,
                             verbose_name=u'Nom de la simulation')
 
+    def initialize(self):
+        """ Copie les données nécessaires à une simulation. """
+        if not self.is_empty():
+            raise ValueError(u'Cette simulation a déjà été initialisée.')
+
+        self.seen_models = {}
+
+        for model in [rh.Poste, rh.Dossier, rh.Remuneration, rh.Evenement,
+                      rh.EvenementRemuneration, rh.Classement, rh.ValeurPoint,
+                      rh.TauxChange]:
+            self.seen_models[model.__class__.__name__.lower()] = \
+                    self.copy_rh_models(model)
+
+    def is_empty(self):
+        for attr in ['classement_set', 'dossier_set', 'evenement_set',
+                     'evenementremuneration_set', 'poste_set',
+                     'remuneration_set', 'valeurpoint_set', 'tauxchange_set']:
+            if not getattr(self, attr).all().count() == 0:
+                return False
+        return True
+
+    def reset(self):
+        for attr in ['classement_set', 'dossier_set', 'evenement_set',
+                     'evenementremuneration_set', 'poste_set',
+                     'remuneration_set', 'valeurpoint_set', 'tauxchange_set']:
+            getattr(self, attr).all().delete()
+
+    def copy_rh_models(self, model):
+        """ Crée une copie de simulation de tous les enregistrements d'un
+        modèle donné et en retourne la liste indexée dans un dictionnaire.
+
+        Opère une translation des id si nécessaire. """
+        xlate = getattr(self, 'xlate_%s' % model.__class__.__name__.lower(),
+                        None)
+        seen = {}
+        for orig in model.objects.all():
+            sim = self.copy_rh_model(orig)
+            if xlate is not None:
+                xlate(sim)
+            sim.save()
+            seen[orig.id] = sim
+        return seen
+
     def copy_rh_model(self, obj):
         """ Crée une copie de simulation d'un modèle rh. """
-        initial = dict(['simulation', self] +
+        initial = dict([('simulation', self)] +
                        [(f.name, getattr(obj, f.name))
                         for f in obj._meta.fields
                         if not isinstance(f, models.AutoField) and
                            not f in obj._meta.parents.values()])
         return globals()[obj.__class__.__name__](**initial)
 
+    def xlate_dossier(self, d):
+        if not d.poste.id in self.seen_models['poste']:
+            raise ValueError(u'Données inconsistantes.')
+        d.poste = self.seen_models['poste'][d.poste.id]
+        if not d.classement.id in self.seen_models['classement']:
+            raise ValueError(u'Données inconsistantes.')
+        d.classement = self.seen_models['classement'] [d.classement.id]
 
-    def initialize(self):
-        """ Copie les données nécessaires à une simulation. """
-        if (self.poste_set.all().count() > 0 or
-          self.dossier_set.all().count() > 0):
-            raise ValueError(u'Cette simulation a déjà été initialisée.')
+    def xlate_evenement(self, e):
+        if not e.dossier.id in self.seen_models['dossier']:
+            raise ValueError(u'Données inconsistantes.')
+        e.dossier = self.seen_models['dossier'][e.dossier.id]
 
-        postes = {}
-        for rh_p in rh.Poste.objects.all():
-            sim_p = self.copy_rh_model(rh_p)
-            sim_p.save()
-            postes[rh_p.id] = sim_p
-
-        dossiers = {}
-        for rh_d in rh.Dossier.objects.all():
-            sim_d = self.copy_rh_model(rh_d)
-            if not sim_d.poste.id in postes:
-                self.poste_set.all().delete()
-                self.dossier_set.all().delete()
-                raise ValueError(u'Données inconsistantes.')
-            sim_d.poste = postes[sim_d.poste.id]
-            sim_d.save()
-            dossiers[rh_d.id] = sim_d
+    def xlate_remuneration(self, r):
+        if not r.dossier.id in self.seen_models['dossier']:
+            raise ValueError(u'Données inconsistantes.')
+        r.dossier = self.seen_models['dossier'] [r.dossier.id]
 
-class Poste(rh.Poste_):
-    __doc__ = rh.Poste_.__doc__
+    def xlate_evenementremuneration(self, er):
+        if not er.dossier.id in self.seen_models['dossier']:
+            raise ValueError(u'Données inconsistantes.')
+        er.dossier = self.seen_models['dossier'] [er.dossier.id]
+        if not er.evenement.id in self.seen_models['evenement']:
+            raise ValueError(u'Données inconsistantes.')
+        er.evenement = self.seen_models['evenement'] [er.evenement.id]
+
+
+class Classement(rh.Classement_):
+    __doc__ = rh.Classement_.__doc__
     simulation = models.ForeignKey(Simulation)
 
 
 class Dossier(rh.Dossier_):
     __doc__ = rh.Dossier_.__doc__
     simulation = models.ForeignKey(Simulation)
+
+
+class Evenement(rh.Evenement_):
+    __doc__ = rh.Evenement_.__doc__
+    simulation = models.ForeignKey(Simulation)
+
+
+class EvenementRemuneration(rh.EvenementRemuneration_):
+    __doc__ = rh.EvenementRemuneration_.__doc__
+    simulation = models.ForeignKey(Simulation)
+
+
+class Poste(rh.Poste_):
+    __doc__ = rh.Poste_.__doc__
+    simulation = models.ForeignKey(Simulation)
+
+
+class Remuneration(rh.Remuneration_):
+    __doc__ = rh.Remuneration_.__doc__
+    simulation = models.ForeignKey(Simulation)
+
+
+class TauxChange(rh.TauxChange_):
+    __doc__ = rh.TauxChange_.__doc__
+    simulation = models.ForeignKey(Simulation)
+
+
+class ValeurPoint(rh.ValeurPoint_):
+    __doc__ = rh.ValeurPoint_.__doc__
+    simulation = models.ForeignKey(Simulation)
index 12de3a0..137ef94 100644 (file)
@@ -10,7 +10,7 @@ from datamaster_modeles import models as ref
 from dae import models as dae
 from utils import get_employe_from_user, is_user_dans_service
 from rh_v1 import models as rh
-from workflow import grp_drh
+from workflow import grp_drh, POSTE_ETATS_BOUTONS
 
 def _implantation_choices(obj, request):
     # TRAITEMENT NORMAL
@@ -115,7 +115,8 @@ class PosteForm(forms.ModelForm):
     class Meta:
         model = dae.Poste
         exclude = ('actif', )
-        fields = ('poste', 'implantation', 'type_poste', 'service', 'nom',
+        fields = ('type_intervention',
+                  'poste', 'implantation', 'type_poste', 'service', 'nom',
                   'responsable', 'local', 'expatrie', 'mise_a_disposition',
                   'appel', 'date_debut', 'date_fin',
                   'regime_travail', 'regime_travail_nb_heure_semaine',
@@ -134,7 +135,8 @@ class PosteForm(forms.ModelForm):
                   'comp_autre_min', 'comp_autre_max',
                   'justification',
                   )
-        widgets = dict(appel=forms.RadioSelect(),
+        widgets = dict(type_intervention=forms.RadioSelect(),
+                       appel=forms.RadioSelect(),
                        nom=forms.TextInput(attrs={'size': 60},),
                        date_debut=admin_widgets.AdminDateWidget(),
                        date_fin=admin_widgets.AdminDateWidget(),
@@ -274,23 +276,21 @@ class DossierForm(forms.ModelForm):
                        contrat_date_fin=admin_widgets.AdminDateWidget(),
                     )
 
-WF_HELP_TEXT = """Ce champs affiche par défaut l'étape de traitement de la demande.
-La liste déroulante vous permet de sélectionner l'étape suivante."""
 WF_HELP_TEXT = ""
 
 class PosteWorkflowForm(WorkflowFormMixin):
-   
+    bouton_libelles = POSTE_ETATS_BOUTONS
     class Meta:
         fields = ('etat', )
         model = dae.Poste
-
+   
     def __init__(self, *args, **kwargs):
         super(self.__class__, self).__init__(*args, **kwargs)
         self.fields['etat'].help_text = WF_HELP_TEXT
 
 
 class DossierWorkflowForm(WorkflowFormMixin):
-    
+    bouton_libelles = POSTE_ETATS_BOUTONS # meme workflow que poste...
     class Meta:
         fields = ('etat', )
         model = dae.Dossier
index df40a7c..8edcf87 100644 (file)
@@ -3,7 +3,11 @@
 from django.db import models
 from django.db.models import Q
 from utils import is_user_dans_service, get_employe_from_user
-from workflow import POSTE_ETAT_HAUTE_DIRECTION, POSTE_ETAT_POLE_FINANCIER, MAP_GROUPE_ETATS_A_FAIRE
+from workflow import POSTE_ETAT_HAUTE_DIRECTION, \
+                     POSTE_ETAT_POLE_FINANCIER, \
+                     POSTE_ETAT_REFUSE, \
+                     DOSSIER_ETAT_REFUSE, \
+                     MAP_GROUPE_ETATS_A_FAIRE
 from workflow import dae_groupes, \
                      grp_administrateurs, \
                      grp_gestionnaires, \
@@ -36,7 +40,6 @@ class SecurityManager(models.Manager):
         On s'intéresse aussi au groupe auquel appartient le user car certains groupes
         peuvent tout voir.
         """
-
         # On s'assure que le manager travaille sur un modèle avec WF, autrement
         # on ne teste pas sur l'état
         try:
@@ -57,26 +60,32 @@ class SecurityManager(models.Manager):
         # REGION
         else:
             q = Q(**{ '%s__region' % self.prefixe_implantation : employe.implantation.region })
+
+        if workflowed_model:
+            q_non_refuse = ~Q(etat__in=(POSTE_ETAT_REFUSE, DOSSIER_ETAT_REFUSE,))
+            q = q & q_non_refuse
+
         liste = self.get_query_set().filter(q)
 
-        ############################################
-        # TRAITEMENT POLE FINANCIER
-        ############################################        
-        if workflowed_model and grp_pole_financier in user.groups.all():
-            liste = self.get_query_set().filter(etat=POSTE_ETAT_POLE_FINANCIER)
+        # Il peut être bon que ces personnes connaissent l'état d'avancement du poste ou dossier
+        #############################################
+        ## TRAITEMENT POLE FINANCIER
+        #############################################        
+        #if workflowed_model and grp_pole_financier in user.groups.all():
+        #    liste = self.get_query_set().filter(etat=POSTE_ETAT_POLE_FINANCIER)
 
-        ############################################
-        # TRAITEMENT HAUTE DIRECTION
-        ############################################        
-        if workflowed_model and grp_haute_direction in user.groups.all():
-            liste = self.get_query_set().filter(etat=POSTE_ETAT_HAUTE_DIRECTION)
+        #############################################
+        ## TRAITEMENT HAUTE DIRECTION
+        #############################################        
+        #if workflowed_model and grp_haute_direction in user.groups.all():
+        #    liste = self.get_query_set().filter(etat=POSTE_ETAT_HAUTE_DIRECTION)
 
         ############################################
         # TRAITEMENT DRH
         ############################################        
         if grp_drh in user.groups.all():
             liste = self.get_query_set()
-        
+
         return liste
 
 
@@ -87,7 +96,7 @@ class PosteManager(SecurityManager):
     prefixe_implantation = "implantation"
 
     def ma_region_ou_service(self, user):
-        return super(PosteManager, self).filter(actif=True)
+        return super(PosteManager, self).ma_region_ou_service(user).filter(actif=True)
 
     def get_query_set(self):
         fkeys = (
@@ -109,6 +118,6 @@ class DossierManager(SecurityManager):
     prefixe_implantation = "poste__implantation"
 
     def ma_region_ou_service(self, user):
-        return super(DossierManager, self).filter(poste__actif=True)
+        return super(DossierManager, self).ma_region_ou_service(user).filter(poste__actif=True)
 
 
diff --git a/project/dae/migrations/0038_auto__add_field_poste_type_intervention.py b/project/dae/migrations/0038_auto__add_field_poste_type_intervention.py
new file mode 100644 (file)
index 0000000..8c7fb21
--- /dev/null
@@ -0,0 +1,409 @@
+# 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 field 'Poste.type_intervention'
+        db.add_column('dae_poste', 'type_intervention', self.gf('django.db.models.fields.CharField')(default='', max_length=1), keep_default=False)
+    
+    
+    def backwards(self, orm):
+        
+        # Deleting field 'Poste.type_intervention'
+        db.delete_column('dae_poste', 'type_intervention')
+    
+    
+    models = {
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '80', 'unique': 'True'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'max_length': '30', 'unique': 'True'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'dae.dossier': {
+            'Meta': {'object_name': 'Dossier'},
+            'classement': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Classement']"}),
+            'classement_anterieur': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Classement']"}),
+            'classement_titulaire_anterieur': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Classement']"}),
+            'compte_compta': ('django.db.models.fields.CharField', [], {'default': "'aucun'", 'max_length': '10'}),
+            'compte_courriel': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'contrat_date_debut': ('django.db.models.fields.DateField', [], {}),
+            'contrat_date_fin': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_creation': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'devise': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'to': "orm['rh_v1.Devise']"}),
+            'employe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['dae.Employe']"}),
+            'employe_anterieur': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Employe']"}),
+            'etat': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '20', 'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'justif_nouveau_commentaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'justif_nouveau_salaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'justif_nouveau_statut': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'justif_nouveau_tmp_remplacement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'justif_rempl_commentaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'justif_rempl_evaluation': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'justif_rempl_salaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'justif_rempl_statut_employe': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'justif_rempl_type_contrat': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'organisme_bstg': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.OrganismeBstg']"}),
+            'organisme_bstg_autre': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['dae.Poste']"}),
+            'regime_travail': ('django.db.models.fields.DecimalField', [], {'default': '100.0', 'max_digits': '12', 'decimal_places': '2'}),
+            'regime_travail_nb_heure_semaine': ('django.db.models.fields.DecimalField', [], {'default': '35.0', 'max_digits': '12', 'decimal_places': '2'}),
+            'remplacement': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'salaire': ('django.db.models.fields.DecimalField', [], {'default': 'None', 'null': 'True', 'max_digits': '12', 'decimal_places': '2'}),
+            'salaire_anterieur': ('django.db.models.fields.DecimalField', [], {'default': 'None', 'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'salaire_titulaire_anterieur': ('django.db.models.fields.DecimalField', [], {'default': 'None', 'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'statut': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['rh_v1.Statut']"}),
+            'statut_anterieur': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Statut']"}),
+            'statut_residence': ('django.db.models.fields.CharField', [], {'default': "'local'", 'max_length': '10'}),
+            'statut_titulaire_anterieur': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Statut']"}),
+            'type_contrat': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['rh_v1.TypeContrat']"})
+        },
+        'dae.dossiercomparaison': {
+            'Meta': {'object_name': 'DossierComparaison'},
+            'devise': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Devise']"}),
+            'dossier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comparaisons'", 'to': "orm['dae.Dossier']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'implantation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Implantation']", 'null': 'True', 'blank': 'True'}),
+            'montant': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+            'montant_euros': ('django.db.models.fields.IntegerField', [], {'null': 'True'}),
+            'personne': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'poste': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'})
+        },
+        'dae.dossierpiece': {
+            'Meta': {'object_name': 'DossierPiece'},
+            'dossier': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['dae.Dossier']"}),
+            'fichier': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'dae.employe': {
+            'Meta': {'object_name': 'Employe'},
+            'genre': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'id_rh': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'to': "orm['rh_v1.Employe']"}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'prenom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        'dae.poste': {
+            'Meta': {'object_name': 'Poste'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'appel': ('django.db.models.fields.CharField', [], {'default': "'interne'", 'max_length': '10'}),
+            'autre_max': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+            'autre_min': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+            'charges_patronales_max': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+            'charges_patronales_min': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+            'classement_max': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Classement']"}),
+            'classement_min': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.Classement']"}),
+            'comp_autre_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_autre_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_fonctionpub_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_fonctionpub_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_locale_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_locale_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_ong_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_ong_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_universite_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'comp_universite_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}),
+            'date_creation': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'date_debut': ('django.db.models.fields.DateField', [], {}),
+            'date_fin': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'date_modification': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'devise_comparaison': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'to': "orm['rh_v1.Devise']"}),
+            'devise_max': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'to': "orm['rh_v1.Devise']"}),
+            'devise_min': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'to': "orm['rh_v1.Devise']"}),
+            'etat': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '20', 'null': 'True', 'blank': 'True'}),
+            'expatrie': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'id_rh': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'to': "orm['rh_v1.Poste']"}),
+            'implantation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Implantation']"}),
+            'indemn_expat_max': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+            'indemn_expat_min': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+            'indemn_fct_max': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+            'indemn_fct_min': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+            'justification': ('django.db.models.fields.TextField', [], {}),
+            'local': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}),
+            'mise_a_disposition': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'pourvu': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'regime_travail': ('django.db.models.fields.DecimalField', [], {'default': '100.0', 'max_digits': '12', 'decimal_places': '2'}),
+            'regime_travail_nb_heure_semaine': ('django.db.models.fields.DecimalField', [], {'default': '35.0', 'max_digits': '12', 'decimal_places': '2'}),
+            'responsable': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['rh_v1.Poste']"}),
+            'salaire_max': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+            'salaire_min': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}),
+            'service': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['rh_v1.Service']"}),
+            'type_intervention': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
+            'type_poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'to': "orm['rh_v1.TypePoste']"}),
+            'valeur_point_max': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.ValeurPoint']"}),
+            'valeur_point_min': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'blank': 'True', 'null': 'True', 'to': "orm['rh_v1.ValeurPoint']"})
+        },
+        'dae.postefinancement': {
+            'Meta': {'object_name': 'PosteFinancement'},
+            'commentaire': ('django.db.models.fields.TextField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'financements'", 'to': "orm['dae.Poste']"}),
+            'pourcentage': ('django.db.models.fields.DecimalField', [], {'max_digits': '12', 'decimal_places': '2'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '1'})
+        },
+        'dae.postepiece': {
+            'Meta': {'object_name': 'PostePiece'},
+            'fichier': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'poste': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['dae.Poste']"})
+        },
+        'dae.remuneration': {
+            'Meta': {'object_name': 'Remuneration'},
+            'date_creation': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'devise': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to_field': "'code'", 'db_column': "'devise'", 'to': "orm['rh_v1.Devise']"}),
+            'dossier': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['dae.Dossier']", 'db_column': "'dossier'"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'montant': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2'}),
+            'precision': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'type'", 'to': "orm['rh_v1.TypeRemuneration']"}),
+            'user_creation': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+        },
+        'datamaster_modeles.bureau': {
+            'Meta': {'object_name': 'Bureau', 'db_table': "u'ref_bureau'"},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'code': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': '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'"}),
+            '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', 'blank': 'True'}),
+            'adresse_physique_bureau': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}),
+            'adresse_physique_code_postal': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'adresse_physique_code_postal_avant_ville': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+            'adresse_physique_no': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'adresse_physique_pays': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'impl_adresse_physique'", 'to_field': "'code'", 'db_column': "'adresse_physique_pays'", 'to': "orm['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', [], {'max_length': '255', 'unique': 'True'}),
+            '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', 'blank': 'True'}),
+            'code': ('django.db.models.fields.CharField', [], {'max_length': '2', 'unique': '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', [], {'max_length': '3', 'unique': 'True', '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', 'blank': 'True'}),
+            'code': ('django.db.models.fields.CharField', [], {'max_length': '255', 'unique': 'True'}),
+            '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.classement': {
+            'Meta': {'object_name': 'Classement'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            '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', [], {'max_length': '10', 'unique': 'True'}),
+            'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+        },
+        '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', 'blank': 'True'}),
+            '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', 'blank': 'True'}),
+            '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', 'blank': 'True'}),
+            '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.service': {
+            'Meta': {'object_name': 'Service'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            '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', 'blank': 'True'}),
+            'code': ('django.db.models.fields.CharField', [], {'max_length': '25', 'unique': 'True'}),
+            '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.typecontrat': {
+            'Meta': {'object_name': 'TypeContrat'},
+            'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            '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', 'blank': 'True'}),
+            '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', 'blank': 'True'}),
+            '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', 'blank': 'True'}),
+            '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.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', [], {'related_name': "'valeurs_point'", 'db_column': "'implantation'", 'to': "orm['datamaster_modeles.Implantation']"}),
+            'valeur': ('django.db.models.fields.FloatField', [], {})
+        },
+        'workflow.workflowcommentaire': {
+            'Meta': {'object_name': 'WorkflowCommentaire'},
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'etat_final': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'etat_initial': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}),
+            'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}),
+            'texte': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'})
+        }
+    }
+    
+    complete_apps = ['dae']
index 4c49b25..8f1c310 100644 (file)
@@ -37,9 +37,18 @@ POSTE_APPEL_CHOICES = (
     ('interne', 'Interne'),
     ('externe', 'Externe'),
 )
+POSTE_ACTION = (
+    ('N', u"Nouveau poste"),
+    ('M', u"Poste existant"),
+    ('E', u"Évolution de poste"),
+)
+
 
 
 class Poste(PosteWorkflow, models.Model):
+
+    type_intervention = models.CharField(max_length=1, choices=POSTE_ACTION, default='N')
+
     # Modèle existant
     id_rh = models.ForeignKey(rh.Poste, null=True, related_name='+',
                             editable=False,
index b4a8418..0a3cd4f 100644 (file)
         </td>
       </tr>
       </table>
-      <input type="submit" name="continue" value="Sauvegarder et continuer" />
+      <input type="submit" name="continue" value="Sauvegarder (et ajouter des lignes)" />
       <input type="submit" name="save" value="Sauvegarder" />
     </form>
   {% endif %}
index ac2dca2..10bae49 100644 (file)
   <fieldset>
   <h2>Validations</h2>
   
-  <ul>
+  <table>
+  <tr>
+      <th>Action</th>
+      <th>Destinataire de l'action</th>
+      <th>Commentaire</th>
+  </tr>
   {% for commentaire in dossier.historique_desc %}
-      <li>{{ commentaire }}</li>
+    {% include "dae/ligne_validation.html" %}
   {% endfor %}
-  </ul>
+  </table>
 
   <h2>Votre validation (ou commentaire)</h2>
-  <p>Ce dossier est présentement à l'état <span class="note">{{ poste.get_etat_display }}</span>.</p>
-  <ul>
-      <li>Si vous laissez le statut actuel, votre commentaire sera enregistré.</li>
-      <li>Si vous sélectionnez un autre statut, votre action sera considérée comme une validation, mais vous pourrez toujours ajouter un commentaire par la suite.</li>
-  </ul>
+  <p>Ce dossier est actuellement à l'état <span class="note">{{ dossier.get_etat_display }}</span>.</p>
   
   <form action="" method="post">
   <table>
-  {{ validationForm }}
+  {{ validationForm.commentaire }}
   </table>
-  <input type="submit" value="valider" />
+  {{ validationForm.get_input_etats_as_buttons|safe }}
   </form>
   </fieldset>
     
diff --git a/project/dae/templates/dae/ligne_validation.html b/project/dae/templates/dae/ligne_validation.html
new file mode 100644 (file)
index 0000000..65e457b
--- /dev/null
@@ -0,0 +1,15 @@
+<tr>
+<td>
+    {% if commentaire.etat_final == 'REFUSE' %}
+        {{ commentaire.owner }} a refusé la demande le {{ commentaire.date|date:"d M Y" }}
+    {% else %}
+        {{ commentaire.owner }} a validé la demande le {{ commentaire.date|date:"d M Y"}}
+    {% endif %}
+</td>
+<td>
+    {{ commentaire.get_etat_final_label }}
+</td>
+<td>
+    {% if commentaire.texte %} ({{ commentaire.texte }}){% endif %}
+</td>
+</tr>
index 5b7ac22..d1541e3 100644 (file)
@@ -39,6 +39,10 @@ Demande d'autorisation d'embauche
 
 <form action="" method="post" enctype="multipart/form-data">
 
+    <div id="type_intervention">{{ form.type_intervention }}</div>
+
+    <div class="clear"></div>
+
     <fieldset>
     <h2>
         {% if new %}
@@ -47,6 +51,7 @@ Demande d'autorisation d'embauche
             Poste existant : {{ poste.nom }} ({{ poste.implantation.nom }})
         {% endif %}
     </h2>
+
     <table>
         <tbody>
         <tr>
@@ -304,7 +309,7 @@ Demande d'autorisation d'embauche
     </div>
     </fieldset>
 
-    <input type="submit" name="continue" value="Sauvegarder et continuer" />
+    <input type="submit" name="continue" value="Sauvegarder (et ajouter des lignes)" />
     <input type="submit" name="save" value="Sauvegarder" />
 
 </form>
index e2afdaf..b2a6e9f 100644 (file)
@@ -23,24 +23,25 @@ Demande d'autorisation d'embauche
 <fieldset>
 <h2>Validations</h2>
 
-<ul>
+<table>
+<tr>
+    <th>Action</th>
+    <th>Destinataire de l'action</th>
+    <th>Commentaire</th>
+</tr>
 {% for commentaire in poste.historique_desc %}
-    <li>{{ commentaire }}</li>
+    {% include "dae/ligne_validation.html" %}
 {% endfor %}
-</ul>
+</table>
 
-<h2>Votre validation (ou commentaire)</h2>
-<p>Ce poste est présentement à l'état <span class="note">{{ poste.get_etat_display }}</span>.</p>
-<ul>
-    <li>Si vous laissez le statut actuel, votre commentaire sera enregistré.</li>
-    <li>Si vous sélectionnez un autre statut, votre action sera considérée comme une validation, mais vous pourrez toujours ajouter un commentaire par la suite.</li>
-</ul>
+<h2>Votre validation</h2>
+<p>Le poste est actuellement à l'état :  <span class="note">{{ poste.get_etat_display }}</span>.</p>
 
 <form action="" method="post">
 <table>
-{{ validationForm }}
+{{ validationForm.commentaire }}
 </table>
-<input type="submit" value="valider" />
+{{ validationForm.get_input_etats_as_buttons|safe }}
 </form>
 </fieldset>
 
index ec87451..63a62a5 100644 (file)
@@ -1,4 +1,8 @@
 <fieldset>
+    <h2><label>Type d'intervention : </label>{{ poste.get_type_intervention_display }}</h2>
+</fieldset>
+
+<fieldset>
 <h2>{{ poste.nom }} ({{ poste.implantation.nom }})</h2>
 <table>
     <tbody>
index 8ad31b5..1cbcb06 100644 (file)
@@ -1,13 +1,13 @@
 from django import template
 from project.dae.workflow import ETATS_EDITABLE
-from project.dae.workflow import grp_gestionnaires, grp_service_utilisateurs, grp_correspondants_rh, grp_administrateurs, grp_directeurs_bureau, grp_drh, grp_directeurs_service
+from project.dae.workflow import grp_gestionnaires, grp_service_utilisateurs, grp_correspondants_rh, grp_administrateurs, grp_directeurs_bureau, grp_drh, grp_directeurs_service, grp_correspondants_rh
 
 register = template.Library()
 
 @register.filter
 def peut_ajouter(user):
     for g in user.groups.all():
-        if g in (grp_gestionnaires, grp_service_utilisateurs, grp_administrateurs, grp_drh, grp_directeurs_bureau, grp_directeurs_service):
+        if g in (grp_gestionnaires, grp_service_utilisateurs, grp_administrateurs, grp_drh, grp_directeurs_bureau, grp_directeurs_service, grp_correspondants_rh):
             return True
     return False
 
index a045ad7..b7ecc9c 100644 (file)
@@ -14,10 +14,10 @@ def get_employe_from_user(user):
 
 def is_user_dans_service(user):
     employe = get_employe_from_user(user)
-    return employe.implantation.bureau_rattachement_id == -1
+    return employe.implantation_id in (15, 19)
 
 def is_user_dans_region(user):
     employe = get_employe_from_user(user)
-    return employe.implantation.bureau_rattachement_id != -1
+    return not is_user_dans_service(user)
 
 
index a30c6a0..fdb3cf4 100644 (file)
@@ -81,7 +81,7 @@ def poste_consulter(request, key):
         if validationForm.is_valid():
             validationForm.save()
             messages.add_message(request, messages.SUCCESS, "La validation a été enregistrée.")
-            return redirect('poste_consulter', key=key)
+            return redirect('dae_postes_liste')
     else:
         validationForm = PosteWorkflowForm(instance=poste, request=request)
     
@@ -180,7 +180,7 @@ def embauche_consulter(request, dossier_id):
         if validationForm.is_valid():
             validationForm.save()
             messages.add_message(request, messages.SUCCESS, "La validation a été enregistrée.")
-            return redirect('embauche_consulter', dossier_id=dossier.id)
+            return redirect('dae_embauches_liste')
     else:
         validationForm = DossierWorkflowForm(instance=dossier, request=request)
     
index 2236691..055b8a7 100644 (file)
@@ -62,6 +62,17 @@ POSTE_ETATS = {
     POSTE_ETAT_DRH_FINALISATION : u'Retour à la DRH et région',
     }
 
+#libellés états pour boutons
+POSTE_ETATS_BOUTONS = {
+    POSTE_ETAT_REFUSE : u"Refuser",
+    POSTE_ETAT_DIRECTEUR_BUREAU_OU_SERVICE : u"Envoyer au directeur de bureau, pôle ou service",
+    POSTE_ETAT_ADMINISTRATEUR : u"Envoyer à l&#39;adminstrateur",
+    POSTE_ETAT_DRH_CONTROLE : u"Envoyer à la DRH (validation)",
+    POSTE_ETAT_POLE_FINANCIER : u"Envoyer au pôle finances",
+    POSTE_ETAT_HAUTE_DIRECTION : u"Envoyer à la haute direction",
+    POSTE_ETAT_DRH_FINALISATION : u'Envoyer à la DRH (traitement)',
+    }
+
 # définition du worflow séquentiel
 POSTE_ACTIONS = {
     POSTE_ACTION_ENVOYER_REFUSE : {
@@ -81,31 +92,45 @@ POSTE_ACTIONS = {
     },
     POSTE_ACTION_ENVOYER_ADMINISTRATEUR : {
         'nom' : u'Envoyer',
-        'etat_initial' : POSTE_ETAT_DIRECTEUR_BUREAU_OU_SERVICE,
+        'etat_initial' : (POSTE_ETAT_REFUSE, POSTE_ETAT_DIRECTEUR_BUREAU_OU_SERVICE),
         'etat_final' : POSTE_ETAT_ADMINISTRATEUR,
     },
     POSTE_ACTION_ENVOYER_DRH_CONTROLE : {
         'nom' : u'Envoyer',
-        'etat_initial' : (POSTE_ETAT_DIRECTEUR_BUREAU_OU_SERVICE, POSTE_ETAT_ADMINISTRATEUR, ),
+        'etat_initial' : (POSTE_ETAT_REFUSE, POSTE_ETAT_DIRECTEUR_BUREAU_OU_SERVICE, POSTE_ETAT_ADMINISTRATEUR, ),
         'etat_final' : POSTE_ETAT_DRH_CONTROLE,
     },
     POSTE_ACTION_ENVOYER_POLE_FINANCIER : {
         'nom' : u'Envoyer',
-        'etat_initial' : POSTE_ETAT_DRH_CONTROLE,
+        'etat_initial' : (POSTE_ETAT_REFUSE, POSTE_ETAT_DRH_CONTROLE, ),
         'etat_final' : POSTE_ETAT_POLE_FINANCIER,
     },
     POSTE_ACTION_ENVOYER_HAUTE_DIRECTION : {
         'nom' : u'Envoyer',
-        'etat_initial' : POSTE_ETAT_POLE_FINANCIER,
+        'etat_initial' : (POSTE_ETAT_REFUSE, POSTE_ETAT_POLE_FINANCIER, ),
         'etat_final' : POSTE_ETAT_HAUTE_DIRECTION,
     },
     POSTE_ACTION_ENVOYER_DRH_FINALISATION : {
         'nom' : u'Envoyer',
-        'etat_initial' : POSTE_ETAT_HAUTE_DIRECTION,
+        'etat_initial' : (POSTE_ETAT_REFUSE, POSTE_ETAT_HAUTE_DIRECTION, ),
         'etat_final' : POSTE_ETAT_DRH_FINALISATION,
     },
 }
 
+
+def refuse_sauf_pour_drh(f):
+    """
+    Personne ne peut manipuler quelque chose à l'état refusé excepté la DRH
+    """
+    def inner(obj, action, request):
+        if obj.etat != 'REFUSE':
+            return f(obj, action, request)
+        if grp_drh in request.user.groups.all():
+            return f(obj, action, request)
+        else:
+            return False
+    return inner
+
 class PosteWorkflow(WorkflowMixin):
     etat_initial = POSTE_ETAT_BROUILLON
     etats = POSTE_ETATS
@@ -115,38 +140,51 @@ class PosteWorkflow(WorkflowMixin):
         abstract = True
 
     def acces_refuse(self, action, request):
-        return True
+        if grp_pole_financier in request.user.groups.all():
+            return False
+
+        user_groupes = request.user.groups.all()
+        for g, etats in MAP_GROUPE_ETATS_A_FAIRE.items():
+            if g in user_groupes and self.etat in etats:
+                return True
+        return False
 
+    @refuse_sauf_pour_drh
     def acces_directeur_bur_srv(self, action, request):
         for g in request.user.groups.all():
             if g in (grp_administrateurs, grp_gestionnaires, grp_service_utilisateurs, grp_correspondants_rh, grp_drh,):
                 return True
         return False
 
+    @refuse_sauf_pour_drh
     def acces_administrateur(self, action, request):
         for g in request.user.groups.all():
             if g in (grp_directeurs_service, grp_drh,):
                 return True
         return False
 
+    @refuse_sauf_pour_drh
     def acces_drh_controle(self, action, request):
         for g in request.user.groups.all():
             if g in (grp_directeurs_bureau, grp_administrateurs, grp_drh,):
                 return True
         return False
 
+    @refuse_sauf_pour_drh
     def acces_finance(self, action, request):
         for g in request.user.groups.all():
             if g in (grp_drh, ):
                 return True
         return False
 
+    @refuse_sauf_pour_drh
     def acces_haute_direction(self, action, request):
         for g in request.user.groups.all():
             if g in (grp_pole_financier, grp_drh, ):
                 return True
         return False
 
+    @refuse_sauf_pour_drh
     def acces_drh_finalisation(self, action, request):
         for g in request.user.groups.all():
             if g in (grp_haute_direction, grp_drh, ):
@@ -155,6 +193,7 @@ class PosteWorkflow(WorkflowMixin):
 
 
 #codes actions
+DOSSIER_ETAT_REFUSE = POSTE_ETAT_REFUSE
 DOSSIER_ETAT_BROUILLON = POSTE_ETAT_BROUILLON
 DOSSIER_ETAT_DIRECTEUR_BUREAU_OU_SERVICE = POSTE_ETAT_DIRECTEUR_BUREAU_OU_SERVICE
 DOSSIER_ETAT_ADMINISTRATEUR = POSTE_ETAT_ADMINISTRATEUR
index 32e7406..52d9646 100644 (file)
@@ -14,3 +14,4 @@ th ul.errorlist {float: right;}
 h2.section {width:100%; background-color: #D0E8F8; text-align: center; color: #5F5F5F; margin: 50px 0px 26px 0px; border-bottom: 3px solid #BBD8EC; padding: 4px;}
 .montant {text-align: right;}
 .bouton-action {border:1px #BBD8EC solid; font-size: 14px; font-weight: bold; margin: 12px 0; padding: 4px 8px; color: #BBD8EC; margin-left: 6px;}
+#type_intervention li {float: left; list-style: none; font-size: 1.6em; margin: 0 1em 0 0;}
index 2d8a912..2d3f8c1 100644 (file)
@@ -1,13 +1,13 @@
 # -*- encoding: utf-8 -*-
 
-from models import *
 from django.contrib import admin
+from rh.models import *
+from rh.lib import *
 
 
 class CommentaireAdmin(admin.ModelAdmin):
     pass
 
-
 class PosteAdmin(admin.ModelAdmin):
     fieldsets = (
         (None, {
diff --git a/project/rh/lib.py b/project/rh/lib.py
new file mode 100644 (file)
index 0000000..da6bf77
--- /dev/null
@@ -0,0 +1,123 @@
+# -*- encoding: utf-8 -*-
+
+from django.contrib import admin
+
+
+class CommentaireAdmin(admin.ModelAdmin):
+    pass
+
+
+class PosteAdmin(admin.ModelAdmin):
+    fieldsets = (
+        (None, {
+            'fields': ('nom', 'nom_feminin', 'implantation', 'type_poste',
+                       'service', 'responsable')
+        }),
+        ('Contrat', {
+            'fields': ('regime_travail', 'regime_travail_nb_heure_semaine')
+        }),
+        ('Recrutement', {
+            'fields': ('local', 'expatrie', 'mise_a_disposition', 'appel')
+        }),
+        ('Rémunération', {
+            'fields': ('classement_min', 'classement_max', 'valeur_point_min',
+                       'valeur_point_max', 'devise_min', 'devise_max',
+                       'salaire_min', 'salaire_max', 'indemn_min',
+                       'indemn_max', 'autre_min', 'autre_max')
+        }),
+        ('Comparatifs de rémunération', {
+            'fields': ('devise_comparaison', 'comp_locale_min',
+                       'comp_locale_max', 'comp_universite_min',
+                       'comp_universite_max', 'comp_fonctionpub_min',
+                       'comp_fonctionpub_max', 'comp_ong_min', 'comp_ong_max',
+                       'comp_autre_min', 'comp_autre_max')
+        }),
+        ('Justification', {
+            'fields': ('justification',)
+        }),
+        ('Autres Metadata', {
+            'fields': ('date_validation', 'date_debut', 'date_fin')
+        }),
+    )
+
+
+class PosteFinancementAdmin(admin.ModelAdmin):
+    pass
+
+class PostePieceAdmin(admin.ModelAdmin):
+    pass
+
+class PosteCommentaireAdmin(admin.ModelAdmin):
+    pass
+
+class EmployeAdmin(admin.ModelAdmin):
+    pass
+
+class EmployePieceAdmin(admin.ModelAdmin):
+    pass
+
+class EmployeCommentaireAdmin(admin.ModelAdmin):
+    pass
+
+class AyantDroitAdmin(admin.ModelAdmin):
+    pass
+
+class AyantDroitCommentaireAdmin(admin.ModelAdmin):
+    pass
+
+class DossierAdmin(admin.ModelAdmin):
+    pass
+
+class DossierPieceAdmin(admin.ModelAdmin):
+    pass
+
+class DossierCommentaireAdmin(admin.ModelAdmin):
+    pass
+
+class RemunerationAdmin(admin.ModelAdmin):
+    pass
+
+class ContratAdmin(admin.ModelAdmin):
+    pass
+
+class EvenementAdmin(admin.ModelAdmin):
+    pass
+
+class EvenementRemunerationAdmin(admin.ModelAdmin):
+    pass
+
+class FamilleEmploiAdmin(admin.ModelAdmin):
+    pass
+
+class TypePosteAdmin(admin.ModelAdmin):
+    pass
+
+class TypeRemunerationAdmin(admin.ModelAdmin):
+    pass
+
+class TypeRevalorisationAdmin(admin.ModelAdmin):
+    pass
+
+class ServiceAdmin(admin.ModelAdmin):
+    pass
+
+class OrganismeBstgAdmin(admin.ModelAdmin):
+    pass
+
+class StatutAdmin(admin.ModelAdmin):
+    pass
+
+class ClassementAdmin(admin.ModelAdmin):
+    pass
+
+class TauxChangeAdmin(admin.ModelAdmin):
+    pass
+
+class ValeurPointAdmin(admin.ModelAdmin):
+    pass
+
+class DeviseAdmin(admin.ModelAdmin):
+    pass
+
+class TypeContratAdmin(admin.ModelAdmin):
+    pass
index 501cf03..1a390ac 100644 (file)
@@ -204,12 +204,13 @@ POSTE_FINANCEMENT_CHOICES = (
     ('C', 'C - Autre')
 )
 
-class PosteFinancement(models.Model):
+
+class PosteFinancement_(models.Model):
     """Pour un Poste, structure d'informations décrivant comment on prévoit
     financer ce Poste.
     """
     poste = models.ForeignKey('Poste', db_column='poste', 
-                            related_name='financements')
+                            related_name='%(app_label)s_financements')
     type = models.CharField(max_length=1, choices=POSTE_FINANCEMENT_CHOICES)
     pourcentage = models.DecimalField(max_digits=12, decimal_places=2,
             help_text=u"ex.: 33.33 % (décimale avec point)")
@@ -217,11 +218,17 @@ class PosteFinancement(models.Model):
             help_text=u"Spécifiez la source de financement.")
 
     class Meta:
+        abstract = True
         ordering = ['type']
         
     def __unicode__(self):
         return u'%s : %s %' % (self.type, self.pourcentage)
 
+
+class PosteFinancement(PosteFinancement_):
+    __doc__ = PosteFinancement_.__doc__
+
+
 class PostePiece(models.Model):
     """Documents relatifs au Poste.
     Ex.: Description de poste
@@ -382,6 +389,7 @@ COMPTE_COMPTA_CHOICES = (
     ('aucun', 'Aucun'),
 )
 
+
 class Dossier_(Metadata):
     """Le Dossier regroupe les informations relatives à l'occupation
     d'un Poste par un Employe. Un seul Dossier existe par Poste occupé
@@ -476,7 +484,8 @@ class DossierCommentaire(Commentaire):
     
 class RemunerationMixin(Metadata):
     # Identification
-    dossier = models.ForeignKey('Dossier', db_column='dossier')
+    dossier = models.ForeignKey('Dossier', db_column='dossier',
+                        related_name='%(app_label)s_%(class)s_remunerations')
     type = models.ForeignKey('TypeRemuneration', db_column='type', 
                             related_name='+')
     type_revalorisation = models.ForeignKey('TypeRevalorisation', 
@@ -504,7 +513,7 @@ class RemunerationMixin(Metadata):
     def __unicode__(self):
         return u'%s %s (%s)' % (self.montant, self.devise.code, self.type.nom)
     
-class Remuneration(RemunerationMixin):
+class Remuneration_(RemunerationMixin):
     """Structure de rémunération (données budgétaires) en situation normale
     pour un Dossier. Si un Evenement existe, utiliser la structure de 
     rémunération EvenementRemuneration de cet événement.    
@@ -529,6 +538,13 @@ class Remuneration(RemunerationMixin):
             devise = "???"
         return "%s %s" % (self.montant, devise)
 
+    class Meta:
+        abstract = True
+
+
+class Remuneration(Remuneration_):
+    __doc__ = Remuneration_.__doc__
+
 
 ### CONTRATS
         
@@ -556,7 +572,7 @@ class Contrat(Metadata):
 
 ### ÉVÉNEMENTS
 
-class Evenement(Metadata):
+class Evenement_(Metadata):
     """Un Evenement sert à déclarer une situation temporaire (exceptionnelle) 
     d'un Dossier qui vient altérer des informations normales liées à un Dossier 
     (ex.: la Remuneration).
@@ -574,13 +590,20 @@ class Evenement(Metadata):
     date_debut = models.DateField(help_text=HELP_TEXT_DATE)
     date_fin = models.DateField(help_text=HELP_TEXT_DATE, 
                             null=True, blank=True)
+
     class Meta:
+        abstract = True
         ordering = ['nom']
                             
     def __unicode__(self):
         return u'%s' % (self.nom)
+
+
+class Evenement(Evenement_):
+    __doc__ = Evenement_.__doc__
+
     
-class EvenementRemuneration(RemunerationMixin):
+class EvenementRemuneration_(RemunerationMixin):
     """Structure de rémunération liée à un Evenement qui remplace 
     temporairement la Remuneration normale d'un Dossier, pour toute la durée
     de l'Evenement.
@@ -588,6 +611,13 @@ class EvenementRemuneration(RemunerationMixin):
     evenement = models.ForeignKey("Evenement", db_column='evenement',
                             related_name='+')
 
+    class Meta:
+        abstract = True
+
+
+class EvenementRemuneration(EvenementRemuneration_):
+    __doc__ = EvenementRemuneration_.__doc__
+
 
 ### RÉFÉRENCES RH 
 
@@ -713,7 +743,8 @@ TYPE_CLASSEMENT_CHOICES = (
     ('HG', 'HG - Hors grille [direction]'),
 )
 
-class Classement(Metadata):
+
+class Classement_(Metadata):
     """Éléments de classement de la 
     "Grille générique de classement hiérarchique".
     
@@ -732,13 +763,18 @@ class Classement(Metadata):
     commentaire = models.TextField(null=True, blank=True)
     
     class Meta:
+        abstract = True
         ordering = ['type','echelon','degre','coefficient']
 
     def __unicode__(self):
         return u'%s.%s.%s (%s)' % (self.type, self.echelon, self.degre,
                                    self.coefficient)
 
-class TauxChange(Metadata):
+class Classement(Classement_):
+    __doc__ = Classement_.__doc__
+
+
+class TauxChange_(Metadata):
     """Taux de change de la devise vers l'euro (EUR) 
     pour chaque année budgétaire.
     """
@@ -747,14 +783,20 @@ class TauxChange(Metadata):
                             related_name='+')
     annee = models.IntegerField()
     taux = models.FloatField()
-    
+
     class Meta:
+        abstract = True
         ordering = ['annee', 'devise__code']
     
     def __unicode__(self):
         return u'%s : %s €' % (self.devise.code, self.taux)
 
-class ValeurPoint(Metadata):
+
+class TauxChange(TauxChange_):
+    __doc__ = TauxChange_.__doc__
+
+
+class ValeurPoint_(Metadata):
     """Utile pour connaître, pour un Dossier, le salaire de base théorique lié 
     au classement dans la grille. La ValeurPoint s'obtient par l'implantation 
     du POste de ce Dossier : dossier.poste.implantation (pseudo code).
@@ -765,8 +807,8 @@ class ValeurPoint(Metadata):
     devise = models.ForeignKey('Devise', db_column='devise', 
                             related_name='+', default=5)
     implantation = models.ForeignKey(ref.Implantation, 
-                            db_column='implantation', 
-                            related_name='valeur_point')
+                            db_column='implantation',
+                            related_name='%(app_label)s_valeur_point')
     # Méta
     annee = models.IntegerField()
 
@@ -777,7 +819,8 @@ class ValeurPoint(Metadata):
                             .filter(annee=annee_courante)
 
     class Meta:
-        ordering = ['annee', 'implantation__nom']
+        abstract = True
+        ordering = ['valeur']
 
     def get_tauxchange_courant(self):
         """
@@ -799,9 +842,11 @@ class ValeurPoint(Metadata):
             devise_code = "??"
         return u'%s %s (%s-%s)' % (self.valeur, devise_code, 
                             self.implantation_id, self.annee)
-        
-    class Meta:
-        ordering = ['valeur']
+
+
+class ValeurPoint(ValeurPoint_):
+    __doc__ = ValeurPoint_.__doc__
+
 
 class Devise(Metadata):
     """Devise monétaire.