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
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
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
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
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
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