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):
<fieldset>
<h2>Pièces jointes</h2>
<ul>
-{% for pj in poste.postepiece_set.all %}
+{% for pj in poste.dae_pieces.all %}
<li><a href="{% url poste_piece pj.id pj.fichier.name|basename %}">{{ pj.nom }}</a></li>
{% endfor %}
</ul>
<fieldset>
<h2>Financement</h2>
- {% if poste.financements.count > 0 %}
+ {% if poste.dae_financements.count > 0 %}
<table>
<thead>
<tr>
</tr>
</thead>
<tbody>
- {% for f in poste.financements.all %}
+ {% for f in poste.dae_financements.all %}
<tr>
<td>{{ f.get_type_display }}</td>
<td>{{ f.pourcentage|floatformat:0 }} %</td>
class PostePieceAdmin(admin.ModelAdmin):
- pass
+ fk_name = 'poste'
class RemunerationAdmin(admin.ModelAdmin):
ordering = ['type']
def __unicode__(self):
- return u'%s : %s %' % (self.type, self.pourcentage)
+ return u'%s : %s %%' % (self.type, self.pourcentage)
class PosteFinancement(PosteFinancement_):
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'),
)
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
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):
# 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/'