--- /dev/null
+# 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):
+ pass
+
+
+ def backwards(self, orm):
+ pass
+
+
+ models = {
+
+ }
+
+ complete_apps = ['budget']
--- /dev/null
+# 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 'Dossier'
+ db.create_table('budget_dossier', (
+ ('employe', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', db_column='employe', to=orm['rh.Employe'])),
+ ('regime_travail_nb_heure_semaine', self.gf('django.db.models.fields.DecimalField')(default=35.0, max_digits=12, decimal_places=2)),
+ ('classement', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='+', null=True, db_column='classement', to=orm['rh.Classement'])),
+ ('organisme_bstg', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='+', null=True, db_column='organisme_bstg', to=orm['rh.OrganismeBstg'])),
+ ('user_desactivation', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='+', null=True, db_column='user_desactivation', to=orm['auth.User'])),
+ ('statut', self.gf('django.db.models.fields.related.ForeignKey')(default=3, related_name='+', to=orm['rh.Statut'])),
+ ('simulation', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['budget.Simulation'])),
+ ('statut_residence', self.gf('django.db.models.fields.CharField')(default='local', max_length=10)),
+ ('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'])),
+ ('poste', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', db_column='poste', to=orm['rh.Poste'])),
+ ('regime_travail', self.gf('django.db.models.fields.DecimalField')(default=100.0, max_digits=12, decimal_places=2)),
+ ('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)),
+ ('remplacement', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+ ))
+ db.send_create_signal('budget', ['Dossier'])
+
+ # Adding model 'Simulation'
+ db.create_table('budget_simulation', (
+ ('nom', self.gf('django.db.models.fields.CharField')(max_length=255)),
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ))
+ db.send_create_signal('budget', ['Simulation'])
+
+ # Adding model 'Poste'
+ db.create_table('budget_poste', (
+ ('indemn_min', self.gf('django.db.models.fields.DecimalField')(default=0, max_digits=12, decimal_places=2)),
+ ('salaire_min', self.gf('django.db.models.fields.DecimalField')(default=0, max_digits=12, decimal_places=2)),
+ ('implantation', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', db_column='implantation', to=orm['datamaster_modeles.Implantation'])),
+ ('devise_max', self.gf('django.db.models.fields.related.ForeignKey')(default=5, related_name='+', db_column='devise_max', to=orm['rh.Devise'])),
+ ('expatrie', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+ ('date_fin', self.gf('django.db.models.fields.DateField')(null=True, blank=True)),
+ ('devise_min', self.gf('django.db.models.fields.related.ForeignKey')(default=5, related_name='+', db_column='devise_min', to=orm['rh.Devise'])),
+ ('type_poste', self.gf('django.db.models.fields.related.ForeignKey')(related_name='+', null=True, db_column='type_poste', to=orm['rh.TypePoste'])),
+ ('valeur_point_min', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='+', null=True, db_column='valeur_point_min', to=orm['rh.ValeurPoint'])),
+ ('devise_comparaison', self.gf('django.db.models.fields.related.ForeignKey')(default=5, related_name='+', db_column='devise_comparaison', to=orm['rh.Devise'])),
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('regime_travail_nb_heure_semaine', self.gf('django.db.models.fields.DecimalField')(default=35.0, max_digits=12, decimal_places=2)),
+ ('service', self.gf('django.db.models.fields.related.ForeignKey')(default=1, related_name='+', db_column='service', to=orm['rh.Service'])),
+ ('valeur_point_max', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='+', null=True, db_column='valeur_point_max', to=orm['rh.ValeurPoint'])),
+ ('indemn_max', self.gf('django.db.models.fields.DecimalField')(default=0, max_digits=12, decimal_places=2)),
+ ('date_validation', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
+ ('comp_fonctionpub_max', self.gf('django.db.models.fields.DecimalField')(null=True, max_digits=12, decimal_places=2, blank=True)),
+ ('responsable', self.gf('django.db.models.fields.related.ForeignKey')(default=149, related_name='+', db_column='responsable', to=orm['rh.Poste'])),
+ ('comp_fonctionpub_min', self.gf('django.db.models.fields.DecimalField')(null=True, max_digits=12, decimal_places=2, blank=True)),
+ ('comp_ong_min', self.gf('django.db.models.fields.DecimalField')(null=True, max_digits=12, decimal_places=2, blank=True)),
+ ('date_debut', self.gf('django.db.models.fields.DateField')()),
+ ('regime_travail', self.gf('django.db.models.fields.DecimalField')(default=100.0, max_digits=12, decimal_places=2)),
+ ('date_modification', self.gf('django.db.models.fields.DateField')(auto_now=True, blank=True)),
+ ('local', self.gf('django.db.models.fields.BooleanField')(default=True, blank=True)),
+ ('simulation', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['budget.Simulation'])),
+ ('mise_a_disposition', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True)),
+ ('nom', self.gf('django.db.models.fields.CharField')(max_length=255)),
+ ('justification', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
+ ('nom_feminin', self.gf('django.db.models.fields.CharField')(max_length=255, null=True)),
+ ('comp_ong_max', self.gf('django.db.models.fields.DecimalField')(null=True, max_digits=12, decimal_places=2, blank=True)),
+ ('autre_min', self.gf('django.db.models.fields.DecimalField')(default=0, max_digits=12, decimal_places=2)),
+ ('user_creation', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='+', null=True, db_column='user_creation', to=orm['auth.User'])),
+ ('appel', self.gf('django.db.models.fields.CharField')(default='interne', max_length=10)),
+ ('user_modification', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='+', null=True, db_column='user_modification', to=orm['auth.User'])),
+ ('comp_locale_max', self.gf('django.db.models.fields.DecimalField')(null=True, max_digits=12, decimal_places=2, blank=True)),
+ ('comp_universite_max', self.gf('django.db.models.fields.DecimalField')(null=True, max_digits=12, decimal_places=2, blank=True)),
+ ('date_creation', self.gf('django.db.models.fields.DateField')(auto_now_add=True, blank=True)),
+ ('comp_universite_min', self.gf('django.db.models.fields.DecimalField')(null=True, max_digits=12, decimal_places=2, blank=True)),
+ ('autre_max', self.gf('django.db.models.fields.DecimalField')(default=0, max_digits=12, decimal_places=2)),
+ ('user_desactivation', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='+', null=True, db_column='user_desactivation', to=orm['auth.User'])),
+ ('actif', self.gf('django.db.models.fields.BooleanField')(default=True, blank=True)),
+ ('comp_autre_max', self.gf('django.db.models.fields.DecimalField')(null=True, max_digits=12, decimal_places=2, blank=True)),
+ ('date_desactivation', self.gf('django.db.models.fields.DateField')(null=True, blank=True)),
+ ('classement_max', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='+', null=True, db_column='classement_max', to=orm['rh.Classement'])),
+ ('comp_locale_min', self.gf('django.db.models.fields.DecimalField')(null=True, max_digits=12, decimal_places=2, blank=True)),
+ ('comp_autre_min', self.gf('django.db.models.fields.DecimalField')(null=True, max_digits=12, decimal_places=2, blank=True)),
+ ('salaire_max', self.gf('django.db.models.fields.DecimalField')(default=0, max_digits=12, decimal_places=2)),
+ ('classement_min', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, related_name='+', null=True, db_column='classement_min', to=orm['rh.Classement'])),
+ ))
+ db.send_create_signal('budget', ['Poste'])
+
+
+ def backwards(self, orm):
+
+ # Deleting model 'Dossier'
+ db.delete_table('budget_dossier')
+
+ # Deleting model 'Simulation'
+ db.delete_table('budget_simulation')
+
+ # Deleting model 'Poste'
+ db.delete_table('budget_poste')
+
+
+ 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.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.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.simulation': {
+ 'Meta': {'object_name': 'Simulation'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'})
+ },
+ '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.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.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.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': "'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']
--- /dev/null
+# -=- encoding: utf-8 -=-
+
+from django.db import models
+
+from rh import models as rh
+
+
+class Simulation(models.Model):
+ nom = models.CharField(max_length=255,
+ verbose_name=u'Nom de la simulation')
+
+ def copy_rh_model(self, obj):
+ """ Crée une copie de simulation d'un modèle rh. """
+ 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 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.')
+
+ 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
+
+class Poste(rh.Poste_):
+ __doc__ = rh.Poste_.__doc__
+ simulation = models.ForeignKey(Simulation)
+
+
+class Dossier(rh.Dossier_):
+ __doc__ = rh.Dossier_.__doc__
+ simulation = models.ForeignKey(Simulation)
--- /dev/null
+"""
+This file demonstrates two different styles of tests (one doctest and one
+unittest). These will both pass when you run "manage.py test".
+
+Replace these with more appropriate tests for your application.
+"""
+
+from django.test import TestCase
+
+class SimpleTest(TestCase):
+ def test_basic_addition(self):
+ """
+ Tests that 1 + 1 always equals 2.
+ """
+ self.failUnlessEqual(1 + 1, 2)
+
+__test__ = {"doctest": """
+Another way to test that 1 + 1 is equal to 2.
+
+>>> 1 + 1 == 2
+True
+"""}
+
--- /dev/null
+# Create your views here.
from django.contrib import admin
from reversion.admin import VersionAdmin
-from models import Poste, JustificationQuestion
+from models import Poste
class PosteAdmin(VersionAdmin):
- pass
+ list_display = ('_titre', 'pourvu', 'actif', )
-class JustificationQuestionAdmin(admin.ModelAdmin):
- pass
+ def _titre(self, obj):
+ return unicode(obj)
admin.site.register(Poste, PosteAdmin)
-admin.site.register(JustificationQuestion, JustificationQuestionAdmin)
-
-
-
# -*- encoding: utf-8 -*-
-from rh_v1 import models as rh
from django.db.models import Q
+from rh_v1 import models as rh
+from utils import get_employe_from_user, is_user_dans_service
+from workflow import grp_drh
class Responsable(object):
class Dossier(object):
def get_query(self,q,request):
- return rh.Dossier.objects.filter(
- Q(complement1__icontains=q) |
- Q(poste1__type_poste__nom__icontains=q) |
- Q(poste2__type_poste__nom__icontains=q) |
- Q(employe__nom__icontains=q) |
+
+ employe = get_employe_from_user(request.user)
+ prefixe_implantation = 'poste1__implantation'
+
+ q_recherche = Q(complement1__icontains=q) | \
+ Q(poste1__type_poste__nom__icontains=q) | \
+ Q(employe__nom__icontains=q) | \
Q(employe__prenom__icontains=q)
- ).distinct()
+
+ if is_user_dans_service(request.user):
+ q_place = Q(**{ '%s' % prefixe_implantation : employe.implantation })
+ else:
+ q_place = Q(**{ '%s__region' % prefixe_implantation : employe.implantation.region })
+
+
+ if grp_drh in request.user.groups.all():
+ q_filtre = q_recherche
+ else:
+ q_filtre = q_place & q_recherche
+ return rh.Dossier.objects.filter(q_filtre).distinct()
def format_result(self, dossier):
return dossier.__unicode__()
# -*- encoding: utf-8 -*-
+from django.db.models import Q
from django.contrib import messages
from django.contrib.auth.decorators import user_passes_test
from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect
-from workflow import dae_groupes, ETATS_EDITABLE
+from workflow import dae_groupes, ETATS_EDITABLE, grp_drh
from project.dae import models as dae
from project.rh_v1 import models as rh
+from utils import get_employe_from_user, is_user_dans_service
def user_in_dae_groupes(user):
"""
return poste_dans_ma_region_ou_service(fn)(request, *args, **kwargs)
return inner
+def vieux_dossier_dans_ma_region_ou_service(fn):
+ """
+ Test si le user connecté appartient bien à la même région ou service que le poste.
+ """
+ def inner(request, *args, **kwargs):
+ user = request.user
+ dossier_id = kwargs.get('dossier_id', None)
+
+ employe = get_employe_from_user(request.user)
+ prefixe_implantation = 'poste1__implantation'
+
+ if is_user_dans_service(request.user):
+ q_place = Q(**{ '%s' % prefixe_implantation : employe.implantation })
+ else:
+ q_place = Q(**{ '%s__region' % prefixe_implantation : employe.implantation.region })
+
+
+ if grp_drh in request.user.groups.all():
+ q_filtre = Q(id=dossier_id)
+ else:
+ q_filtre = q_place & Q(id=dossier_id)
+
+ try:
+ dossier = rh.Dossier.objects.get(q_filtre)
+ return fn(request, *args, **kwargs)
+ except Exception, e:
+ msg = u"Vous n'avez pas le droit de consulter ce dossier d'embauche."
+ return redirect_interdiction(request, msg)
+
+
+ return inner
+
def employe_dans_ma_region_ou_service(fn):
"""
Test d'accès à un employé
class DossierPieceForm(inlineformset_factory(dae.Dossier, dae.DossierPiece)):
pass
-class FinancementForm(inlineformset_factory(dae.Poste, dae.PosteFinancement, extra=1)):
+class FinancementForm(inlineformset_factory(dae.Poste, dae.PosteFinancement, extra=2)):
pass
class RemunForm(inlineformset_factory(dae.Dossier, dae.Remuneration, extra=5, form=FlexibleRemunForm)):
pass
-class JustificationNouvelEmployeForm(inlineformset_factory(dae.Dossier,
- dae.JustificationNouvelEmploye,
- extra=0,
- can_delete=False,
- exclude=('question',))):
- """
- Formulaire de justification d'un nouvel employé.
- Le dossier a besoin d'être enregistré une première fois afin de prépopuler les questions.
- """
- def __init__(self, *args, **kwargs):
- instance = kwargs['instance']
- if instance.id:
- q_ids = [j.question.id for j in instance.justificationnouvelemploye_set.filter(dossier=instance)]
- for q in dae.JustificationQuestion.objects.filter(type="N"):
- if q.id in q_ids:
- continue
- j = dae.JustificationNouvelEmploye()
- j.dossier = instance
- j.question = q
- j.save()
- super(self.__class__, self).__init__(*args, **kwargs)
-
-class JustificationAutreEmployeForm(inlineformset_factory(dae.Dossier,
- dae.JustificationAutreEmploye,
- extra=0,
- can_delete=False,
- exclude=('question',))):
- """
- Formulaire de justification d'un nouvel employé.
- Le dossier a besoin d'être enregistré une première fois afin de prépopuler les questions.
- """
- def __init__(self, *args, **kwargs):
- instance = kwargs['instance']
- if instance.id:
- q_ids = [j.question.id for j in instance.justificationautreemploye_set.filter(dossier=instance)]
- for q in dae.JustificationQuestion.objects.filter(type="R"):
- if q.id in q_ids:
- continue
- j = dae.JustificationAutreEmploye()
- j.dossier = instance
- j.question = q
- j.save()
- super(self.__class__, self).__init__(*args, **kwargs)
-
class PosteForm(forms.ModelForm):
""" Formulaire des postes. """
class Meta:
model = dae.Poste
-
+ exclude = ('actif', )
fields = ('poste', 'implantation', 'type_poste', 'service', 'nom',
'responsable', 'local', 'expatrie', 'mise_a_disposition',
- 'appel', 'date_debut', 'date_fin', 'actif',
+ 'appel', 'date_debut', 'date_fin',
'regime_travail', 'regime_travail_nb_heure_semaine',
'classement_min', 'classement_max',
'valeur_point_min', 'valeur_point_max',
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):
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
+from workflow import POSTE_ETAT_HAUTE_DIRECTION, POSTE_ETAT_POLE_FINANCIER, MAP_GROUPE_ETATS_A_FAIRE
from workflow import dae_groupes, \
grp_administrateurs, \
grp_gestionnaires, \
grp_directeurs_service, \
grp_correspondants_rh
+
class SecurityManager(models.Manager):
prefixe_implantation = None
+ def mes_choses_a_faire(self, user):
+ q = Q()
+ for g in user.groups.all():
+ etats = MAP_GROUPE_ETATS_A_FAIRE.get(g, ())
+ for etat in etats:
+ q = q | Q(etat=etat)
+
+ qs = self.ma_region_ou_service(user).filter(q)
+ return qs
+
def ma_region_ou_service(self, user):
"""
Filtrage des postes en fonction du user connecté (region / service)
"""
prefixe_implantation = "implantation"
+ def ma_region_ou_service(self, user):
+ return super(PosteManager, self).filter(actif=True)
+
def get_query_set(self):
fkeys = (
'id_rh',
class DossierManager(SecurityManager):
prefixe_implantation = "poste__implantation"
+ def ma_region_ou_service(self, user):
+ return super(DossierManager, self).filter(poste__actif=True)
+
+
--- /dev/null
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+class Migration(SchemaMigration):
+
+ def forwards(self, orm):
+
+ # Changing field 'Dossier.classement'
+ db.alter_column('dae_dossier', 'classement_id', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, null=True, to=orm['rh_v1.Classement']))
+
+ # Adding field 'Poste.pourvu'
+ db.add_column('dae_poste', 'pourvu', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False)
+
+ # Changing field 'Poste.classement_max'
+ db.alter_column('dae_poste', 'classement_max_id', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, null=True, to=orm['rh_v1.Classement']))
+
+ # Changing field 'Poste.classement_min'
+ db.alter_column('dae_poste', 'classement_min_id', self.gf('django.db.models.fields.related.ForeignKey')(blank=True, null=True, to=orm['rh_v1.Classement']))
+
+ # Changing field 'Employe.genre'
+ db.alter_column('dae_employe', 'genre', self.gf('django.db.models.fields.CharField')(max_length=1))
+
+
+ def backwards(self, orm):
+
+ # Changing field 'Dossier.classement'
+ db.alter_column('dae_dossier', 'classement_id', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['rh_v1.Classement']))
+
+ # Deleting field 'Poste.pourvu'
+ db.delete_column('dae_poste', 'pourvu')
+
+ # Changing field 'Poste.classement_max'
+ db.alter_column('dae_poste', 'classement_max_id', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['rh_v1.Classement']))
+
+ # Changing field 'Poste.classement_min'
+ db.alter_column('dae_poste', 'classement_min_id', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['rh_v1.Classement']))
+
+ # Changing field 'Employe.genre'
+ db.alter_column('dae_employe', 'genre', self.gf('django.db.models.fields.CharField')(max_length=1, null=True, blank=True))
+
+
+ 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'}),
+ '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.justificationautreemploye': {
+ 'Meta': {'object_name': 'JustificationAutreEmploye'},
+ 'dossier': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['dae.Dossier']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['dae.JustificationQuestion']"}),
+ 'reponse': ('django.db.models.fields.TextField', [], {})
+ },
+ 'dae.justificationnouvelemploye': {
+ 'Meta': {'object_name': 'JustificationNouvelEmploye'},
+ 'dossier': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['dae.Dossier']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'question': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['dae.JustificationQuestion']"}),
+ 'reponse': ('django.db.models.fields.TextField', [], {})
+ },
+ 'dae.justificationquestion': {
+ 'Meta': {'object_name': 'JustificationQuestion'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'question': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+ 'type': ('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'}),
+ '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_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', [], {}),
+ '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_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']
--- /dev/null
+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+class Migration(SchemaMigration):
+
+ def forwards(self, orm):
+
+ # Deleting model 'JustificationQuestion'
+ db.delete_table('dae_justificationquestion')
+
+ # Deleting model 'JustificationNouvelEmploye'
+ db.delete_table('dae_justificationnouvelemploye')
+
+ # Deleting model 'JustificationAutreEmploye'
+ db.delete_table('dae_justificationautreemploye')
+
+ # Adding field 'Dossier.justif_rempl_salaire'
+ db.add_column('dae_dossier', 'justif_rempl_salaire', self.gf('django.db.models.fields.TextField')(null=True, blank=True), keep_default=False)
+
+ # Adding field 'Dossier.justif_rempl_evaluation'
+ db.add_column('dae_dossier', 'justif_rempl_evaluation', self.gf('django.db.models.fields.TextField')(null=True, blank=True), keep_default=False)
+
+ # Adding field 'Dossier.justif_rempl_statut_employe'
+ db.add_column('dae_dossier', 'justif_rempl_statut_employe', self.gf('django.db.models.fields.TextField')(null=True, blank=True), keep_default=False)
+
+ # Adding field 'Dossier.justif_nouveau_tmp_remplacement'
+ db.add_column('dae_dossier', 'justif_nouveau_tmp_remplacement', self.gf('django.db.models.fields.TextField')(null=True, blank=True), keep_default=False)
+
+ # Adding field 'Dossier.justif_rempl_type_contrat'
+ db.add_column('dae_dossier', 'justif_rempl_type_contrat', self.gf('django.db.models.fields.TextField')(null=True, blank=True), keep_default=False)
+
+ # Adding field 'Dossier.justif_nouveau_statut'
+ db.add_column('dae_dossier', 'justif_nouveau_statut', self.gf('django.db.models.fields.TextField')(null=True, blank=True), keep_default=False)
+
+ # Adding field 'Dossier.justif_rempl_commentaire'
+ db.add_column('dae_dossier', 'justif_rempl_commentaire', self.gf('django.db.models.fields.TextField')(null=True, blank=True), keep_default=False)
+
+ # Adding field 'Dossier.justif_nouveau_commentaire'
+ db.add_column('dae_dossier', 'justif_nouveau_commentaire', self.gf('django.db.models.fields.TextField')(null=True, blank=True), keep_default=False)
+
+ # Adding field 'Dossier.justif_nouveau_salaire'
+ db.add_column('dae_dossier', 'justif_nouveau_salaire', self.gf('django.db.models.fields.TextField')(null=True, blank=True), keep_default=False)
+
+
+ def backwards(self, orm):
+
+ # Adding model 'JustificationQuestion'
+ db.create_table('dae_justificationquestion', (
+ ('question', self.gf('django.db.models.fields.CharField')(max_length=255)),
+ ('type', self.gf('django.db.models.fields.CharField')(max_length=255)),
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ))
+ db.send_create_signal('dae', ['JustificationQuestion'])
+
+ # Adding model 'JustificationNouvelEmploye'
+ db.create_table('dae_justificationnouvelemploye', (
+ ('dossier', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['dae.Dossier'])),
+ ('question', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['dae.JustificationQuestion'])),
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('reponse', self.gf('django.db.models.fields.TextField')()),
+ ))
+ db.send_create_signal('dae', ['JustificationNouvelEmploye'])
+
+ # Adding model 'JustificationAutreEmploye'
+ db.create_table('dae_justificationautreemploye', (
+ ('dossier', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['dae.Dossier'])),
+ ('question', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['dae.JustificationQuestion'])),
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('reponse', self.gf('django.db.models.fields.TextField')()),
+ ))
+ db.send_create_signal('dae', ['JustificationAutreEmploye'])
+
+ # Deleting field 'Dossier.justif_rempl_salaire'
+ db.delete_column('dae_dossier', 'justif_rempl_salaire')
+
+ # Deleting field 'Dossier.justif_rempl_evaluation'
+ db.delete_column('dae_dossier', 'justif_rempl_evaluation')
+
+ # Deleting field 'Dossier.justif_rempl_statut_employe'
+ db.delete_column('dae_dossier', 'justif_rempl_statut_employe')
+
+ # Deleting field 'Dossier.justif_nouveau_tmp_remplacement'
+ db.delete_column('dae_dossier', 'justif_nouveau_tmp_remplacement')
+
+ # Deleting field 'Dossier.justif_rempl_type_contrat'
+ db.delete_column('dae_dossier', 'justif_rempl_type_contrat')
+
+ # Deleting field 'Dossier.justif_nouveau_statut'
+ db.delete_column('dae_dossier', 'justif_nouveau_statut')
+
+ # Deleting field 'Dossier.justif_rempl_commentaire'
+ db.delete_column('dae_dossier', 'justif_rempl_commentaire')
+
+ # Deleting field 'Dossier.justif_nouveau_commentaire'
+ db.delete_column('dae_dossier', 'justif_nouveau_commentaire')
+
+ # Deleting field 'Dossier.justif_nouveau_salaire'
+ db.delete_column('dae_dossier', 'justif_nouveau_salaire')
+
+
+ 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'}),
+ '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_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', [], {}),
+ '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_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']
from django.db import models
import reversion
from workflow import PosteWorkflow, DossierWorkflow
+from workflow import DOSSIER_ETAT_DRH_FINALISATION
from managers import DossierManager, PosteManager
import datamaster_modeles.models as ref
from rh_v1 import models as rh
verbose_name="Date de fin",
help_text=HELP_TEXT_DATE)
actif = models.BooleanField(default=True)
+ pourvu = models.BooleanField(default=False)
# Managers
objects = PosteManager()
return (float)(self.salaire_min + self.indemn_min + self.autre_min)
def get_taux_minimum(self):
- try:
- return rh.TauxChange.objects.filter(implantation=self.implantation, devise=self.devise_min)[0].taux
- except:
+ taux_changes = rh.TauxChange.objects.filter(devise=self.devise_min).order_by('annee')
+ for t in taux_changes:
+ if t.implantation == self.implantation:
+ return t.taux
+ if len(taux_changes) > 0:
+ return taux_changes[0].taux
+ else:
raise Exception('Taux indisponible pour la devise %s (%s)' % (self.devise_min, self.implantation))
def get_couts_minimum_euros(self):
return (float)(self.salaire_max + self.indemn_max + self.autre_max)
def get_taux_maximum(self):
- try:
- return rh.TauxChange.objects.filter(implantation=self.implantation, devise=self.devise_max)[0].taux
- except:
+ taux_changes = rh.TauxChange.objects.filter(devise=self.devise_max).order_by('annee')
+ for t in taux_changes:
+ if t.implantation == self.implantation:
+ return t.taux
+ if len(taux_changes) > 0:
+ return taux_changes[0].taux
+ else:
raise Exception('Taux indisponible pour la devise %s (%s)' % (self.devise_max, self.implantation))
def get_couts_maximum_euros(self):
contrat_date_fin = models.DateField(null=True, blank=True,
help_text="format: aaaa-mm-jj")
+ # Justifications
+ justif_nouveau_statut_label = u'Justifier le statut que ce type de poste nécessite (national, expatrié, màd ou détachement)'
+ justif_nouveau_statut = models.TextField(verbose_name=justif_nouveau_statut_label, null=True, blank=True)
+ justif_nouveau_tmp_remplacement_label = u"Si l'employé effectue un remplacement temporaire, préciser le motif"
+ justif_nouveau_tmp_remplacement = models.TextField(verbose_name=justif_nouveau_tmp_remplacement_label, null=True, blank=True)
+ justif_nouveau_salaire_label = u"Si le salaire de l'employé ne correspond pas au classement du poste, ou est différent du salaire antérieur, jusitfier"
+ justif_nouveau_salaire = models.TextField(verbose_name=justif_nouveau_salaire_label, null=True, blank=True)
+ justif_nouveau_commentaire_label = u"Commentaires additionnels"
+ justif_nouveau_commentaire = models.TextField(verbose_name=justif_nouveau_commentaire_label, null=True, blank=True)
+ justif_rempl_type_contrat_label = u"Changement de type de contrat, ex : d'un CDD en CDI"
+ justif_rempl_type_contrat = models.TextField(verbose_name=justif_rempl_type_contrat_label, null=True, blank=True)
+ justif_rempl_statut_employe_label = u"Si le statut de l'employé a été modifié pour ce poste ; ex : national, expatrié, màd, détachement ? si oui, justifier"
+ justif_rempl_statut_employe = models.TextField(verbose_name=justif_rempl_statut_employe_label, null=True, blank=True)
+ justif_rempl_evaluation_label = u"L'évaluation de l'employé est-elle favorable, préciser"
+ justif_rempl_evaluation = models.TextField(verbose_name=justif_rempl_evaluation_label, null=True, blank=True)
+ justif_rempl_salaire_label = u"Si le salaire de l'employé est modifié et/ou ne correspond pas à son classement, justifier"
+ justif_rempl_salaire = models.TextField(verbose_name=justif_rempl_salaire_label, null=True, blank=True)
+ justif_rempl_commentaire_label = u"Commentaires additionnels"
+ justif_rempl_commentaire = models.TextField(verbose_name=justif_rempl_commentaire_label, null=True, blank=True)
+
# Comptes
compte_compta = models.CharField(max_length=10, default='aucun',
verbose_name=u'Compte comptabilité',
def montant_euro_mois(self):
return round(self.montant_euro() / 12, 2)
-
-
-### JUSTIFICATIONS
-
-TYPE_JUSTIFICATIONS = (
- ('N', 'Nouvel employé'),
- ('R', 'Renouvellement employé'),
-)
-
-class JustificationQuestion(models.Model):
- question = models.CharField(max_length=255)
- type = models.CharField(max_length=255, choices=TYPE_JUSTIFICATIONS)
-
- def __unicode__(self,):
- return self.question
-
-class JustificationNouvelEmploye(models.Model):
- dossier = models.ForeignKey("Dossier")
- question = models.ForeignKey("JustificationQuestion")
- reponse = models.TextField()
-
-class JustificationAutreEmploye(models.Model):
- dossier = models.ForeignKey("Dossier")
- question = models.ForeignKey("JustificationQuestion")
- reponse = models.TextField()
<th>Type de contrat</th>
<td colspan="4">{{ dossier.type_contrat }}</td>
<th>Remplacement</th>
- <td>{{ dossier.remplacement }}</td>
+ <td>{%if dossier.remplacement %}oui{% else %}non{%endif %}</td>
</tr>
<tr>
<th rowspan="2">Durée</th>
- <td>du</td>
- <td>{{ dossier.contrat_date_debut }}</td>
- <td>au</td>
- <td>{{ dossier.contrat_date_fin }}</td>
+ <td colspan=2> du {{ dossier.contrat_date_debut }}</td>
+ <td colspan=2>au {{ dossier.contrat_date_fin }}</td>
<th>Régime de travail</th>
- <td>{{ dossier.regime_travail }}</td>
+ <td>{{ dossier.regime_travail }}%</td>
</tr>
<tr>
<th>Nombre d'heure par semaine</th>
- <td>{{ dossier.regime_travail_nb_heure_semaine }}</td>
+ <td colspan=5>{{ dossier.regime_travail_nb_heure_semaine }}H</td>
</tr>
<tr>
<th>Statut : </th>
<td colspan="4">{{ dossier.statut }} {{ dossier.statut_residence }}</td>
<th>Organisme BSTG</th>
- <td>{{ dossier.organisme_bstg }}{{ dossier.organisme_bstg_autre }}</td>
+ {% if dossier.organisme_bstg or dossier.organisme_bstg_autre %}
+ <td>{% if dossier.organisme_bstg %}{{ dossier.organisme_bstg }}{% endif %} {{ dossier.organisme_bstg_autre }}</td>
+ {% else %}
+ <td>s/o</td>
+ {% endif %}
</tr>
</tbody>
</table>
</tr>
<tr>
<th>Classement proposé</th>
- <th colspan="6">Salaire proposé <span class="info">(fourchette du poste : {{ dossier.poste.salaire_min }} {{ dossier.poste.devise_min.code }}
- - {{ dossier.poste.salaire_max }} {{ dossier.poste.devise_max.code }})</span>
+ <th colspan="6">Salaire proposé</span>
</th>
</tr>
<tr>
<td>{{ dossier.classement }}</td>
- <td colspan="2">{{ dossier.salaire }} {{ dossier.devise.code }} </td>
- <td colspan="4" id="salaire-propose-euros" class="montant">{{ dossier.get_salaire_euros }} €</td>
+ <td colspan="2">{{ dossier.salaire|floatformat:0 }} {{ dossier.devise.code }}</td>
+ <td colspan="4" id="salaire-propose-euros" class="montant">{{ dossier.get_salaire_euros|floatformat:0 }} €</td>
</tr>
</tbody>
</table>
<th>Précision</th>
</tr>
+{% if dossier.get_couts_auf %}
<tr>
<th colspan="5">Coûts AUF</th>
<th id="sous-total-cout" class="montant">{{ dossier.get_total_couts_auf|floatformat:0 }}€</th>
<th></th>
</tr>
+{% endif %}
+
{% for remun in dossier.get_couts_auf %}
<tr class="cout">
</tr>
{% endfor %}
+{% if dossier.get_aides_auf %}
<tr>
<th colspan="5">BSTG - Salaire de mise à disposition</th>
<th id="sous-total-aide" class="montant">{{ dossier.get_total_aides_auf|floatformat:0 }}€</th>
<th></th>
</tr>
+{% endif %}
{% for remun in dossier.get_aides_auf %}
<tr class="aide">
<p>{{ poste.justification }}</p>
<h3>B - Justification de l'employé</h3>
- <p class="info">Les questions posées pour la justification apparaîtront après avoir enregistré le dossier.</p>
<table>
<tr>
- <th>NOUVEL EMPLOYÉ</th>
- <th>RENOUVELLEMENT, PROLONGATION, RECLASSEMENT, MOBILITÉ INTERNE</th>
+ <th>Nouvel employé</th>
+ <th>Renouvellement, prolongation, reclassement, mobilité interne</th>
</tr>
<tr>
- <td>
- {% with justificationsNouveauForm as form %}
- {% include "dae/justifications.html" %}
- {% endwith %}
+ <td>
+ <h4>{{ forms.dossier.justif_nouveau_statut.label }}</h4>
+ {{ forms.dossier.justif_nouveau_statut }}
+ <h4>{{ forms.dossier.justif_nouveau_tmp_remplacement.label }}</h4>
+ {{ forms.dossier.justif_nouveau_tmp_remplacement }}
+ <h4>{{ forms.dossier.justif_nouveau_salaire.label }}</h4>
+ {{ forms.dossier.justif_nouveau_salaire }}
+ <h4>{{ forms.dossier.justif_nouveau_commentaire.label }}</h4>
+ {{ forms.dossier.justif_nouveau_commentaire }}
</td>
<td>
- {% with justificationsAutreForm as form %}
- {% include "dae/justifications.html" %}
- {% endwith %}
+ <h4>{{ forms.dossier.justif_rempl_type_contrat.label }}</h4>
+ {{ forms.dossier.justif_rempl_type_contrat}}
+ <h4>{{ forms.dossier.justif_rempl_statut_employe.label }}</h4>
+ {{ forms.dossier.justif_rempl_statut_employe}}
+ <h4>{{ forms.dossier.justif_rempl_evaluation.label }}</h4>
+ {{ forms.dossier.justif_rempl_evaluation}}
+ <h4>{{ forms.dossier.justif_rempl_salaire.label }}</h4>
+ {{ forms.dossier.justif_rempl_salaire }}
+ <h4>{{ forms.dossier.justif_rempl_commentaire.label }}</h4>
+ {{ forms.dossier.justif_rempl_commentaire }}
</td>
</tr>
</table>
{% extends 'base.html' %}
-{% load adminmedia %}
+{% load adminmedia dae %}
{% block title %}RH - DAE - Embauche{% endblock %}
{% block titre %}Ressources humaines{% endblock %}
{% block main %}
<h1 class="gauche">Demandes d'autorisation d'engagement de personnel</h1>
<a class="droite bouton-action" target="_blank" href="?mode=vpdf">Format impression</a>
-<a class="droite bouton-action" href="{% url embauche dossier.poste.key dossier.id %}">Modifier</a>
+{% if dossier|est_editable %}<a class="droite bouton-action" href="{% url embauche dossier.poste.key dossier.id %}">Modifier</a>{% endif %}
<div class="visualClear"></div>
<h2 class="section">SECTION 1 - POSTE</h2>
<p>{{ poste.justification }}</p>
<h3>B - Justification de l'employé</h3>
- <p class="info">Les questions posées pour la justification apparaîtront après avoir enregistré le dossier.</p>
<table>
<tr>
- <th>NOUVEL EMPLOYÉ</th>
- <th>RENOUVELLEMENT, PROLONGATION, RECLASSEMENT, MOBILITÉ INTERNE</th>
+ <th>Nouvel employé</th>
+ <th>Renouvellement, prolongation, reclassement, mobilité interne</th>
</tr>
<tr>
- <td>
- {% for j in dossier.justificationnouvelemploye_set.all %}
- <h4>{{ j.question }}</h4>
- <p>{{ j.reponse }}</p>
- {% endfor %}
+ <td>
+ <h4>{{ dossier.justif_nouveau_statut_label }}</h4>
+ {{ dossier.justif_nouveau_statut|default:"∅" }}
+ <h4>{{ dossier.justif_nouveau_tmp_remplacement_label }}</h4>
+ {{ dossier.justif_nouveau_tmp_remplacement|default:"∅" }}
+ <h4>{{ dossier.justif_nouveau_salaire_label }}</h4>
+ {{ dossier.justif_nouveau_salaire|default:"∅" }}
+ <h4>{{ dossier.justif_nouveau_commentaire_label }}</h4>
+ {{ dossier.justif_nouveau_commentaire|default:"∅" }}
</td>
<td>
- {% for j in dossier.justificationautreemploye_set.all %}
- <h4>{{ j.question }}</h4>
- <p>{{ j.reponse }}</p>
- {% endfor %}
+ <h4>{{ dossier.justif_rempl_type_contrat_label }}</h4>
+ {{ dossier.justif_rempl_type_contrat|default:"∅"}}
+ <h4>{{ dossier.justif_rempl_statut_employe_label }}</h4>
+ {{ dossier.justif_rempl_statut_employe|default:"∅"}}
+ <h4>{{ dossier.justif_rempl_evaluation_label }}</h4>
+ {{ dossier.justif_rempl_evaluation|default:"∅"}}
+ <h4>{{ dossier.justif_rempl_salaire_label }}</h4>
+ {{ dossier.justif_rempl_salaire|default:"∅" }}
+ <h4>{{ dossier.justif_rempl_commentaire_label }}</h4>
+ {{ dossier.justif_rempl_commentaire|default:"∅" }}
</td>
</tr>
</table>
<fieldset>
- <h2>Validation</h2>
+ <h2>Validations</h2>
<ul>
{% for commentaire in dossier.historique_desc %}
<li>{{ commentaire }}</li>
{% endfor %}
</ul>
+
+ <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>
<form action="" method="post">
<table>
<p>{{ poste.justification }}</p>
<h3>B - Justification de l'employé</h3>
-<p class="info">Les questions posées pour la justification apparaîtront après avoir enregistré le dossier.</p>
<table>
- <tbody>
- <tr>
- <th>NOUVEL EMPLOYÉ</th>
- <th>RENOUVELLEMENT, PROLONGATION, RECLASSEMENT, MOBILITÉ INTERNE</th>
- </tr>
- <tr>
- <td>
- {% for j in dossier.justificationnouvelemploye_set.all %}
- <h4>{{ j.question }}</h4>
- <p>{{ j.reponse }}</p>
- {% endfor %}
- </td>
- <td>
- {% for j in dossier.justificationautreemploye_set.all %}
- <h4>{{ j.question }}</h4>
- <p>{{ j.reponse }}</p>
- {% endfor %}
- </td>
- </tr>
- </tbody>
+<tr>
+ <th>Nouvel employé</th>
+ <th>Renouvellement, prolongation, reclassement, mobilité interne</th>
+</tr>
+<tr>
+ <td>
+ <h4>{{ dossier.justif_nouveau_statut_label }}</h4>
+ {{ dossier.justif_nouveau_statut|default:"∅" }}
+ <h4>{{ dossier.justif_nouveau_tmp_remplacement_label }}</h4>
+ {{ dossier.justif_nouveau_tmp_remplacement|default:"∅" }}
+ <h4>{{ dossier.justif_nouveau_salaire_label }}</h4>
+ {{ dossier.justif_nouveau_salaire|default:"∅" }}
+ <h4>{{ dossier.justif_nouveau_commentaire_label }}</h4>
+ {{ dossier.justif_nouveau_commentaire|default:"∅" }}
+ </td>
+ <td>
+ <h4>{{ dossier.justif_rempl_type_contrat_label }}</h4>
+ {{ dossier.justif_rempl_type_contrat|default:"∅"}}
+ <h4>{{ dossier.justif_rempl_statut_employe_label }}</h4>
+ {{ dossier.justif_rempl_statut_employe|default:"∅"}}
+ <h4>{{ dossier.justif_rempl_evaluation_label }}</h4>
+ {{ dossier.justif_rempl_evaluation|default:"∅"}}
+ <h4>{{ dossier.justif_rempl_salaire_label }}</h4>
+ {{ dossier.justif_rempl_salaire|default:"∅" }}
+ <h4>{{ dossier.justif_rempl_commentaire_label }}</h4>
+ {{ dossier.justif_rempl_commentaire|default:"∅" }}
+ </td>
+</tr>
</table>
<fieldset>
{% block main %}
<h1>Liste des demandes d'autorisation d'engagement de personnel</h1>
+<h2>Mes embauches à traiter</h2>
+{% if embauches_a_traiter %}
<table>
<tr>
<th>Embauche</th>
<th>Région</th>
<th>État</th>
</tr>
-{% for dossier in embauches %}
+{% for dossier in embauches_a_traiter %}
<tr>
<td><a href="{% url embauche_consulter dossier.id %}">{{ dossier }}</a></td>
<td>{{ dossier.poste.implantation.region }}</td>
</tr>
{% endfor %}
</table>
+{% else %}
+ <p>Vous n'avez aucune embauche à traiter.</p>
+{% endif %}
+
+<h2>Les embauches en cours</h2>
+{% if embauches_en_cours %}
+<table>
+ <tr>
+ <th>Embauche</th>
+ <th>Région</th>
+ <th>État</th>
+ </tr>
+{% for dossier in embauches_en_cours %}
+ <tr>
+ <td><a href="{% url embauche_consulter dossier.id %}">{{ dossier }}</a></td>
+ <td>{{ dossier.poste.implantation.region }}</td>
+ <td>{{ dossier.get_etat_display }}</td>
+ </tr>
+{% endfor %}
+</table>
+{% else %}
+ <p>Il n'y a aucune embauche en cours.</p>
+{% endif %}
+
+<h2>Les embauches non retenues</h2>
+{% if embauches_non_retenues %}
+<table>
+ <tr>
+ <th>Embauche</th>
+ <th>Région</th>
+ <th>État</th>
+ </tr>
+{% for dossier in embauches_non_retenues %}
+ <tr>
+ <td><a href="{% url embauche_consulter dossier.id %}">{{ dossier }}</a></td>
+ <td>{{ dossier.poste.implantation.region }}</td>
+ <td>{{ dossier.get_etat_display }}</td>
+ </tr>
+{% endfor %}
+</table>
+{% else %}
+ <p>Il n'y a aucune embauche non retenue.</p>
+{% endif %}
+
{% endblock %}
{% extends 'base.html' %}
+{% load dae %}
{% block title %}RH - DAE{% endblock %}
{% block titre %}Ressources humaines{% endblock %}
<h2>Demandes d'autorisation de création de poste</h2>
<ul>
- <li><a href="{% url poste %}">Soumettre une demande</a></li>
+ {% if request.user|peut_ajouter %}<li><a href="{% url poste %}">Soumettre une demande</a></li>{% endif %}
<li><a href="{% url dae_postes_liste %}">Voir et valider les demandes</a></li>
</ul>
<h2>Demandes d'autorisation d'engagement de personnel</h2>
<ul>
- <li><a href="{% url embauche %}">Soumettre une demande</a> <i>(création de poste nécessaire au préalable)</i></li>
+ {% if request.user|peut_ajouter %}<li><a href="{% url embauche %}">Soumettre une demande</a> <i>(création de poste nécessaire au préalable)</i></li>{% endif %}
<li><a href="{% url dae_embauches_liste %}">Voir et valider les demandes</a></li>
</ul>
{% endblock %}
<fieldset>
<h2>Financement</h2>
- <span class="info">Si vous avez plusieurs financements, cliquer sur sauvegarder et une nouvelle ligne de financement sera disponible.</span>
+ <span class="info">Si vous avez plus de 2 financements, cliquer sur 'sauvegarder et continuer' lorsque que le formulaire sera complété. Une nouvelle ligne de financement sera alors disponible.</span>
{% include "dae/financements.html" %}
</fieldset>
{% extends 'base.html' %}
-{% load adminmedia %}
+{% load adminmedia dae %}
{% block title %}RH - DAE - Poste{% endblock %}
{% block titre %}Ressources humaines{% endblock %}
<h1 class="gauche">Demande d'autorisation de création de poste</h1>
<a class="droite bouton-action" target="_blank" href="?mode=vpdf">Format impression</a>
-<a class="droite bouton-action" href="{% url poste poste.key %}">Modifier</a>
+{% if poste|est_editable %}<a class="droite bouton-action" href="{% url poste poste.key %}">Modifier</a>{% endif %}
<div class="visualClear"></div>
{% include "dae/poste_resume.html" %}
<fieldset>
-<h2>Validation</h2>
+<h2>Validations</h2>
<ul>
{% for commentaire in poste.historique_desc %}
{% endfor %}
</ul>
+<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>
+
<form action="" method="post">
<table>
{{ validationForm }}
<td class="montant">{{ poste.salaire_min|floatformat:0 }} {{ poste.devise_min.code }}</td>
<td class="montant">{{ poste.indemn_min|floatformat:0 }} {{ poste.devise_min.code }}</td>
<td class="montant">{{ poste.autre_min|floatformat:0 }} {{ poste.devise_min.code }}</td>
- <td class="montant">{{ poste.show_couts_minimum|floatformat:0 }} {{ poste.devise_min.code }}</td>
+ <td class="montant">{{ poste.get_couts_minimum|floatformat:0 }} {{ poste.devise_min.code }}</td>
<td>{{ poste.show_taux_minimum }}</td>
<td class="montant">{{ poste.show_couts_minimum_euros|floatformat:0 }} EUR</td>
</tr>
<td class="montant">{{ poste.salaire_max|floatformat:0 }} {{ poste.devise_max.code }}</td>
<td class="montant">{{ poste.indemn_max|floatformat:0 }} {{ poste.devise_max.code }}</td>
<td class="montant">{{ poste.autre_max|floatformat:0 }} {{ poste.devise_max.code }}</td>
- <td class="montant">{{ poste.show_couts_maximum|floatformat:0 }} {{ poste.devise_max.code }}</td>
+ <td class="montant">{{ poste.get_couts_maximum|floatformat:0 }} {{ poste.devise_max.code }}</td>
<td>{{ poste.show_taux_maximum }}</td>
<td class="montant">{{ poste.show_couts_maximum_euros|floatformat:0 }} EUR</td>
</tr>
{% block main %}
<h1>Liste des demandes d'autorisation de création de poste</h1>
+<h2>Mes postes à traiter</h2>
+{% if postes_a_traiter %}
<table>
<tr>
<th>Poste</th>
<th>Région</th>
<th>État</th>
</tr>
-{% for poste in postes %}
+{% for poste in postes_a_traiter %}
+ <tr>
+ <td><a href="{% url poste_consulter poste.key %}">{{ poste }}</a></td>
+ <td>{{ poste.implantation.region }}</td>
+ <td>{{ poste.get_etat_display }}</td>
+ </tr>
+{% endfor %}
+</table>
+{% else %}
+ <p>Vous n'avez aucun poste à traiter.</p>
+{% endif %}
+
+<h2>Les postes en cours de validation</h2>
+{% if postes_vacants %}
+<table>
+ <tr>
+ <th>Poste</th>
+ <th>Région</th>
+ <th>État</th>
+ </tr>
+{% for poste in postes_vacants %}
+ <tr>
+ <td><a href="{% url poste_consulter poste.key %}">{{ poste }}</a></td>
+ <td>{{ poste.implantation.region }}</td>
+ <td>{{ poste.get_etat_display }}</td>
+ </tr>
+
+{% endfor %}
+</table>
+{% else %}
+ <p>Il n'y a aucun poste en cours de validation.</p>
+{% endif %}
+
+<h2>Les postes pourvus</h2>
+{% if postes_pourvus %}
+<table>
+ <tr>
+ <th>Poste</th>
+ <th>Région</th>
+ <th>État</th>
+ </tr>
+{% for poste in postes_pourvus %}
<tr>
<td><a href="{% url poste_consulter poste.key %}">{{ poste }}</a></td>
<td>{{ poste.implantation.region }}</td>
{% endfor %}
</table>
+{% else %}
+ <p>Il n'y a aucun poste pourvu pour l'instant.</p>
+{% endif %}
{% endblock %}
--- /dev/null
+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
+
+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):
+ return True
+ return False
+
+@register.filter
+def est_editable(obj):
+ if obj.etat in ETATS_EDITABLE:
+ return True
+ else:
+ return False
+
from decorators import dae_groupe_requis, \
poste_dans_ma_region_ou_service, \
dossier_dans_ma_region_ou_service, \
+ vieux_dossier_dans_ma_region_ou_service, \
employe_dans_ma_region_ou_service, \
dossier_est_modifiable, \
poste_est_modifiable
def postes_liste(request):
""" Liste des postes. """
vars = dict()
- vars['postes'] = dae.Poste.objects.ma_region_ou_service(request.user).order_by('-date_creation')
+ vars['postes_a_traiter'] = dae.Poste.objects.mes_choses_a_faire(request.user).filter(pourvu=False).order_by('-date_creation')
+ vars['postes_vacants'] = dae.Poste.objects.ma_region_ou_service(request.user).filter(pourvu=False).order_by('-date_creation')
+ vars['postes_pourvus'] = dae.Poste.objects.ma_region_ou_service(request.user).filter(pourvu=True).order_by('-date_creation')
return render_to_response('dae/postes_liste.html', vars, RequestContext(request))
def filtered_type_remun():
dossier = get_object_or_404(dae.Dossier, pk=dossier_id)
dossier_form = DossierForm(request.POST, instance=dossier)
piecesForm = DossierPieceForm(request.POST, request.FILES, instance=dossier)
- justificationsNouveauForm = JustificationNouvelEmployeForm(request.POST, instance=dossier)
- justificationsAutreForm = JustificationAutreEmployeForm(request.POST, instance=dossier)
dossiersComparaisonsForm = DossierComparaisonForm(request.POST, instance=dossier)
remunForm = RemunForm(request.POST, instance=dossier)
- print remunForm.errors
if dossier_form.is_valid() and \
piecesForm.is_valid() and \
- justificationsNouveauForm.is_valid() and \
- justificationsAutreForm.is_valid() and \
dossiersComparaisonsForm.is_valid() and \
remunForm.is_valid():
dossier = dossier_form.save()
piecesForm.instance = dossier
piecesForm.save()
- justificationsNouveauForm.instance = dossier
- justificationsNouveauForm.save()
- justificationsAutreForm.instance = dossier
- justificationsAutreForm.save()
dossiersComparaisonsForm.instance = dossier
dossiersComparaisonsForm.save()
remunForm.instance = dossier
else:
dossier_form = DossierForm(instance=dossier)
piecesForm = DossierPieceForm(instance=dossier)
- justificationsNouveauForm = JustificationNouvelEmployeForm(instance=dossier)
- justificationsAutreForm = JustificationAutreEmployeForm(instance=dossier)
dossiersComparaisonsForm = DossierComparaisonForm(instance=dossier)
remunForm = RemunForm(instance=dossier)
else:
dossier_form = DossierForm(instance=dossier)
piecesForm = DossierPieceForm(instance=dossier)
- justificationsNouveauForm = JustificationNouvelEmployeForm(instance=dossier)
- justificationsAutreForm = JustificationAutreEmployeForm(instance=dossier)
dossiersComparaisonsForm = DossierComparaisonForm(instance=dossier)
remunForm = RemunForm(instance=dossier)
dossier=dossier,
piecesForm=piecesForm,
remunForm=remunForm,
- justificationsNouveauForm=justificationsNouveauForm,
- justificationsAutreForm=justificationsAutreForm,
dossiersComparaisonsForm=dossiersComparaisonsForm,
forms=dict(employe=employe_form, dossier=dossier_form, )
)
def embauches_liste(request):
""" Liste des embauches. """
vars = dict()
- vars['embauches'] = dae.Dossier.objects.ma_region_ou_service(request.user).order_by('-date_creation')
+ vars['embauches_a_traiter'] = dae.Dossier.objects.ma_region_ou_service(request.user).filter(poste__pourvu=False).order_by('-date_creation')
+ vars['embauches_en_cours'] = dae.Dossier.objects.ma_region_ou_service(request.user).filter(poste__pourvu=False).order_by('-date_creation')
+ vars['embauches_non_retenues'] = dae.Dossier.objects.ma_region_ou_service(request.user).filter(poste__pourvu=True).order_by('-date_creation')
return render_to_response('dae/embauches_liste.html', vars, RequestContext(request))
def employe(request, key):
return dossier
@dae_groupe_requis
-@dossier_dans_ma_region_ou_service
+@vieux_dossier_dans_ma_region_ou_service
def dossier_resume(request, dossier_id=None):
""" Appel AJAX :
input : valeur_point
grp_directeurs_service, grp_correspondants_rh, )
# codes états
+POSTE_ETAT_REFUSE = 'REFUSE'
POSTE_ETAT_BROUILLON = 'BROUILLON'
POSTE_ETAT_DIRECTEUR_BUREAU_OU_SERVICE = 'DIRECTEUR_BUR_SRV'
POSTE_ETAT_ADMINISTRATEUR = 'ADMINISTRATEUR'
POSTE_ETAT_HAUTE_DIRECTION = 'HAUTE_DIRECTION'
POSTE_ETAT_DRH_FINALISATION = 'DRH_FINALISATION'
-ETATS_EDITABLE = (POSTE_ETAT_BROUILLON, POSTE_ETAT_ADMINISTRATEUR, POSTE_ETAT_DRH_CONTROLE)
-
#codes actions
+POSTE_ACTION_ENVOYER_REFUSE = POSTE_ETAT_REFUSE
POSTE_ACTION_ENVOYER_BROUILLON = POSTE_ETAT_BROUILLON
POSTE_ACTION_ENVOYER_DIRECTEUR_BUREAU_OU_SERVICE = POSTE_ETAT_DIRECTEUR_BUREAU_OU_SERVICE
POSTE_ACTION_ENVOYER_ADMINISTRATEUR = POSTE_ETAT_ADMINISTRATEUR
#libellés états
POSTE_ETATS = {
- POSTE_ETAT_BROUILLON : u"Proposition",
+ POSTE_ETAT_REFUSE : u"Refusé",
+ POSTE_ETAT_BROUILLON : u"En rédaction",
POSTE_ETAT_DIRECTEUR_BUREAU_OU_SERVICE : u"Directeur de bureau, pôle ou service",
POSTE_ETAT_ADMINISTRATEUR : u"Validation de l'adminstrateur",
POSTE_ETAT_DRH_CONTROLE : u"Validation DRH",
# définition du worflow séquentiel
POSTE_ACTIONS = {
+ POSTE_ACTION_ENVOYER_REFUSE : {
+ 'nom' : u'Refuser',
+ 'etat_initial' : (POSTE_ETAT_DIRECTEUR_BUREAU_OU_SERVICE, POSTE_ETAT_ADMINISTRATEUR, POSTE_ETAT_DRH_CONTROLE, POSTE_ETAT_POLE_FINANCIER, POSTE_ETAT_HAUTE_DIRECTION),
+ 'etat_final' : POSTE_ETAT_REFUSE,
+ },
POSTE_ACTION_ENVOYER_BROUILLON : {
'nom' : u'Créer',
'etat_initial' : None,
class Meta:
abstract = True
+ def acces_refuse(self, action, request):
+ return True
def acces_directeur_bur_srv(self, action, request):
for g in request.user.groups.all():
return False
+#codes actions
+DOSSIER_ETAT_BROUILLON = POSTE_ETAT_BROUILLON
+DOSSIER_ETAT_DIRECTEUR_BUREAU_OU_SERVICE = POSTE_ETAT_DIRECTEUR_BUREAU_OU_SERVICE
+DOSSIER_ETAT_ADMINISTRATEUR = POSTE_ETAT_ADMINISTRATEUR
+DOSSIER_ETAT_DRH_CONTROLE = POSTE_ETAT_DRH_CONTROLE
+DOSSIER_ETAT_POLE_FINANCIER = POSTE_ETAT_POLE_FINANCIER
+DOSSIER_ETAT_HAUTE_DIRECTION = POSTE_ETAT_HAUTE_DIRECTION
+DOSSIER_ETAT_DRH_FINALISATION = POSTE_ETAT_DRH_FINALISATION
class DossierWorkflow(PosteWorkflow):
class Meta:
abstract = True
+
+ def save(self, force_insert=False, force_update=False, using=None):
+ """
+ Lorsqu'un dossier est retenu, on flag le poste pourvu
+ """
+ super(PosteWorkflow, self).save(force_insert, force_update, using)
+ if self.etat == DOSSIER_ETAT_DRH_FINALISATION:
+ self.poste.pourvu = True
+ self.poste.save()
+
+
+MAP_GROUPE_ETATS_A_FAIRE = {
+ grp_gestionnaires : (),
+ grp_service_utilisateurs : (),
+ grp_correspondants_rh : (),
+ grp_administrateurs : (POSTE_ETAT_ADMINISTRATEUR, DOSSIER_ETAT_ADMINISTRATEUR,),
+ grp_directeurs_bureau : (POSTE_ETAT_DIRECTEUR_BUREAU_OU_SERVICE, DOSSIER_ETAT_DIRECTEUR_BUREAU_OU_SERVICE,),
+ grp_drh : (POSTE_ETAT_DRH_CONTROLE, POSTE_ETAT_DRH_FINALISATION, DOSSIER_ETAT_DRH_CONTROLE, DOSSIER_ETAT_DRH_FINALISATION,),
+ grp_pole_financier : (POSTE_ETAT_POLE_FINANCIER, DOSSIER_ETAT_POLE_FINANCIER, ),
+ grp_haute_direction : (POSTE_ETAT_HAUTE_DIRECTION, DOSSIER_ETAT_HAUTE_DIRECTION, ),
+ grp_directeurs_service : (POSTE_ETAT_DIRECTEUR_BUREAU_OU_SERVICE, DOSSIER_ETAT_DIRECTEUR_BUREAU_OU_SERVICE,),
+}
+
+
+ETATS_EDITABLE = (POSTE_ETAT_BROUILLON, POSTE_ETAT_ADMINISTRATEUR, POSTE_ETAT_DRH_CONTROLE, POSTE_ETAT_DIRECTEUR_BUREAU_OU_SERVICE,
+ DOSSIER_ETAT_BROUILLON, DOSSIER_ETAT_ADMINISTRATEUR, DOSSIER_ETAT_DRH_CONTROLE, DOSSIER_ETAT_DIRECTEUR_BUREAU_OU_SERVICE,
+)
+
value = (montant_annuel.val());
}
- montant_mensuel.val(value / 12);
+ montant_mensuel.val(clean_float(value / 12));
montant_annuel.val(value);
var devise = $('#' + prefix + '-devise').val();
var taux = parseFloat(DEVISES[devise]);
if (isNaN(taux)) taux = 0;
- montant_mensuel_euros.text(value / 12 * taux)
- montant_annuel_euros.text(value * taux)
+ montant_mensuel_euros.text(clean_float(value / 12 * taux))
+ montant_annuel_euros.text(clean_float(value * taux))
}
/* Calcul des totaux dans les 2 devises, selon les champs sélectionnés. Cette fonction
est appelée À chaque modification du formulaire de classement. */
function recalculer_ligne(element) {
-
/* on laisse la possibilité de choisir le salaire manuellement,
la réinitialisation du salaire de base s'opère dès qu'on choisi
un nouveau classement. */
/* recalcule tout le classement */
function recalculer_tout() {
- $("#classement tr *[name*=classement]").each(function() {
+ $("#classement tr *[name*=salaire]").each(function() {
recalculer_ligne($(this));
});
}
$('#id_valeur_point_min, #id_valeur_point_max').change(function(e) {
+ // pas de traitement si aucune valeur de point n'est choisie
+ if (this.value == '') return;
+
var vp_input = $(this);
var ligne = vp_input.parents("tr").parent(); // en fait on travaille sur tout le tableau dans ce cas!
('externe', 'Externe'),
)
-class Poste(Metadata):
+class Poste_(Metadata):
"""Un Poste est un emploi (job) à combler dans une implantation.
Un Poste peut être comblé par un Employe, auquel cas un Dossier est créé.
Si on veut recruter 2 jardiniers, 2 Postes distincts existent.
null=True, blank=True)
class Meta:
+ abstract = True
ordering = ['implantation__nom', 'nom']
def __unicode__(self):
return u'%s - %s [%s]' % (self.implantation, self.nom, self.id)
+class Poste(Poste_):
+ __doc__ = Poste_.__doc__
+
+
POSTE_FINANCEMENT_CHOICES = (
('A', 'A - Frais de personnel'),
('B', 'B - Projet(s)-Titre(s)'),
('aucun', 'Aucun'),
)
-class Dossier(Metadata):
+class Dossier_(Metadata):
"""Le Dossier regroupe les informations relatives à l'occupation
d'un Poste par un Employe. Un seul Dossier existe par Poste occupé
par un Employe.
# TODO?
class Meta:
+ abstract = True
ordering = ['poste__nom', 'employe__nom_affichage']
def __unicode__(self):
return u'%s - %s' % (self.poste.nom, self.employe)
+
+class Dossier(Dossier_):
+ __doc__ = Dossier_.__doc__
+
+
class DossierPiece(models.Model):
"""Documents relatifs au Dossier (à l'occupation de ce poste par employé).
Ex.: Lettre de motivation.
class Meta:
ordering = ['annee', 'implantation__nom']
-
+
+ def get_tauxchange_courant(self):
+ """
+ Recherche le taux courant associé à la valeur d'un point.
+ Tous les taux de l'année courante sont chargés, pour optimiser un
+ affichage en liste. (On pourrait probablement améliorer le manager pour
+ lui greffer le taux courant sous forme de JOIN)
+ """
+ for tauxchange in self.tauxchange:
+ if tauxchange.implantation_id == self.implantation_id:
+ return tauxchange
+ return None
+
def __unicode__(self):
tx = self.get_tauxchange_courant()
if tx:
'auf.django.workflow',
'project.rh_v1',
'project.dae',
+ 'project.budget',
)
TEMPLATE_CONTEXT_PROCESSORS = (
-{% load auf_menu %}
+{% load auf_menu dae %}
<ul class="menu">
<li class="{% menu_actif request '^$' %}">
<li class="{% menu_actif request '^dae$' %}">
<a href="{% url dae_index %}">DAE</a>
<ul>
+ {% if request.user|peut_ajouter %}
<li class="{% menu_actif request '^poste$' %}">
<a href="{% url poste %}">Poste : formulaire</a>
</li>
+ {% endif %}
<li class="{% menu_actif request '^postes$' %}">
<a href="{% url dae_postes_liste %}">Postes : voir et valider</a>
</li>
+ {% if request.user|peut_ajouter %}
<li class="{% menu_actif request '^embauche$' %}">
<a href="{% url embauche %}">Embauche : formulaire</a>
</li>
+ {% endif %}
<li class="{% menu_actif request '^embauches$' %}">
<a href="{% url dae_embauches_liste %}">Embauches : voir et valider</a>
</li>