DossierManager as RHDossierManager, \
PosteManager as RHPosteManager, \
PosteComparaisonManager as RHPosteComparaisonManager, \
- DossierComparaisonManager as RHDossierComparaisonManager
+ DossierComparaisonManager as RHDossierComparaisonManager, \
+ SecurityManager
from project.dae.workflow import MAP_GROUPE_ETATS_A_FAIRE
+class ImplantationManager(SecurityManager):
+ use_for_related_fields = True
+ prefixe_implantation = "zone_administrative"
+
class TodoManagerMixin(object):
def mes_choses_a_faire(self, user):
import reversion
-from project.dae.managers import PosteManager, DossierManager
+from auf.django.references import models as ref
+
+from project.dae.managers import (
+ PosteManager, DossierManager, ImplantationManager)
from project.dae.workflow import PosteWorkflow, DossierWorkflow
from project.dae.workflow import \
DOSSIER_ETAT_DRH_FINALISATION, DOSSIER_ETAT_REGION_FINALISATION, \
proxy = True
verbose_name = "Statut du poste"
verbose_name_plural = "Statut des postes"
+
+
+class ProxyImplantation(ref.Implantation):
+
+ # Ajout d'un manager pour ref.Implantation
+ dae_manager = ImplantationManager()
+
+ class Meta:
+ proxy = True
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():
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,
)
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
+
+
c = {
'type_remun': filtered_type_remun(),
'devises': devises(),