From a184c555606a24cf7981fb43cae97b8ec57b411f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Olivier=20Larchev=C3=AAque?= Date: Tue, 17 Jan 2012 16:43:30 -0500 Subject: [PATCH] poste dae -> poste rh --- project/dae/models.py | 29 +++++++++++++++++++++++++++ project/dae/templates/dae/poste_resume.html | 6 +++--- project/rh/lib.py | 2 +- project/rh/models.py | 2 +- project/rh/urls.py | 1 + project/rh/views.py | 10 +++++++++ project/settings.py | 2 +- 7 files changed, 46 insertions(+), 6 deletions(-) diff --git a/project/dae/models.py b/project/dae/models.py index 56f63f4..cfba8db 100644 --- a/project/dae/models.py +++ b/project/dae/models.py @@ -71,6 +71,35 @@ class Poste(PosteWorkflow, rh.Poste_): rh_poste = rh.Poste() # Faire une copie profonde de l'objet. # PosteFinancement, PosteComparaison, Remun modele a ajuster... + + def copy_model(src, dst, exclude=[]): + keys = [f.name for f in src._meta.fields if f.name not in ['id', ] + exclude] + for k in keys: + setattr(dst, k, getattr(src, k)) + return dst + + rh_poste = copy_model(self, rh_poste) + rh_poste.save() + print rh_poste.id + + for o in self.dae_financements.all(): + rh_financement = rh.PosteFinancement() + rh_financement = copy_model(o, rh_financement, exclude=['poste',]) + rh_financement.poste = rh_poste + rh_financement.save() + + for o in self.dae_pieces.all(): + rh_piece = rh.PostePiece() + rh_piece = copy_model(o, rh_piece, exclude=['poste',]) + rh_piece.poste = rh_poste + rh_piece.save() + + for o in self.dae_comparaisons_internes.all(): + rh_comp = rh.PosteComparaison() + rh_comp = copy_model(o, rh_financement, exclude=['poste',]) + rh_comp.poste = rh_poste + rh_comp.save() + return rh_poste def _get_key(self): diff --git a/project/dae/templates/dae/poste_resume.html b/project/dae/templates/dae/poste_resume.html index d8501e6..bd479c8 100644 --- a/project/dae/templates/dae/poste_resume.html +++ b/project/dae/templates/dae/poste_resume.html @@ -279,7 +279,7 @@

Pièces jointes

@@ -288,7 +288,7 @@

Financement

- {% if poste.financements.count > 0 %} + {% if poste.dae_financements.count > 0 %} @@ -298,7 +298,7 @@ - {% for f in poste.financements.all %} + {% for f in poste.dae_financements.all %} diff --git a/project/rh/lib.py b/project/rh/lib.py index 82aa226..44c092f 100644 --- a/project/rh/lib.py +++ b/project/rh/lib.py @@ -580,7 +580,7 @@ class PosteFinancementAdmin(admin.ModelAdmin): class PostePieceAdmin(admin.ModelAdmin): - pass + fk_name = 'poste' class RemunerationAdmin(admin.ModelAdmin): diff --git a/project/rh/models.py b/project/rh/models.py index 77a201d..d8cd318 100644 --- a/project/rh/models.py +++ b/project/rh/models.py @@ -241,7 +241,7 @@ class PosteFinancement_(models.Model): ordering = ['type'] def __unicode__(self): - return u'%s : %s %' % (self.type, self.pourcentage) + return u'%s : %s %%' % (self.type, self.pourcentage) class PosteFinancement(PosteFinancement_): diff --git a/project/rh/urls.py b/project/rh/urls.py index 17e2d13..b9bc4a4 100644 --- a/project/rh/urls.py +++ b/project/rh/urls.py @@ -10,4 +10,5 @@ urlpatterns = patterns( url(r'^admin/rh/dossier/(\d+)/apercu/$', 'dossier_apercu', name='dossier_apercu'), url(r'^admin/rh/employe/(\d+)/apercu/$', 'employe_apercu', name='employe_apercu'), url(r'^admin/rh/poste/(\d+)/apercu/$', 'poste_apercu', name='poste_apercu'), + url(r'^prive/(.*)$', 'poste_piece'), ) diff --git a/project/rh/views.py b/project/rh/views.py index 973f481..86e66c2 100644 --- a/project/rh/views.py +++ b/project/rh/views.py @@ -6,6 +6,7 @@ from django.contrib.auth.decorators import login_required from django.utils.encoding import smart_str from django.shortcuts import redirect, render_to_response, get_object_or_404 from django.template import RequestContext +from sendfile import sendfile from datamaster_modeles import models as ref from project.lib import get_employe_from_id @@ -13,6 +14,15 @@ from project.lib import get_employe_from_id from rh import models as rh from rh.lib import calc_remun +@login_required +def poste_piece(request, filename): + """Téléchargement d'une pièce jointe à un poste.""" + piece = get_object_or_404(rh.PostePiece, fichier=filename) + if rh.Poste.objects.ma_region_ou_service(request.user).filter(id=piece.poste_id).exists(): + return sendfile(request, piece.fichier.path) + else: + return redirect_interdiction(request) + # homes @login_required def profil(request): diff --git a/project/settings.py b/project/settings.py index 8f1e771..7504eb9 100644 --- a/project/settings.py +++ b/project/settings.py @@ -34,7 +34,7 @@ PRIVE_MEDIA_ROOT = os.path.join(os.path.dirname(__file__), 'media_prive') # trailing slash if there is a path component (optional in other cases). # Examples: "http://media.lawrence.com", "http://example.com/media/" MEDIA_URL = '/media/' -PRIVE_MEDIA_URL = '/dae/prive/' +PRIVE_MEDIA_URL = '/rh/prive/' OE_PRIVE_MEDIA_URL = '/recrutement/prive/' -- 1.7.10.4
{{ f.get_type_display }} {{ f.pourcentage|floatformat:0 }} %