예제 #1
0
    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')
예제 #2
0
 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)
예제 #3
0
    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,
        })
예제 #4
0
    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,
                      })
예제 #5
0
 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)
예제 #6
0
 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()