Commit 676998bc authored by lizonr1's avatar lizonr1

Add new user_promotions

parent f5bd0e95
...@@ -53,7 +53,7 @@ class AuthTokenSerializerByEmail(serializers.Serializer): ...@@ -53,7 +53,7 @@ class AuthTokenSerializerByEmail(serializers.Serializer):
class UserPromotionSerializer(serializers.HyperlinkedModelSerializer): class UserPromotionSerializer(serializers.HyperlinkedModelSerializer):
user = UserSerializer() user = UserSerializer()
place = PlaceSerializer() #place = PlaceSerializer()
promotion = PromotionSerializer() promotion = PromotionSerializer()
class Meta: class Meta:
......
import django_filters
import rest_framework import rest_framework
from django.contrib.auth.models import User from django.contrib.auth.models import User
# Create your views here. # Create your views here.
from rest_framework import filters
from rest_framework.authtoken.models import Token from rest_framework.authtoken.models import Token
from rest_framework.decorators import list_route from rest_framework.decorators import list_route
from rest_framework.response import Response from rest_framework.response import Response
...@@ -73,18 +75,40 @@ class ObtainAuthToken(APIView): ...@@ -73,18 +75,40 @@ class ObtainAuthToken(APIView):
obtain_auth_token = ObtainAuthToken.as_view() obtain_auth_token = ObtainAuthToken.as_view()
class UserPromotionFilter(filters.FilterSet):
place = django_filters.CharFilter(name="place__id")
class Meta:
model = UserPromotion
fields = ['place']
class UserPromotionViewSet(viewsets.ModelViewSet): class UserPromotionViewSet(viewsets.ModelViewSet):
""" """
API for articles API for articles
""" """
base_name = "user_promotions"
queryset = UserPromotion.objects.all() queryset = UserPromotion.objects.all()
serializer_class = UserPromotionSerializer serializer_class = UserPromotionSerializer
permission_classes = (permissions.IsAuthenticatedOrReadOnly,) permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
filter_backends = (filters.DjangoFilterBackend,)
filter_class = UserPromotionFilter
def list(self, request): def get_queryset(self):
user = request.user """
queryset = UserPromotion.objects.filter(user=user) This view should return a list of all the purchases
page = self.paginate_queryset(queryset) for the currently authenticated user.
serializer = UserPromotionSerializer(page, many=True, context={'request': request}) """
return self.get_paginated_response(serializer.data) user = self.request.user
return UserPromotion.objects.filter(user=user)
# def get_queryset(self):
# user = self.request.user
# return user.user_promotion_set.all()
# def list(self, request):
# user = request.user
# queryset = UserPromotion.objects.filter(user=user)
# page = self.paginate_queryset(queryset)
# serializer = UserPromotionSerializer(page, many=True, context={'request': request})
# return self.get_paginated_response(serializer.data)
...@@ -36,6 +36,7 @@ INSTALLED_APPS = [ ...@@ -36,6 +36,7 @@ INSTALLED_APPS = [
'django.contrib.sessions', 'django.contrib.sessions',
'django.contrib.messages', 'django.contrib.messages',
'django.contrib.staticfiles', 'django.contrib.staticfiles',
'crispy_forms',
'rest_framework', 'rest_framework',
'rest_framework.authtoken', 'rest_framework.authtoken',
'App.user', 'App.user',
......
...@@ -24,7 +24,7 @@ from App.user import views as user_views ...@@ -24,7 +24,7 @@ from App.user import views as user_views
router = routers.DefaultRouter() router = routers.DefaultRouter()
router.register(r'user', user_views.UserViewSet) router.register(r'user', user_views.UserViewSet)
router.register(r'user_profile', user_views.UserProfileViewSet) router.register(r'user_profile', user_views.UserProfileViewSet)
router.register(r'user_promotions', user_views.UserPromotionViewSet, base_name='user_promotions') router.register(r'user_promotions', user_views.UserPromotionViewSet)
router.register(r'products', loyalty_views.ProductViewSet) router.register(r'products', loyalty_views.ProductViewSet)
router.register(r'offers', loyalty_views.OfferViewSet) router.register(r'offers', loyalty_views.OfferViewSet)
router.register(r'promotions', loyalty_views.PromotionViewSet) router.register(r'promotions', loyalty_views.PromotionViewSet)
......
...@@ -3,3 +3,4 @@ django ...@@ -3,3 +3,4 @@ django
djangorestframework djangorestframework
flake8 flake8
pillow pillow
django-crispy-forms
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment