From e6f524025e89223368ece09e83cf38bd408066d7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Olivier=20Larchev=C3=AAque?= Date: Fri, 29 Apr 2011 10:29:50 -0400 Subject: [PATCH] validation WF poste + dossier --- buildout.cfg | 2 +- project/dae/forms.py | 12 +++++++++++ project/dae/templates/dae/embauche_consulter.html | 20 +++++++++++++++++- project/dae/templates/dae/poste_consulter.html | 22 +++++++++++++++++++- project/dae/views.py | 23 ++++++++++++++++++++- project/settings.py | 1 + 6 files changed, 76 insertions(+), 4 deletions(-) diff --git a/buildout.cfg b/buildout.cfg index fbe9288..e97170e 100644 --- a/buildout.cfg +++ b/buildout.cfg @@ -28,7 +28,7 @@ south = 0.7 auf.django.skin = 0.15dev auf.django.auth = 0.5.2dev django-reversion = 1.3.3 -auf.django.workflow = 0.8dev +auf.django.workflow = 0.9dev django-ajax-selects = 1.1.4 [django] diff --git a/project/dae/forms.py b/project/dae/forms.py index bae2e9a..80b2774 100644 --- a/project/dae/forms.py +++ b/project/dae/forms.py @@ -246,3 +246,15 @@ class DossierForm(forms.ModelForm): contrat_date_debut=admin_widgets.AdminDateWidget(), contrat_date_fin=admin_widgets.AdminDateWidget(), ) + +class PosteWorkflowForm(WorkflowFormMixin): + + class Meta: + fields = ('etat', ) + model = dae.Poste + +class DossierWorkflowForm(WorkflowFormMixin): + + class Meta: + fields = ('etat', ) + model = dae.Dossier diff --git a/project/dae/templates/dae/embauche_consulter.html b/project/dae/templates/dae/embauche_consulter.html index 5e5122f..531ad45 100644 --- a/project/dae/templates/dae/embauche_consulter.html +++ b/project/dae/templates/dae/embauche_consulter.html @@ -11,7 +11,7 @@ {% block main %}

Demandes d'autorisation d'engagement de personnel

-Modifier +Modifier

SECTION 1 - POSTE

@@ -125,5 +125,23 @@ + +
+

Validation

+ + + +
+ + {{ validationForm }} +
+ +
+
+ {% endblock %} diff --git a/project/dae/templates/dae/poste_consulter.html b/project/dae/templates/dae/poste_consulter.html index b32869d..6312405 100644 --- a/project/dae/templates/dae/poste_consulter.html +++ b/project/dae/templates/dae/poste_consulter.html @@ -12,9 +12,29 @@ Demande d'autorisation d'embauche {% endblock %} {% block main %} +

Demande d'autorisation de création de poste

-Modifier +Modifier
{% include "dae/poste_resume.html" %} + +
+

Validation

+ + + +
+ +{{ validationForm }} +
+ +
+
+ + {% endblock %} diff --git a/project/dae/views.py b/project/dae/views.py index cd6371c..1076271 100644 --- a/project/dae/views.py +++ b/project/dae/views.py @@ -28,7 +28,17 @@ def index(request): def poste_consulter(request, key): source, id = key.split('-') poste = get_object_or_404(dae.Poste, pk=id) - vars = {'poste' : poste, } + + if request.POST: + validationForm = PosteWorkflowForm(request.POST, instance=poste, request=request) + if validationForm.is_valid(): + validationForm.save() + messages.add_message(request, messages.SUCCESS, "La validation a été enregistrée.") + return redirect('poste_consulter', key=key) + else: + validationForm = PosteWorkflowForm(instance=poste, request=request) + + vars = {'poste' : poste, 'validationForm' : validationForm, } return render_to_response('dae/poste_consulter.html', vars, RequestContext(request)) @admin_required @@ -119,9 +129,20 @@ def get_dossiers_connexes(poste): @admin_required def embauche_consulter(request, dossier_id): dossier = get_object_or_404(dae.Dossier, pk=dossier_id) + + if request.POST: + validationForm = DossierWorkflowForm(request.POST, instance=dossier, request=request) + if validationForm.is_valid(): + validationForm.save() + messages.add_message(request, messages.SUCCESS, "La validation a été enregistrée.") + return redirect('embauche_consulter', dossier_id=dossier.id) + else: + validationForm = DossierWorkflowForm(instance=dossier, request=request) + vars = { 'dossier' : dossier, 'comparaison_dossiers' : get_dossiers_connexes(dossier.poste), + 'validationForm' : validationForm, } return render_to_response('dae/embauche_consulter.html', vars, RequestContext(request)) diff --git a/project/settings.py b/project/settings.py index 5c8459c..5e28e97 100644 --- a/project/settings.py +++ b/project/settings.py @@ -64,6 +64,7 @@ INSTALLED_APPS = ( 'ajax_select', 'south', 'reversion', + 'auf.django.workflow', #'project.rh', 'project.rh_v1', 'project.dae', -- 1.7.10.4