Пример #1
0
 def get_form(self, form_class=None):
     form = super(PositionCreateView, self).get_form(form_class=form_class)
     queryset = form.fields['role'].queryset
     queryset = queryset.filter(archived=False)
     if not is_admin(self.request.user):
         teams = official_of(self.request.user)
         queryset = queryset.filter(team__in=teams)
     form.fields['role'].queryset = queryset
     return form
Пример #2
0
 def get_queryset(self, request):
     if is_admin(request.user):
         return super(RoleAdmin, self).get_queryset(request)
     else:
         teams = official_of(request.user)
         qs = Role.objects.filter(team__in=teams)
         ordering = self.get_ordering(request)
         if ordering:
             qs = qs.order_by(*ordering)
         return qs
Пример #3
0
 def get_form(self, form_class=None):
     form = super(PositionEditView, self).get_form(form_class=form_class)
     queryset = form.fields['role'].queryset
     init = Role.objects.get(pk=form.initial['role'])
     if not init.archived:
         queryset = queryset.filter(archived=False)
     if not is_admin(self.request.user):
         teams = official_of(self.request.user)
         queryset = queryset.filter(team__in=teams)
     form.fields['role'].queryset = queryset
     return form
Пример #4
0
 def get_queryset(self, request):
     if is_admin(request.user):
         return super(PositionAdmin, self).get_queryset(request)
     else:
         official_teams = official_of(request.user)
         teams = member_of(request.user)
         qs = Position.objects.filter(
             Q(role__team__in=official_teams)
             | Q(approval_committee__in=teams)
         )
         ordering = self.get_ordering(request)
         if ordering:
             qs = qs.order_by(*ordering)
         return qs
Пример #5
0
 def get_queryset(self, request):
     if is_admin(request.user):
         return super().get_queryset(request)
     else:
         # TODO : Is this efficient?
         applications = Application.objects.filter(
             applicant=request.user,
             status='appointed',
             position__term_from__lte=date.today(),
             position__term_to__gte=date.today(),
             position__function__official=True,
             position__function__team_id__isnull=False,
         ).select_related('position__function__team')
         teams = []
         for i in applications:
             teams.append(i.position.function.team)
         qs = Position.objects.filter(function__team__in=teams)
         ordering = self.get_ordering(request)
         if ordering:
             qs = qs.order_by(*ordering)
         return qs
Пример #6
0
 def get_form(self, form_class=None):
     form = super(RoleEditView, self).get_form(form_class=form_class)
     if not is_admin(self.request.user):
         form.fields['team'].queryset = official_of(self.request.user)
     return form