From c3f0b49faa05efa1026558f25d21884060717251 Mon Sep 17 00:00:00 2001 From: Eric Mc Sween Date: Thu, 8 Dec 2011 11:41:35 -0500 Subject: [PATCH] =?utf8?q?[#2393]=20DAE=20num=C3=A9ris=C3=A9e?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- buildout.cfg | 3 + project/dae/forms.py | 5 + .../0056_auto__add_field_dossier_dae_numerisee.py | 431 ++++++++++++++++++++ project/dae/models.py | 5 +- project/dae/permissions.py | 17 + .../dae/templates/dae/dae_numerisee_modifier.html | 17 + .../dae/templates/dae/dae_numerisee_supprimer.html | 16 + project/dae/templates/dae/embauche_consulter.html | 23 +- project/dae/urls.py | 7 + project/dae/views.py | 30 ++ project/settings.py | 2 + project/urls.py | 3 + 12 files changed, 555 insertions(+), 4 deletions(-) create mode 100644 project/dae/migrations/0056_auto__add_field_dossier_dae_numerisee.py create mode 100644 project/dae/permissions.py create mode 100644 project/dae/templates/dae/dae_numerisee_modifier.html create mode 100644 project/dae/templates/dae/dae_numerisee_supprimer.html diff --git a/buildout.cfg b/buildout.cfg index e79f25e..8b18435 100644 --- a/buildout.cfg +++ b/buildout.cfg @@ -9,6 +9,7 @@ find-links = http://pypi.auf.org/simple/auf.recipe.django/ http://pypi.auf.org/simple/auf.django.auth/ http://pypi.auf.org/simple/auf.django.workflow/ http://pypi.auf.org/simple/auf.django.admingroup/ + http://pypi.auf.org/simple/auf.django.permissions/ eggs = django @@ -19,6 +20,7 @@ eggs = auf.django.admingroup datamaster_modeles auf.django.auth + auf.django.permissions django-reversion simplejson django-ajax-selects @@ -34,6 +36,7 @@ django-reversion = 1.3.3 auf.django.workflow = 0.14dev django-ajax-selects = 1.1.4 django-sendfile = 0.2.1 +auf.django.permissions = 0.1 [django] recipe = auf.recipe.django diff --git a/project/dae/forms.py b/project/dae/forms.py index 9ab8474..0238380 100644 --- a/project/dae/forms.py +++ b/project/dae/forms.py @@ -344,3 +344,8 @@ class ContratForm(forms.ModelForm): fields = ('type', 'fichier') model = dae.Contrat +class DAENumeriseeForm(forms.ModelForm): + + class Meta: + model = dae.Dossier + fields = ('dae_numerisee',) diff --git a/project/dae/migrations/0056_auto__add_field_dossier_dae_numerisee.py b/project/dae/migrations/0056_auto__add_field_dossier_dae_numerisee.py new file mode 100644 index 0000000..cdf7a22 --- /dev/null +++ b/project/dae/migrations/0056_auto__add_field_dossier_dae_numerisee.py @@ -0,0 +1,431 @@ +# 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 'Dossier.dae_numerisee' + db.add_column('dae_dossier', 'dae_numerisee', self.gf('django.db.models.fields.files.FileField')(max_length=100, null=True, blank=True), keep_default=False) + + + def backwards(self, orm): + + # Deleting field 'Dossier.dae_numerisee' + db.delete_column('dae_dossier', 'dae_numerisee') + + + models = { + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'dae.contrat': { + 'Meta': {'object_name': 'Contrat'}, + 'dossier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'contrats'", 'to': "orm['dae.Dossier']"}), + 'fichier': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['rh_v1.TypeContrat']"}) + }, + 'dae.dossier': { + 'Meta': {'object_name': 'Dossier'}, + 'classement': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', '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', [], {'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'}), + 'dae_numerisee': ('django.db.models.fields.files.FileField', [], {'max_length': '100', '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']"}), + 'devise_anterieur': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['rh_v1.Devise']"}), + 'devise_titulaire_anterieur': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', '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']"}), + 'etat': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '20', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'justif_nouveau_commentaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'justif_nouveau_salaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'justif_nouveau_statut': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'justif_nouveau_tmp_remplacement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'justif_rempl_commentaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'justif_rempl_evaluation': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'justif_rempl_salaire': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'justif_rempl_statut_employe': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'justif_rempl_type_contrat': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'organisme_bstg': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", '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': "'dossiers'", 'to': "orm['dae.Poste']"}), + 'regime_travail': ('django.db.models.fields.DecimalField', [], {'default': '100.0', 'max_digits': '12', 'decimal_places': '2'}), + 'regime_travail_nb_heure_semaine': ('django.db.models.fields.DecimalField', [], {'default': '35.0', 'max_digits': '12', 'decimal_places': '2'}), + 'remplacement': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), + 'salaire': ('django.db.models.fields.DecimalField', [], {'default': 'None', 'null': 'True', 'max_digits': '12', 'decimal_places': '2'}), + 'salaire_anterieur': ('django.db.models.fields.DecimalField', [], {'default': 'None', 'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}), + 'salaire_titulaire_anterieur': ('django.db.models.fields.DecimalField', [], {'default': 'None', 'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}), + 'statut': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['rh_v1.Statut']"}), + 'statut_anterieur': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", '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', [], {'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']"}), + 'type_contrat_anterieur': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['rh_v1.TypeContrat']"}) + }, + 'dae.dossiercomparaison': { + 'Meta': {'object_name': 'DossierComparaison'}, + 'classement': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['rh_v1.Classement']"}), + 'devise': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'null': 'True', 'blank': 'True', 'to': "orm['rh_v1.Devise']"}), + 'dossier': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comparaisons'", 'to': "orm['dae.Dossier']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'implantation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Implantation']", 'null': 'True', 'blank': 'True'}), + 'montant': ('django.db.models.fields.IntegerField', [], {'null': 'True'}), + 'personne': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'poste': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'statut': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['rh_v1.Statut']"}) + }, + 'dae.dossierpiece': { + 'Meta': {'object_name': 'DossierPiece'}, + 'dossier': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['dae.Dossier']"}), + 'fichier': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}) + }, + 'dae.employe': { + 'Meta': {'object_name': 'Employe'}, + 'genre': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'id_rh': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'to': "orm['rh_v1.Employe']"}), + 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'prenom': ('django.db.models.fields.CharField', [], {'max_length': '255'}) + }, + 'dae.poste': { + 'Meta': {'object_name': 'Poste'}, + 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), + 'appel': ('django.db.models.fields.CharField', [], {'default': "'interne'", 'max_length': '10'}), + 'autre_max': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}), + 'autre_min': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}), + 'charges_patronales_max': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}), + 'charges_patronales_min': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}), + 'classement_max': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['rh_v1.Classement']"}), + 'classement_min': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['rh_v1.Classement']"}), + 'comp_autre_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}), + 'comp_autre_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}), + 'comp_fonctionpub_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}), + 'comp_fonctionpub_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}), + 'comp_locale_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}), + 'comp_locale_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}), + 'comp_ong_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}), + 'comp_ong_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}), + 'comp_universite_max': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}), + 'comp_universite_min': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2', 'blank': 'True'}), + 'date_creation': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'date_debut': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'date_fin': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'date_modification': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), + 'devise_comparaison': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'to': "orm['rh_v1.Devise']"}), + 'devise_max': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'to': "orm['rh_v1.Devise']"}), + 'devise_min': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'to': "orm['rh_v1.Devise']"}), + 'etat': ('django.db.models.fields.CharField', [], {'default': 'None', 'max_length': '20', 'null': 'True', 'blank': 'True'}), + 'expatrie': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'id_rh': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'to': "orm['rh_v1.Poste']"}), + 'implantation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Implantation']"}), + 'indemn_expat_max': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}), + 'indemn_expat_min': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}), + 'indemn_fct_max': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}), + 'indemn_fct_min': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}), + 'justification': ('django.db.models.fields.TextField', [], {}), + 'local': ('django.db.models.fields.BooleanField', [], {'default': 'True', 'blank': 'True'}), + 'mise_a_disposition': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), + 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'regime_travail': ('django.db.models.fields.DecimalField', [], {'default': '100.0', 'max_digits': '12', 'decimal_places': '2'}), + 'regime_travail_nb_heure_semaine': ('django.db.models.fields.DecimalField', [], {'default': '35.0', 'max_digits': '12', 'decimal_places': '2'}), + 'responsable': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['rh_v1.Poste']"}), + 'salaire_max': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}), + 'salaire_min': ('django.db.models.fields.DecimalField', [], {'default': '0', 'max_digits': '12', 'decimal_places': '2'}), + 'service': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['rh_v1.Service']"}), + 'type_intervention': ('django.db.models.fields.CharField', [], {'default': "'N'", 'max_length': '1'}), + 'type_poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'null': 'True', 'to': "orm['rh_v1.TypePoste']"}), + 'valeur_point_max': ('django.db.models.fields.related.ForeignKey', [], {'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.postecomparaison': { + 'Meta': {'object_name': 'PosteComparaison'}, + 'classement': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['rh_v1.Classement']"}), + 'devise': ('django.db.models.fields.related.ForeignKey', [], {'default': '5', 'related_name': "'+'", 'null': 'True', 'blank': 'True', 'to': "orm['rh_v1.Devise']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'implantation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['datamaster_modeles.Implantation']", 'null': 'True', 'blank': 'True'}), + 'montant': ('django.db.models.fields.IntegerField', [], {'null': 'True'}), + 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'comparaisons_internes'", 'to': "orm['dae.Poste']"}), + 'statut': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['rh_v1.Statut']"}) + }, + 'dae.postefinancement': { + 'Meta': {'object_name': 'PosteFinancement'}, + 'commentaire': ('django.db.models.fields.TextField', [], {}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'poste': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'financements'", 'to': "orm['dae.Poste']"}), + 'pourcentage': ('django.db.models.fields.DecimalField', [], {'max_digits': '12', 'decimal_places': '2'}), + 'type': ('django.db.models.fields.CharField', [], {'max_length': '1'}) + }, + 'dae.postepiece': { + 'Meta': {'object_name': 'PostePiece'}, + 'fichier': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'poste': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['dae.Poste']"}) + }, + 'dae.remuneration': { + 'Meta': {'object_name': 'Remuneration'}, + 'date_creation': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'devise': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to_field': "'code'", 'db_column': "'devise'", 'to': "orm['rh_v1.Devise']"}), + 'dossier': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['dae.Dossier']", 'db_column': "'dossier'"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'montant': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '12', 'decimal_places': '2'}), + 'precision': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'db_column': "'type'", 'to': "orm['rh_v1.TypeRemuneration']"}), + 'user_creation': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'datamaster_modeles.bureau': { + 'Meta': {'object_name': 'Bureau', 'db_table': "u'ref_bureau'"}, + 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), + 'code': ('django.db.models.fields.CharField', [], {'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.typeremuneration': { + 'Meta': {'object_name': 'TypeRemuneration'}, + 'actif': ('django.db.models.fields.BooleanField', [], {'default': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}), + 'nature_remuneration': ('django.db.models.fields.CharField', [], {'max_length': '30'}), + 'nom': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + 'type_paiement': ('django.db.models.fields.CharField', [], {'max_length': '30'}) + }, + 'rh_v1.valeurpoint': { + 'Meta': {'object_name': 'ValeurPoint'}, + 'annee': ('django.db.models.fields.IntegerField', [], {}), + 'id': ('django.db.models.fields.IntegerField', [], {'primary_key': 'True'}), + 'implantation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'valeurs_point'", 'db_column': "'implantation'", 'to': "orm['datamaster_modeles.Implantation']"}), + 'valeur': ('django.db.models.fields.FloatField', [], {}) + }, + 'workflow.workflowcommentaire': { + 'Meta': {'object_name': 'WorkflowCommentaire'}, + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'etat_final': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'etat_initial': ('django.db.models.fields.CharField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}), + 'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']"}), + 'texte': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}) + } + } + + complete_apps = ['dae'] diff --git a/project/dae/models.py b/project/dae/models.py index cb07a04..2397c8a 100644 --- a/project/dae/models.py +++ b/project/dae/models.py @@ -554,6 +554,10 @@ class Dossier(DossierWorkflow, models.Model): choices=COMPTE_COMPTA_CHOICES) compte_courriel = models.BooleanField() + # DAE numérisée + dae_numerisee = models.FileField(upload_to='dae/dae_numerisee', storage=UPLOAD_STORAGE, + blank=True, null=True) + # Méta date_creation = models.DateTimeField(auto_now_add=True) @@ -774,4 +778,3 @@ class Contrat(models.Model): dossier = models.ForeignKey(Dossier, related_name='contrats') type = models.ForeignKey(rh.TypeContrat, related_name='+') fichier = models.FileField(upload_to='dae/contrats', storage=UPLOAD_STORAGE) - diff --git a/project/dae/permissions.py b/project/dae/permissions.py new file mode 100644 index 0000000..30a2de1 --- /dev/null +++ b/project/dae/permissions.py @@ -0,0 +1,17 @@ +from auf.django.permissions import allow + +import dae.models as dae +from dae.workflow import grp_drh, grp_drh2, grp_haute_direction +from dae.decorators import user_in_dae_groupes + +def user_in_group(*groups): + def test(user, obj): + user_groups = set(user.groups.all()) + return any(g in user_groups for g in groups) + return test + +allow('modifier_dae_numerisee', dae.Dossier, user_in_group(grp_drh, grp_drh2, grp_haute_direction)) + +allow('consulter', dae.Dossier, + lambda user, obj: (user_in_dae_groupes(user) or + dae.Dossier.objects.ma_region_ou_service(user).filter(id=obj.id).exists())) diff --git a/project/dae/templates/dae/dae_numerisee_modifier.html b/project/dae/templates/dae/dae_numerisee_modifier.html new file mode 100644 index 0000000..9e536d8 --- /dev/null +++ b/project/dae/templates/dae/dae_numerisee_modifier.html @@ -0,0 +1,17 @@ +{% extends 'base.html' %} +{% load adminmedia %} + +{% block title %}RH - DAE - Embauche{% endblock %} +{% block titre %}Ressources humaines{% endblock %} +{% block sous_titre %}Demande d'autorisation d'engagement{% endblock %} + +{% block main %} +

Télécharger une DAE numérisée

+ +
+ + {{ form }} +
+ +
+{% endblock %} diff --git a/project/dae/templates/dae/dae_numerisee_supprimer.html b/project/dae/templates/dae/dae_numerisee_supprimer.html new file mode 100644 index 0000000..8978556 --- /dev/null +++ b/project/dae/templates/dae/dae_numerisee_supprimer.html @@ -0,0 +1,16 @@ +{% extends 'base.html' %} + +{% block title %}RH - DAE - Embauche{% endblock %} +{% block titre %}Ressources humaines{% endblock %} +{% block sous_titre %}Demande d'autorisation d'engagement{% endblock %} + +{% block main %} +

Supprimer une DAE numérisée

+ +
+

Voulez-vous vraiment supprimer cette DAE numérisée?

+ + +
+{% endblock %} + diff --git a/project/dae/templates/dae/embauche_consulter.html b/project/dae/templates/dae/embauche_consulter.html index adc5fbe..7533b18 100644 --- a/project/dae/templates/dae/embauche_consulter.html +++ b/project/dae/templates/dae/embauche_consulter.html @@ -1,5 +1,5 @@ {% extends 'base.html' %} -{% load adminmedia dae %} +{% load adminmedia dae permissions %} {% block title %}RH - DAE - Embauche{% endblock %} {% block titre %}Ressources humaines{% endblock %} @@ -139,11 +139,12 @@ -{% if dossier.valide %} -

CONTRATS

+

PIÈCES JOINTES

+{% if dossier.valide %} Ajouter un contrat +

Contrats

@@ -170,6 +171,22 @@
{% endif %} +

DAE numérisée

+

+{% if dossier.dae_numerisee %} +Télécharger la DAE numérisée +{% ifhasperm 'modifier_dae_numerisee' dossier %} +Supprimer la DAE numérisée +{% endifhasperm %} +{% else %} +Aucune DAE numérisée pour l'instant +{% ifhasperm 'modifier_dae_numerisee' dossier %} +Joindre une DAE numérisée +{% endifhasperm %} +{% endif %} +

+

VALIDATIONS

diff --git a/project/dae/urls.py b/project/dae/urls.py index 12426dc..680f711 100644 --- a/project/dae/urls.py +++ b/project/dae/urls.py @@ -26,6 +26,13 @@ urlpatterns = patterns( url(r'^contrats/(\d+)/fichier/(.*)$', 'contrat', name='contrat'), url(r'^contrats/(\d+)/supprimer$', 'contrat_supprimer', name='contrat_supprimer'), + # DAE numérisée + url(r'^embauches/(\d+)/dae_numerisee$', 'dae_numerisee', name='dae_numerisee'), + url(r'^embauches/(\d+)/dae_numerisee/modifier$', 'dae_numerisee_modifier', + name='dae_numerisee_modifier'), + url(r'^embauches/(\d+)/dae_numerisee/supprimer$', 'dae_numerisee_supprimer', + name='dae_numerisee_supprimer'), + # ajax url(r'^employe$', 'employe', name='employe'), url(r'^employe/(?P.*)$', 'employe', name='employe'), diff --git a/project/dae/views.py b/project/dae/views.py index 3cbd197..b2d3af8 100644 --- a/project/dae/views.py +++ b/project/dae/views.py @@ -23,6 +23,8 @@ from reversion.models import Version from sendfile import sendfile +from auf.django.permissions.decorators import get_object + from dae import models as dae from dae.forms import * from dae.workflow import DOSSIER_ETAT_FINALISE, DOSSIER_ETAT_REGION_FINALISATION, \ @@ -454,6 +456,34 @@ def embauche_ajouter_contrat(request, dossier_id=None): 'form': form }, RequestContext(request)) +### DAE NUMERISEE + +@get_object(dae.Dossier, 'consulter') +def dae_numerisee(request, dossier): + return sendfile(request, dossier.dae_numerisee.path) + +@get_object(dae.Dossier, 'modifier_dae_numerisee') +def dae_numerisee_modifier(request, dossier): + if request.method == 'POST': + form = DAENumeriseeForm(request.POST, request.FILES, instance=dossier) + if form.is_valid(): + form.save() + return redirect('embauche_consulter', dossier_id=dossier.id) + else: + form = DAENumeriseeForm(instance=dossier) + return render_to_response('dae/dae_numerisee_modifier.html', { + 'form': form + }, RequestContext(request)) + +@get_object(dae.Dossier, 'modifier_dae_numerisee') +def dae_numerisee_supprimer(request, dossier): + if request.method == 'POST': + if 'oui' in request.POST: + dossier.dae_numerisee = None + dossier.save() + return redirect('embauche_consulter', dossier_id=dossier.id) + return render_to_response('dae/dae_numerisee_supprimer.html', {}, RequestContext(request)) + ################################################################################ # AJAX SECURISE ################################################################################ diff --git a/project/settings.py b/project/settings.py index a1130f4..25762ac 100644 --- a/project/settings.py +++ b/project/settings.py @@ -66,6 +66,7 @@ INSTALLED_APPS = ( 'south', 'reversion', 'auf.django.workflow', + 'auf.django.permissions', 'project.rh_v1', 'project.dae', ) @@ -84,6 +85,7 @@ TEMPLATE_CONTEXT_PROCESSORS = ( AUTHENTICATION_BACKENDS = ( 'auf.django.auth.backends.CascadeBackend', + 'auf.django.permissions.backends.AuthenticationBackend', ) LOGIN_URL = "/connexion" LOGIN_REDIRECT_URL = "/" diff --git a/project/urls.py b/project/urls.py index 79c1c6a..aba9c05 100644 --- a/project/urls.py +++ b/project/urls.py @@ -3,7 +3,10 @@ from django.conf.urls.defaults import patterns, include, handler500, url from django.conf import settings from django.contrib import admin +from auf.django import permissions + admin.autodiscover() +permissions.autodiscover() handler500 # Pyflakes -- 1.7.10.4