From: Eric Mc Sween Date: Mon, 14 May 2012 14:48:54 +0000 (-0400) Subject: [#3059] Page intermédiaire à l'importation d'une DAE X-Git-Tag: 1.6.5~137^2~2 X-Git-Url: http://git.auf.org/?p=auf_rh_dae.git;a=commitdiff_plain;h=47b60f16b7f2f9c7b352557c6b054de758495dc0 [#3059] Page intermédiaire à l'importation d'une DAE --- diff --git a/project/dae/models.py b/project/dae/models.py index 6c6085b..147c41f 100644 --- a/project/dae/models.py +++ b/project/dae/models.py @@ -114,8 +114,11 @@ class Poste(PosteWorkflow, rh.Poste_): copieur = PosteCopier(verbosity=verbosity, dry_run=dry_run) return copieur.copy(self) + def dans_rh(self): + return self.id_rh or None + def importer_dans_rh(self): - poste_rh = self.id_rh or rh.Poste() + poste_rh = self.dans_rh() or rh.Poste() poste_rh.nom = self.nom poste_rh.implantation = self.implantation poste_rh.type_poste = self.type_poste @@ -416,8 +419,11 @@ class Employe(AUFMetadata): def __unicode__(self): return u'%s %s' % (self.prenom, self.nom.upper()) + def dans_rh(self): + return self.id_rh or None + def importer_dans_rh(self): - return self.id_rh or rh.Employe.objects.create( + return self.dans_rh() or rh.Employe.objects.create( nom=self.nom, prenom=self.prenom, genre=self.genre @@ -580,19 +586,33 @@ class Dossier(DossierWorkflow, rh.Dossier_): copieur = DossierCopier(verbosity=verbosity, dry_run=dry_run) return copieur.copy(self) - def importer_dans_rh(self): + def dans_rh(self): + """ + Retourne le dossier associé dans le système RH ou ``None`` s'il n'y + en a pas. + """ today = date.today() - poste_rh = self.poste.importer_dans_rh() - employe_rh = self.employe.importer_dans_rh() + poste_rh = self.poste.dans_rh() + if poste_rh is None: + return None + employe_rh = self.employe.dans_rh() + if employe_rh is None: + return None try: - dossier_rh = rh.Dossier.objects.get( + return rh.Dossier.objects.get( Q(date_debut=None) | Q(date_debut__lte=today), Q(date_fin=None) | Q(date_fin__gte=today), poste=poste_rh, employe=employe_rh ) except rh.Dossier.DoesNotExist: - dossier_rh = rh.Dossier(poste=poste_rh, employe=employe_rh) + return None + + def importer_dans_rh(self): + poste_rh = self.poste.importer_dans_rh() + employe_rh = self.employe.importer_dans_rh() + dossier_rh = self.dans_rh() or \ + rh.Dossier(poste=poste_rh, employe=employe_rh) dossier_rh.statut = self.statut dossier_rh.organisme_bstg = self.organisme_bstg diff --git a/project/dae/templates/dae/embauche_importer.html b/project/dae/templates/dae/embauche_importer.html new file mode 100644 index 0000000..101232b --- /dev/null +++ b/project/dae/templates/dae/embauche_importer.html @@ -0,0 +1,41 @@ +{% extends 'base.html' %} + +{% block title %}RH - DAE - Importation{% endblock %} +{% block titre %}Ressources humaines{% endblock %} +{% block sous_titre %}Demande d'autorisation d'engagement{% endblock %} + +{% block main %} +

Importation d'une DAE

+ +

Vous vous apprêtez à importer le dossier {{ dossier }} dans +le système RH.

+ + + +
+ + +
+{% endblock %} diff --git a/project/dae/views.py b/project/dae/views.py index 73c30a8..fb401fd 100644 --- a/project/dae/views.py +++ b/project/dae/views.py @@ -279,8 +279,16 @@ def embauche_consulter(request, dossier_id): @dossier_dans_ma_region_ou_service def embauche_importer(request, dossier_id=None): dossier_dae = get_object_or_404(dae.Dossier, id=dossier_id) - dossier_rh = dossier_dae.importer_dans_rh() - return redirect('admin:rh_dossier_change', dossier_rh.id) + if request.method == 'POST': + if 'confirmer' in request.POST: + dossier_rh = dossier_dae.importer_dans_rh() + return redirect('admin:rh_dossier_change', dossier_rh.id) + else: + return redirect('embauches_finalisees') + else: + return render_to_response('dae/embauche_importer.html', { + 'dossier': dossier_dae + }, RequestContext(request)) @dae_groupe_requis