From a05cc82d545eb4add9d1f2097779d30fc2b5bc12 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Olivier=20Larchev=C3=AAque?= Date: Fri, 8 Apr 2011 12:53:42 -0400 Subject: [PATCH] validation form --- project/dae/forms.py | 11 + ...d_postepiece__add_field_poste_validation_rec.py | 414 ++++++++++++++++++++ project/dae/models.py | 10 + project/dae/templates/dae/postes_liste.html | 53 ++- project/dae/views.py | 17 +- 5 files changed, 492 insertions(+), 13 deletions(-) create mode 100644 project/dae/migrations/0017_auto__add_dossierpiece__add_postepiece__add_field_poste_validation_rec.py diff --git a/project/dae/forms.py b/project/dae/forms.py index 44233bd..f02f4c6 100644 --- a/project/dae/forms.py +++ b/project/dae/forms.py @@ -11,6 +11,17 @@ from rh_v1 import models as rh PostePieceForm = inlineformset_factory(dae.Poste, dae.PostePiece) DossierPieceForm = inlineformset_factory(dae.Dossier, dae.DossierPiece) +class PosteValidationForm(forms.ModelForm): + """ Validation d'un poste""" + class Meta: + model = dae.Poste + fields = ( + 'validation_bureau_regional', + 'validation_drh', + 'validation_secretaire_general', + 'validation_recteur', + ) + class PosteForm(forms.ModelForm): """ Formulaire des postes. """ class Meta: diff --git a/project/dae/migrations/0017_auto__add_dossierpiece__add_postepiece__add_field_poste_validation_rec.py b/project/dae/migrations/0017_auto__add_dossierpiece__add_postepiece__add_field_poste_validation_rec.py new file mode 100644 index 0000000..4767a3e --- /dev/null +++ b/project/dae/migrations/0017_auto__add_dossierpiece__add_postepiece__add_field_poste_validation_rec.py @@ -0,0 +1,414 @@ +# encoding: utf-8 +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + +class Migration(SchemaMigration): + + def forwards(self, orm): + + # Adding field 'Poste.validation_recteur' + db.add_column('dae_poste', 'validation_recteur', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False) + + # Adding field 'Poste.validation_drh_date' + db.add_column('dae_poste', 'validation_drh_date', self.gf('django.db.models.fields.DateField')(null=True, blank=True), keep_default=False) + + # Adding field 'Poste.validation_drh' + db.add_column('dae_poste', 'validation_drh', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False) + + # Adding field 'Poste.validation_bureau_regional' + db.add_column('dae_poste', 'validation_bureau_regional', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False) + + # Adding field 'Poste.validation_secretaire_general' + db.add_column('dae_poste', 'validation_secretaire_general', self.gf('django.db.models.fields.BooleanField')(default=False, blank=True), keep_default=False) + + # Adding field 'Poste.validation_bureau_regional_date' + db.add_column('dae_poste', 'validation_bureau_regional_date', self.gf('django.db.models.fields.DateField')(null=True, blank=True), keep_default=False) + + # Adding field 'Poste.validation_secretaire_general_date' + db.add_column('dae_poste', 'validation_secretaire_general_date', self.gf('django.db.models.fields.DateField')(null=True, blank=True), keep_default=False) + + # Adding field 'Poste.validation_recteur_date' + db.add_column('dae_poste', 'validation_recteur_date', self.gf('django.db.models.fields.DateField')(null=True, blank=True), keep_default=False) + + + def backwards(self, orm): + + # Deleting field 'Poste.validation_recteur' + db.delete_column('dae_poste', 'validation_recteur') + + # Deleting field 'Poste.validation_drh_date' + db.delete_column('dae_poste', 'validation_drh_date') + + # Deleting field 'Poste.validation_drh' + db.delete_column('dae_poste', 'validation_drh') + + # Deleting field 'Poste.validation_bureau_regional' + db.delete_column('dae_poste', 'validation_bureau_regional') + + # Deleting field 'Poste.validation_secretaire_general' + db.delete_column('dae_poste', 'validation_secretaire_general') + + # Deleting field 'Poste.validation_bureau_regional_date' + db.delete_column('dae_poste', 'validation_bureau_regional_date') + + # Deleting field 'Poste.validation_secretaire_general_date' + db.delete_column('dae_poste', 'validation_secretaire_general_date') + + # Deleting field 'Poste.validation_recteur_date' + db.delete_column('dae_poste', 'validation_recteur_date') + + + models = { + 'dae.documentemploye': { + 'Meta': {'object_name': 'DocumentEmploye'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + 'dae.documentposte': { + 'Meta': {'object_name': 'DocumentPoste'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + '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', [], {'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', [], {}), + 'devise': ('django.db.models.fields.related.ForeignKey', [], {'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': "'+'", 'to': "orm['rh_v1.OrganismeBstg']"}), + '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', [], {'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.justificationemploye': { + 'Meta': {'object_name': 'JustificationEmploye'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + 'dae.justificationposte': { + 'Meta': {'object_name': 'JustificationPoste'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + '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']"}), + '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'}), + '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': "'MAD'", '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'}), + 'montant': ('django.db.models.fields.DecimalField', [], {'max_digits': '12', 'decimal_places': '2'}), + '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'] diff --git a/project/dae/models.py b/project/dae/models.py index 5d6c0cb..a720bae 100644 --- a/project/dae/models.py +++ b/project/dae/models.py @@ -138,6 +138,16 @@ class Poste(models.Model): comp_autre_max = models.DecimalField(max_digits=12, decimal_places=2, null=True, blank=True) + # Validations + validation_bureau_regional = models.BooleanField(verbose_name="Validation bureau régional") + validation_bureau_regional_date = models.DateField(blank=True, null=True) + validation_drh = models.BooleanField(verbose_name="Validation DRH") + validation_drh_date = models.DateField(blank=True, null=True) + validation_secretaire_general = models.BooleanField(verbose_name="Validation secrétaire général") + validation_secretaire_general_date = models.DateField(blank=True, null=True) + validation_recteur = models.BooleanField(verbose_name="Validation recteur") + validation_recteur_date = models.DateField(blank=True, null=True) + # Méta date_creation = models.DateTimeField(auto_now_add=True) date_modification = models.DateTimeField(auto_now=True) diff --git a/project/dae/templates/dae/postes_liste.html b/project/dae/templates/dae/postes_liste.html index 5e6acf8..6617829 100644 --- a/project/dae/templates/dae/postes_liste.html +++ b/project/dae/templates/dae/postes_liste.html @@ -7,29 +7,60 @@ {% block main %}

Liste des demandes d'autorisation de création de poste

+
- - - - - + + + + -{% for poste, premiere_revision in postes %} +{% for poste, premiere_revision, validationForm in postes %} - - - - - + + + + + {% endfor %}
Poste Soumis le Soumis parValid. rég.Valid. RHValid. SGValid. RecteurDécision finaleValidation bureau régionalValidation DRHValidation secrétaire généralValidation recteur
{{ poste }} {{ premiere_revision.date_created|date:"Y-m-d" }} {{ premiere_revision.user }} + {% if poste.validation_bureau_regional %} + + {{ validationForm.validation_bureau_regional.as_hidden }} + {% else %} + {{ validationForm.validation_bureau_regional }} + {% endif %} + + {% if poste.validation_drh %} + + {{ validationForm.validation_drh.as_hidden }} + {% else %} + {{ validationForm.validation_drh }} + {% endif %} + + {% if poste.validation_secretaire_general %} + + {{ validationForm.validation_secretaire_general.as_hidden }} + {% else %} + {{ validationForm.validation_secretaire_general }} + {% endif %} + + {% if poste.validation_recteur %} + + {{ validationForm.validation_recteur.as_hidden }} + {% else %} + {{ validationForm.validation_recteur }} + {% endif %} +
+ + +
{% endblock %} diff --git a/project/dae/views.py b/project/dae/views.py index 07f5744..605594a 100644 --- a/project/dae/views.py +++ b/project/dae/views.py @@ -4,6 +4,7 @@ from datetime import date from simplejson import dumps import warnings +from django.core.urlresolvers import reverse from django.http import Http404, HttpResponse from django.shortcuts import redirect, render_to_response, get_object_or_404 from django.template import RequestContext @@ -17,7 +18,7 @@ from project.dae import models as dae from project.rh_v1 import models as rh from project.decorators import admin_required - +from forms import PosteValidationForm def index(request): return render_to_response('dae/index.html', {}, RequestContext(request)) @@ -72,9 +73,21 @@ def postes_liste(request): """ Liste des postes. """ vars = dict() vars['postes'] = [] + for p in dae.Poste.objects.all().order_by('-date_creation'): premiere_revision = Version.objects.get_for_object(p)[0].revision - vars['postes'].append((p, premiere_revision)) + if request.POST: + validationForm = PosteValidationForm(request.POST, instance=p, prefix=p.id) + if validationForm.is_valid(): + p = validationForm.save() + else: + validationForm = PosteValidationForm(instance=p, prefix=p.id) + + vars['postes'].append((p, premiere_revision, validationForm)) + + if request.POST: + return redirect(reverse('dae_postes_liste')) + return render_to_response('dae/postes_liste.html', vars, RequestContext(request)) -- 1.7.10.4