Commit 676998bc authored by lizonr1's avatar lizonr1

Add new user_promotions

parent f5bd0e95
......@@ -53,7 +53,7 @@ class AuthTokenSerializerByEmail(serializers.Serializer):
class UserPromotionSerializer(serializers.HyperlinkedModelSerializer):
user = UserSerializer()
place = PlaceSerializer()
#place = PlaceSerializer()
promotion = PromotionSerializer()
class Meta:
......
import django_filters
import rest_framework
from django.contrib.auth.models import User
# Create your views here.
from rest_framework import filters
from rest_framework.authtoken.models import Token
from rest_framework.decorators import list_route
from rest_framework.response import Response
......@@ -73,18 +75,40 @@ class ObtainAuthToken(APIView):
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):
"""
API for articles
"""
base_name = "user_promotions"
queryset = UserPromotion.objects.all()
serializer_class = UserPromotionSerializer
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)
filter_backends = (filters.DjangoFilterBackend,)
filter_class = UserPromotionFilter
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)
def get_queryset(self):
"""
This view should return a list of all the purchases
for the currently authenticated user.
"""
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 = [
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'crispy_forms',
'rest_framework',
'rest_framework.authtoken',
'App.user',
......
......@@ -24,7 +24,7 @@ from App.user import views as user_views
router = routers.DefaultRouter()
router.register(r'user', user_views.UserViewSet)
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'offers', loyalty_views.OfferViewSet)
router.register(r'promotions', loyalty_views.PromotionViewSet)
......
......@@ -3,3 +3,4 @@ django
djangorestframework
flake8
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