from dateutil.relativedelta import relativedelta
from auf.django.permissions.decorators import get_object
+from auf.django.references import models as ref
from django.contrib import messages
from django.contrib.auth.decorators import login_required, user_passes_test
from django.contrib.contenttypes.models import ContentType
from project.rh import models as rh
from project import groups
-
+
# Helpers
def devises():
for comparaison in comparaisons:
comparaison.poste = poste
comparaison.save()
+ saved_cmps = [x.id for x in comparaisons]
+
+ for cmp_f in comparaisons_formset.forms:
+ comparaison = (cmp_f.instance, cmp_f)
- for comparaison in zip(
- comparaisons,
- comparaisons_formset.forms):
- dossier = rh.Dossier.objects.get(
- id=comparaison[1].cleaned_data['cmp_poste'])
+ cmp_dossier_id = comparaison[1].cleaned_data.get(
+ 'cmp_poste', None)
+ if (not cmp_dossier_id or
+ comparaison[0].id not in saved_cmps):
+ continue
+ cmp_dossier_qs = rh.Dossier.objects.filter(id=cmp_dossier_id)
+ if not cmp_dossier_qs.count() > 0:
+ continue
+ dossier = rh.Dossier.objects.get(id=cmp_dossier_qs.get().id)
# Get all remunerations for a period of 1 year,
# going back from either: today (if dossier has not
financementForm = FinancementForm(instance=poste)
comparaisons_formset = PosteComparaisonForm(instance=poste)
+
+ # Modify queryset so that it is limited to users' rights:
+ imp_qs = dae.ProxyImplantation.dae_manager.ma_region_ou_service(
+ request.user)
+
+ for cmp_form in comparaisons_formset.forms:
+ cmp_form.fields['implantation'].queryset = imp_qs
+
vars.update(dict(
form=form, poste=poste, poste_key=key, piecesForm=piecesForm,
financementForm=financementForm,
@dae_groupe_requis
@dossier_dans_ma_region_ou_service
-def embauche_consulter(request, dossier_id):
+def embauche_consulter(request, dossier_id):
dossier = get_object_or_404(dae.Dossier, pk=dossier_id)
etat_precedent = dossier.etat
request.POST,
queryset=dossier.dae_comparaisons.ma_region_ou_service(
request.user
- )
+ ),
)
remunForm = RemunForm(request.POST, instance=dossier)
remunForm.save()
# Ne remplacer que les comparaisons de ma région
+
comparaisons = comparaisons_formset.save(commit=False)
for comparaison in comparaisons:
comparaison.dossier = dossier
comparaison.save()
+ saved_cmps = [x.id for x in comparaisons]
+
+ for cmp_f in comparaisons_formset.forms:
+ comparaison = (cmp_f.instance, cmp_f)
+
+ cmp_dossier_id = comparaison[1].cleaned_data.get(
+ 'cmp_dossier', None)
+ if (not cmp_dossier_id or
+ comparaison[0].id not in saved_cmps):
+ continue
+ cmp_dossier_qs = rh.Dossier.objects.filter(id=cmp_dossier_id)
+ if not cmp_dossier_qs.count() > 0:
+ continue
+ rhdossier = rh.Dossier.objects.get(id=cmp_dossier_qs.get().id)
- for comparaison in zip(
- comparaisons,
- comparaisons_formset.forms):
- dossier = rh.Dossier.objects.get(
- id=comparaison[1].cleaned_data['cmp_dossier'])
# Get all remunerations for a period of 1 year,
- # going back from either: today (if dossier has not
- # yet ended), or from dossier's date_fin.
- cmp_date = min(dossier.date_fin or date.today(), date.today())
+ # going back from either: today (if cdossier has not
+ # yet ended), or from cdossier's date_fin.
+ cmp_date = min(rhdossier.date_fin or date.today(), date.today())
for remuneration in _filter_remunerations(
- dossier.remunerations().order_by('-date_debut'),
+ rhdossier.remunerations().order_by('-date_debut'),
only_traitement=False,
):
dae.DossierComparaisonRemuneration.objects.create(
)
except dae.Poste.DoesNotExist:
comparaisons_internes = []
+
+ # Modify queryset so that it is limited to users' rights:
+ imp_qs = dae.ProxyImplantation.dae_manager.ma_region_ou_service(
+ request.user)
+
+ for cmp_form in comparaisons_formset.forms:
+ cmp_form.fields['implantation'].queryset = imp_qs
+
+ # Comment out for now.
+ # if dossier and dossier.poste:
+ # dossier_form.fields['employe_anterieur'].queryset = (
+ # dossier_form.fields['employe_anterieur'].queryset.filter(
+ # rh_dossiers__poste=dossier.poste,
+ # ).distinct()
+ # )
+
c = {
'type_remun': filtered_type_remun(),
'devises': devises(),