Add raiting
This commit is contained in:
parent
f0001eef93
commit
f90e1ceded
|
|
@ -1,7 +1,7 @@
|
||||||
"""News app views."""
|
"""News app views."""
|
||||||
from rest_framework import generics, permissions
|
from rest_framework import generics, permissions
|
||||||
from news import filters, models, serializers
|
from news import filters, models, serializers
|
||||||
|
from rating.tasks import add_rating
|
||||||
|
|
||||||
class NewsMixinView:
|
class NewsMixinView:
|
||||||
"""News mixin."""
|
"""News mixin."""
|
||||||
|
|
@ -34,15 +34,6 @@ class NewsDetailView(NewsMixinView, generics.RetrieveAPIView):
|
||||||
"""Override get_queryset method."""
|
"""Override get_queryset method."""
|
||||||
return super().get_queryset().with_extended_related()
|
return super().get_queryset().with_extended_related()
|
||||||
|
|
||||||
def get(self, request, *args, **kwargs):
|
|
||||||
from rating.tasks import add_rating
|
|
||||||
print('SLUG')
|
|
||||||
add_rating.apply_async(
|
|
||||||
(1, '192.1.1.1.'), countdown=4
|
|
||||||
)
|
|
||||||
return self.retrieve(request, *args, **kwargs)
|
|
||||||
|
|
||||||
|
|
||||||
class NewsTypeListView(generics.ListAPIView):
|
class NewsTypeListView(generics.ListAPIView):
|
||||||
"""NewsType list view."""
|
"""NewsType list view."""
|
||||||
|
|
||||||
|
|
@ -84,3 +75,6 @@ class NewsBackOfficeRUDView(NewsBackOfficeMixinView,
|
||||||
|
|
||||||
serializer_class = serializers.NewsBackOfficeDetailSerializer
|
serializer_class = serializers.NewsBackOfficeDetailSerializer
|
||||||
|
|
||||||
|
def get(self, request, pk, *args, **kwargs):
|
||||||
|
add_rating(remote_addr=request.META.get('REMOTE_ADDR'), pk=pk, model='news')
|
||||||
|
return self.retrieve(request, *args, **kwargs)
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,22 @@
|
||||||
from datetime import timedelta
|
from datetime import timedelta
|
||||||
from celery.task import periodic_task, Task
|
|
||||||
from celery import task
|
from celery import task
|
||||||
|
from rating.models import Rating
|
||||||
|
from django.contrib.contenttypes.models import ContentType
|
||||||
|
|
||||||
|
|
||||||
|
def add_rating(remote_addr, pk, model):
|
||||||
|
add.apply_async(
|
||||||
|
(remote_addr, pk, model), countdown=60
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@task
|
@task
|
||||||
def add_rating(object_id, ip):
|
def add(remote_addr, pk, model):
|
||||||
print('object_id: ' + str(object_id))
|
rating = Rating()
|
||||||
print('ip: ' + str(ip))
|
rating.ip = remote_addr
|
||||||
|
rating.object_id = pk
|
||||||
|
rating.content_type = ContentType.objects.get(model=model)
|
||||||
|
rating.save()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user