def get_queryset(self): """Queryset depends on user role.""" qs = super(OfferViewSet, self).get_queryset() if logged_as_admin(self.request): return qs user = self.request.user if user.is_authenticated(): return qs.filter( Q(offer_status='published') | Q(organization__in=user.userprofile.organizations.all())) return qs.filter(offer_status='published')
def offers(request, pk): """ Endpoint to get offers for organization """ organization = get_object_or_404(Organization, id=pk) if logged_as_admin(request): offers = organization.offer_set.get_for_administrator() else: offers = organization.offer_set.get_weightened() return Response( serializers.OfferSerializer( offers, many=True, context={'request': request}).data, status=status.HTTP_200_OK)
def get(request): u"""It's used for volunteers to show active ones and for admins to show all of them. :param request: WSGIRequest instance """ if logged_as_admin(request): offers = Offer.objects.all() else: offers = Offer.objects.get_active() return render(request, "offers/offers_list.html", context={ 'offers': offers, })
def get(request): """It's used for volunteers to show active ones and for admins to show all of them. :param request: WSGIRequest instance """ if logged_as_admin(request): offers = Offer.objects.all() else: offers = Offer.objects.get_active() return render(request, "offers/offers_list.html", context={ 'offers': offers, })
def offers(request, pk): """ Endpoint to get offers for organization """ organization = get_object_or_404(Organization, id=pk) is_user_org_member = False if request.user.is_authenticated: if organization in request.user.userprofile.organizations.all(): is_user_org_member = True if logged_as_admin(request) or is_user_org_member: offers = organization.offer_set.get_for_administrator() else: offers = organization.offer_set.get_weightened() return Response(serializers.OfferSerializer(offers, many=True, context={ 'request': request }).data, status=status.HTTP_200_OK)
def get_queryset(self): """Queryset depends on user role.""" if logged_as_admin(self.request): return models.Offer.objects.get_for_administrator() return models.Offer.objects.get_weightened()