390472516a4185b05f56967314cbe8be4313bcc4
[auf_rh_dae.git] / project / dae / views.py
1 # -*- encoding: utf-8 -*-
2 from django.shortcuts import redirect, render_to_response, get_object_or_404
3 from django.template import RequestContext
4
5 from project.dae.forms import PosteForm
6 from project.dae import models as dae
7 from project.rh_v1 import models as rh
8
9
10 def index(request):
11 return render_to_response('dae/index.html', {}, RequestContext(request))
12
13
14 def poste(request, id=None):
15 """ Formulaire pour un poste.
16
17 Permet de créer ou modifier un poste. Si le poste n'existe que dans rh_v1
18 il est automatiquement copié dans dae.
19
20 """
21 poste, data, vars = None, dict(), dict()
22
23 if request.POST:
24 data.update(dict(request.POST.items()))
25
26 if id:
27 # Poste existant
28 data['poste'] = id
29 type, id = id.split('-')
30
31 if type == 'dae':
32 poste = get_object_or_404(dae.Poste, pk=id)
33 elif type == 'rh':
34 p = get_object_or_404(rh.Poste, id=id)
35 # Initialisation avec les valeurs du poste de rh_v1
36 poste = dae.Poste(id_rh=p, nom=p.type_poste.nom)
37 for field in ('implantation', 'type_poste', 'actif'):
38 setattr(poste, field, getattr(p, field))
39
40 if request.POST:
41 form = PosteForm(data, instance=poste)
42 if form.is_valid():
43 poste = form.save()
44 return redirect('poste', id='dae-%s' % poste.id)
45 else:
46 # 'initial' évite la validation prémature lors d'une copie de poste de
47 # rh_v1 vers dae.
48 form = PosteForm(initial=data, instance=poste)
49
50 vars['form'] = form
51
52 return render_to_response('dae/poste.html', vars, RequestContext(request))