From d766bf2cd7cb798e186bdb3f878da63226bc48a4 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Olivier=20Larchev=C3=AAque?= Date: Fri, 8 Apr 2011 09:40:09 -0400 Subject: [PATCH] ajout PJ au dossier (NON TESTE, ajax fait disparaitre mon form...) --- project/dae/forms.py | 1 + .../dae/migrations/0015_auto__add_dossierpiece.py | 381 ++++++++++++++++++++ project/dae/models.py | 10 +- project/dae/templates/dae/embauche-dossier.html | 6 + project/dae/templates/dae/pieces.html | 29 ++ project/dae/templates/dae/poste.html | 30 +- project/dae/views.py | 13 +- 7 files changed, 437 insertions(+), 33 deletions(-) create mode 100644 project/dae/migrations/0015_auto__add_dossierpiece.py create mode 100644 project/dae/templates/dae/pieces.html diff --git a/project/dae/forms.py b/project/dae/forms.py index 2883c6e..44233bd 100644 --- a/project/dae/forms.py +++ b/project/dae/forms.py @@ -9,6 +9,7 @@ from dae import models as dae from rh_v1 import models as rh PostePieceForm = inlineformset_factory(dae.Poste, dae.PostePiece) +DossierPieceForm = inlineformset_factory(dae.Dossier, dae.DossierPiece) class PosteForm(forms.ModelForm): """ Formulaire des postes. """ diff --git a/project/dae/migrations/0015_auto__add_dossierpiece.py b/project/dae/migrations/0015_auto__add_dossierpiece.py new file mode 100644 index 0000000..0b7e47a --- /dev/null +++ b/project/dae/migrations/0015_auto__add_dossierpiece.py @@ -0,0 +1,381 @@ +# 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 'DossierPiece' + db.create_table('dae_dossierpiece', ( + ('dossier', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['dae.Dossier'])), + ('nom', self.gf('django.db.models.fields.CharField')(max_length=255)), + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('fichier', self.gf('django.db.models.fields.files.FileField')(max_length=100)), + )) + db.send_create_signal('dae', ['DossierPiece']) + + + def backwards(self, orm): + + # Deleting model 'DossierPiece' + db.delete_table('dae_dossierpiece') + + + 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', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['rh_v1.Classement']"}), + 'classement_titulaire_anterieur': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", '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', [], {'blank': 'True', 'related_name': "'+'", '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', [], {'blank': 'True', 'related_name': "'+'", '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', [], {'blank': 'True', 'related_name': "'+'", '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.groupetyperemuneration': { + 'Meta': {'object_name': 'GroupeTypeRemuneration'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'ordre': ('django.db.models.fields.IntegerField', [], {}) + }, + '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', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['rh_v1.ValeurPoint']"}), + 'valeur_point_min': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", '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'}), + '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'}, + 'annulation': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), + 'date_annulation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'date_creation': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'date_desactivation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'date_effective': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'desactivation': ('django.db.models.fields.BooleanField', [], {'default': 'False', '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.IntegerField', [], {'primary_key': 'True'}), + 'montant': ('django.db.models.fields.DecimalField', [], {'max_digits': '12', 'decimal_places': '2'}), + 'pourcentage': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['dae.TypeRemuneration']", 'db_column': "'type'"}), + 'user_annulation': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'user_creation': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'user_desactivation': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'dae.typeremuneration': { + 'Meta': {'object_name': 'TypeRemuneration'}, + 'groupe': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['dae.GroupeTypeRemuneration']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'ordre': ('django.db.models.fields.IntegerField', [], {}) + }, + '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', [], {'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_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', [], {'unique': 'True', 'max_length': '10'}), + 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}), + 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}) + }, + 'rh_v1.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', [], {'unique': 'True', 'max_length': '25'}), + 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}), + 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'type_contrat_categorie': ('django.db.models.fields.CharField', [], {'max_length': '10'}) + }, + 'rh_v1.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.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 4808afd..65faf9e 100644 --- a/project/dae/models.py +++ b/project/dae/models.py @@ -23,13 +23,17 @@ POSTE_STATUT_CHOICES = ( ('DET', 'Détachement'), ) - +# Upload de fichiers storage_prive = FileSystemStorage(settings.PRIVE_MEDIA_ROOT, base_url=settings.PRIVE_MEDIA_URL) def poste_piece_dispatch(instance, filename): path = "poste/%s/%s" % (instance.poste.id, filename) return path +def dossier_piece_dispatch(instance, filename): + path = "dossier/%s/%s" % (instance.dossier.id, filename) + return path + class PostePiece(models.Model): poste = models.ForeignKey("Poste") @@ -267,6 +271,10 @@ COMPTE_COMPTA_CHOICES = ( ('aucun', 'Aucun'), ) +class DossierPiece(models.Model): + dossier = models.ForeignKey("Dossier") + nom = models.CharField(verbose_name="Nom", max_length=255) + fichier = models.FileField(verbose_name="Fichier", upload_to=dossier_piece_dispatch, storage=storage_prive) class Dossier(models.Model): diff --git a/project/dae/templates/dae/embauche-dossier.html b/project/dae/templates/dae/embauche-dossier.html index 99ea073..6ece18f 100644 --- a/project/dae/templates/dae/embauche-dossier.html +++ b/project/dae/templates/dae/embauche-dossier.html @@ -237,4 +237,10 @@ + +
+

Pièces jointes

+

CV, lettre de motivation...

+ {% include "dae/pieces.html" %} +
diff --git a/project/dae/templates/dae/pieces.html b/project/dae/templates/dae/pieces.html new file mode 100644 index 0000000..599cf67 --- /dev/null +++ b/project/dae/templates/dae/pieces.html @@ -0,0 +1,29 @@ + + {% for f in piecesForm.management_form %} + {{ f }} + {% endfor %} + + + {% for field in piecesForm.forms.0 %} + {% if not field.is_hidden %} + + {% endif %} + {% endfor %} + + {% for f in piecesForm.forms %} + + + {% for field in f %} + {% if not field.is_hidden %} + + {% else %} + {{ field }} + {% endif %} + {% endfor %} + + {% endfor %} +
{{ field.label }}
+ {% if f.initial.fichier %} + Télécharger + {% endif %} + {{ field }}
diff --git a/project/dae/templates/dae/poste.html b/project/dae/templates/dae/poste.html index 4ce5d00..c5b5e23 100644 --- a/project/dae/templates/dae/poste.html +++ b/project/dae/templates/dae/poste.html @@ -285,35 +285,7 @@ Demande d'autorisation d'embauche

Pièces jointes

Compléter uniquement lors de la création d'un poste

- - {% for f in piecesForm.management_form %} - {{ f }} - {% endfor %} - - - {% for field in piecesForm.forms.0 %} - {% if not field.is_hidden %} - - {% endif %} - {% endfor %} - - {% for f in piecesForm.forms %} - - - {% for field in f %} - {% if not field.is_hidden %} - - {% else %} - {{ field }} - {% endif %} - {% endfor %} - - {% endfor %} -
{{ field.label }}
- {% if f.initial.fichier %} - Télécharger - {% endif %} - {{ field }}
+ {% include "dae/pieces.html" %}
diff --git a/project/dae/views.py b/project/dae/views.py index 6b2d67a..1fe65fd 100644 --- a/project/dae/views.py +++ b/project/dae/views.py @@ -8,7 +8,8 @@ from django.shortcuts import redirect, render_to_response, get_object_or_404 from django.template import RequestContext from project.dae.forms import (ChoosePosteForm, DossierForm, EmployeForm, - PosteForm, PosteFinancementForm, PostePieceForm) + PosteForm, PosteFinancementForm, PostePieceForm, + DossierPieceForm) from project.dae import models as dae from project.rh_v1 import models as rh @@ -158,12 +159,16 @@ def embauche(request, key=None, dossier=None): else: dossier = get_object_or_404(dae.Dossier, pk=dossier) dossier_form = DossierForm(request.POST, instance=dossier) + piecesForm = DossierPieceForm(request.POST, request.FILES, instance=dossier) + if dossier_form.is_valid(): dossier = dossier_form.save() + piecesForm.save() return redirect('embauche', key='dae-%s' % poste.id, dossier=dossier.id) else: dossier_form = DossierForm(instance=dossier) + piecesForm = DossierPieceForm(instance=dossier) else: # Initialisation d'un formulaire vide dossier_rh = rh.Dossier() @@ -176,10 +181,12 @@ def embauche(request, key=None, dossier=None): else: dossier = pre_filled_dossier(dossier_rh, 'new', poste_rh) employe_form = EmployeForm() + dossier_form = DossierForm(instance=dossier) + piecesForm = DossierPieceForm(instance=dossier) - vars = dict(step='employe', poste=poste, dossier=dossier, - forms=dict(employe=employe_form, dossier=dossier_form)) + vars = dict(step='employe', poste=poste, dossier=dossier, piecesForm=piecesForm, + forms=dict(employe=employe_form, dossier=dossier_form, )) return render_to_response('dae/embauche.html', vars, RequestContext(request)) -- 1.7.10.4