justification embauche
authorOlivier Larchevêque <olivier.larcheveque@auf.org>
Fri, 15 Apr 2011 16:36:21 +0000 (12:36 -0400)
committerOlivier Larchevêque <olivier.larcheveque@auf.org>
Fri, 15 Apr 2011 16:36:21 +0000 (12:36 -0400)
project/dae/admin.py
project/dae/forms.py
project/dae/migrations/0025_auto__del_documentemploye__del_documentposte__del_justificationemploye.py [new file with mode: 0644]
project/dae/models.py
project/dae/templates/dae/embauche-dossier.html
project/dae/templates/dae/embauche.html
project/dae/templates/dae/justifications.html [new file with mode: 0644]
project/dae/views.py
project/media/js/dae-embauche.js
project/media/js/dae-poste.js
project/media/js/dae.js

index 8cd001b..8b252a2 100644 (file)
@@ -2,12 +2,16 @@
 
 from django.contrib import admin
 from reversion.admin import VersionAdmin
-from models import Poste
+from models import Poste, JustificationQuestion
 
 class PosteAdmin(VersionAdmin):
     pass
 
+class JustificationQuestionAdmin(admin.ModelAdmin):
+    pass
+
 admin.site.register(Poste, PosteAdmin)
+admin.site.register(JustificationQuestion, JustificationQuestionAdmin)
 
 
 
index 9c7bb2f..69f10e4 100644 (file)
@@ -19,6 +19,49 @@ class DossierPieceForm(inlineformset_factory(dae.Dossier, dae.DossierPiece)):
 class FinancementForm(inlineformset_factory(dae.Poste, dae.PosteFinancement, extra=1)):
     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 = [q.id for q in instance.justificationnouvelemploye_set.all()]
+            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 = [q.id for q in instance.justificationautreemploye_set.all()]
+            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 PosteValidationForm(forms.ModelForm):
     """ Validation d'un poste"""
diff --git a/project/dae/migrations/0025_auto__del_documentemploye__del_documentposte__del_justificationemploye.py b/project/dae/migrations/0025_auto__del_documentemploye__del_documentposte__del_justificationemploye.py
new file mode 100644 (file)
index 0000000..6b5bfbc
--- /dev/null
@@ -0,0 +1,435 @@
+# 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 'DocumentEmploye'
+        db.delete_table('dae_documentemploye')
+
+        # Deleting model 'DocumentPoste'
+        db.delete_table('dae_documentposte')
+
+        # Deleting model 'JustificationEmploye'
+        db.delete_table('dae_justificationemploye')
+
+        # Adding model 'JustificationQuestion'
+        db.create_table('dae_justificationquestion', (
+            ('type', self.gf('django.db.models.fields.CharField')(max_length=255)),
+            ('question', 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'])
+    
+    
+    def backwards(self, orm):
+        
+        # Adding model 'DocumentEmploye'
+        db.create_table('dae_documentemploye', (
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+        ))
+        db.send_create_signal('dae', ['DocumentEmploye'])
+
+        # Adding model 'DocumentPoste'
+        db.create_table('dae_documentposte', (
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+        ))
+        db.send_create_signal('dae', ['DocumentPoste'])
+
+        # Adding model 'JustificationEmploye'
+        db.create_table('dae_justificationemploye', (
+            ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+        ))
+        db.send_create_signal('dae', ['JustificationEmploye'])
+
+        # Deleting model 'JustificationQuestion'
+        db.delete_table('dae_justificationquestion')
+
+        # Deleting model 'JustificationNouvelEmploye'
+        db.delete_table('dae_justificationnouvelemploye')
+
+        # Deleting model 'JustificationAutreEmploye'
+        db.delete_table('dae_justificationautreemploye')
+    
+    
+    models = {
+        'dae.dossier': {
+            'Meta': {'object_name': 'Dossier'},
+            'classement': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", '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']"}),
+            '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', [], {'max_digits': '12', 'decimal_places': '2'}),
+            'regime_travail_nb_heure_semaine': ('django.db.models.fields.DecimalField', [], {'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.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', 'null': 'True', '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.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': "'+'", 'to': "orm['rh_v1.Classement']"}),
+            'classement_min': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['rh_v1.Classement']"}),
+            'coefficient_max': ('django.db.models.fields.FloatField', [], {'null': 'True'}),
+            'coefficient_min': ('django.db.models.fields.FloatField', [], {'null': 'True'}),
+            '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'}),
+            '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', [], {}),
+            'mise_a_disposition': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}),
+            'regime_travail': ('django.db.models.fields.DecimalField', [], {'default': '100', 'max_digits': '12', 'decimal_places': '2'}),
+            'regime_travail_nb_heure_semaine': ('django.db.models.fields.DecimalField', [], {'default': '40', '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']"}),
+            'statut_residence': ('django.db.models.fields.CharField', [], {'default': "'local'", 'max_length': '10'}),
+            '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']"}),
+            'validation_bureau_regional': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'validation_bureau_regional_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'validation_drh': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'validation_drh_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'validation_recteur': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'validation_recteur_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+            'validation_secretaire_general': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}),
+            'validation_secretaire_general_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'})
+        },
+        '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'})
+        },
+        'dae.validation': {
+            'Meta': {'object_name': 'Validation'},
+            'date': ('django.db.models.fields.DateField', [], {}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
+        },
+        'dae.validationemploye': {
+            'Meta': {'object_name': 'ValidationEmploye'},
+            'employe': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['dae.Employe']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
+        },
+        'dae.validationposte': {
+            'Meta': {'object_name': 'ValidationPoste'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'poste': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['dae.Poste']"})
+        },
+        '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', [], {'to': "orm['datamaster_modeles.Implantation']", 'db_column': "'implantation'"}),
+            'valeur': ('django.db.models.fields.FloatField', [], {})
+        }
+    }
+    
+    complete_apps = ['dae']
index d235325..17e963d 100644 (file)
@@ -413,16 +413,27 @@ class Remuneration(models.Model):
         return round(self.montant_euro() / 12, 2)
 
 
-class JustificationEmploye(models.Model):
-    pass
-
+TYPE_JUSTIFICATIONS = (
+    ('N', 'Nouvel employé'),
+    ('R', 'Renouvellement employé'),
+)
 
-class DocumentPoste(models.Model):
-    pass
+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 DocumentEmploye(models.Model):
-    pass
+class JustificationAutreEmploye(models.Model):
+    dossier = models.ForeignKey("Dossier")
+    question = models.ForeignKey("JustificationQuestion")
+    reponse = models.TextField()
 
 
 class Validation(models.Model):
index b2f90f0..9723eab 100644 (file)
     </tr>
     <tr>
         <td colspan="4" class="info">
-            <p>Pour une durée indéterminée, spécifier uniquement la date de début.</p>
+            <p id="note-duree">Pour une durée indéterminée, spécifier uniquement la date de début.</p>
         </td>
         <th>
             {{ form.regime_travail_nb_heure_semaine.label_tag }} :<br />
index 62eb4b9..4253e88 100644 (file)
@@ -43,6 +43,7 @@
     .gauche { float:left; }
     .droite { float:right; text-align:right; }
     .clear { clear:both; width:100%; }
+    th ul.errorlist {float: right;}
   </style>
 {% endblock %}
 
 
       <div id="form-dossier">
         {% comment %}Wrapper du formulaire de dossier{% endcomment %}
+        {% with forms.dossier as form %}
+            {% include "dae/embauche-dossier.html" %}
+        {% endwith %}
       </div>
 
       <fieldset>
       </fieldset>
 
       <h2 class="section">SECTION 4 - JUSTIFICATION DE LA DEMANDE (OBLIGATOIRE)</h2>
-
+      <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>
+      </tr>
+      <tr>
+        <td> 
+        {% with justificationsNouveauForm as form %}
+          {% include "dae/justifications.html" %}
+        {% endwith %}
+        </td>
+        <td>
+        {% with justificationsAutreForm as form %}
+          {% include "dae/justifications.html" %}
+        {% endwith %}
+        </td>
+      </tr>
+      </table>
       <input type="submit" name="save" value="Sauvegarder" />
     </form>
   {% endif %}
diff --git a/project/dae/templates/dae/justifications.html b/project/dae/templates/dae/justifications.html
new file mode 100644 (file)
index 0000000..f8d4baa
--- /dev/null
@@ -0,0 +1,13 @@
+{% for f in form.management_form %}
+    {{ f }}
+{% endfor %}
+{% for f in form.forms %}
+<table>
+<tr>
+    <th>{{ f.instance.question }} {{ f.reponse.errors }}</th>
+</tr>
+<tr>
+    <td>{{ f.reponse }} {% for field in f %}{% if field.is_hidden %}{{ field }}{% endif %}{% endfor %}</td>
+</tr>
+</table>
+{% endfor %}
index 3f92f0d..4ad6b3f 100644 (file)
@@ -159,11 +159,17 @@ def embauche(request, key=None, dossier=None):
                     dossier = get_object_or_404(dae.Dossier, pk=dossier)
                 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)
 
-                if dossier_form.is_valid() and piecesForm.is_valid():
+                if dossier_form.is_valid() and piecesForm.is_valid() and justificationsNouveauForm.is_valid() and justificationsAutreForm.is_valid():
                     dossier = dossier_form.save()
                     piecesForm.instance = dossier
                     piecesForm.save()
+                    justificationsNouveauForm.instance = dossier
+                    justificationsNouveauForm.save()
+                    justificationsAutreForm.instance = dossier
+                    justificationsAutreForm.save()
                     if not dossier.remuneration_set.all():
                         # Pré-peuplement des entrées de la section "coût
                         # global", à l'exclusion de "Indemnité de fonction"
@@ -198,6 +204,8 @@ def embauche(request, key=None, dossier=None):
             else:
                 dossier_form = DossierForm(instance=dossier)
                 piecesForm = DossierPieceForm(instance=dossier)
+                justificationsNouveauForm = JustificationNouvelEmployeForm(instance=dossier)
+                justificationsAutreForm = JustificationAutreEmployeForm(instance=dossier)
         else:
             # Initialisation d'un formulaire vide
             dossier_rh = rh.Dossier()
@@ -213,9 +221,17 @@ def embauche(request, key=None, dossier=None):
 
             dossier_form = DossierForm(instance=dossier)
             piecesForm = DossierPieceForm(instance=dossier)
-
-        vars = dict(step='employe', poste=poste, dossier=dossier, piecesForm=piecesForm,
-                    forms=dict(employe=employe_form, dossier=dossier_form, ))
+            justificationsNouveauForm = JustificationNouvelEmployeForm(instance=dossier)
+            justificationsAutreForm = JustificationAutreEmployeForm(instance=dossier)
+
+        vars = dict(step='employe',
+                poste=poste,
+                dossier=dossier,
+                piecesForm=piecesForm,
+                justificationsNouveauForm=justificationsNouveauForm,
+                justificationsAutreForm=justificationsAutreForm,
+                forms=dict(employe=employe_form, dossier=dossier_form, )
+                )
 
     return render_to_response('dae/embauche.html', vars,
                               RequestContext(request))
index 41b6473..e1706a9 100644 (file)
@@ -70,6 +70,7 @@ function loadEmploye() {
         .load(dossierUrl, function() {
                 datepicker();
                 activateDossierDropDowns();
+                $("#id_contrat_date_debut, #id_contrat_date_fin").focusout(function() {contrat_mois();});
             });
 }
 
@@ -83,7 +84,13 @@ $(document).ready(function() {
 
     /* on lance le JS au chargement de la page, la toute première fois,
     puis on cable le change au select pour le rechargement. */
-    loadEmploye();
+    //loadEmploye();
     activateEmployeDropDown();
 
+    /* calcul de la différence en mois */
+    $("#id_contrat_date_debut, #id_contrat_date_fin").focusout(function() {
+        contrat_mois();
+    });
+    contrat_mois();
+
 });
index f8c9fdb..ade88ea 100644 (file)
@@ -76,25 +76,6 @@ function recalculer_tout() {
     });
 }
 
-/* stocker le texte par défaut à afficher */
-var note_duree_indeterminee = "";
-
-function contrat_mois() {
-  if (note_duree_indeterminee == "")
-    note_duree_indeterminee = $("#note-duree").html();
-  var debut = $("#id_date_debut").val();
-  var fin = $("#id_date_fin").val();
-  if (debut == "" || fin == "")
-      note = note_duree_indeterminee;
-  else {
-      var d1 = new Date(debut);
-      var d2 = new Date(fin);
-      var duree = Math.round((d2-d1) / (1000*60*60*24) / (365/12));
-      note = duree + " mois";
-  }
-  $("#note-duree").html(note);
-}
-
 $(document).ready(function() {
 
     /* La fonctionnalité de présélection, est activé uniquement si aucune implantation n'a déjà été
index 7504ecf..fe007fa 100644 (file)
@@ -7,3 +7,23 @@ function clean_float(value){
         output = Math.round(output*100)/100;
     return output;
 }
+
+/* stocker le texte par défaut à afficher */
+var note_duree_indeterminee = "";
+
+function contrat_mois() {
+  if (note_duree_indeterminee == "")
+    note_duree_indeterminee = $("#note-duree").html();
+  var debut = $("#id_date_debut, #id_contrat_date_debut").val();
+  var fin = $("#id_date_fin, #id_contrat_date_fin").val();
+  if (debut == "" || fin == "")
+      note = note_duree_indeterminee;
+  else {
+      var d1 = new Date(debut);
+      var d2 = new Date(fin);
+      var duree = Math.round((d2-d1) / (1000*60*60*24) / (365/12));
+      note = duree + " mois";
+  }
+  $("#note-duree").html(note);
+}
+