add view count to news serializer
This commit is contained in:
parent
c644cbfd64
commit
956467e999
|
|
@ -11,6 +11,30 @@ from utils.models import BaseAttributes, TJSONField, TranslatedFieldsMixin, Proj
|
|||
from utils.querysets import TranslationQuerysetMixin
|
||||
|
||||
|
||||
class Agenda(ProjectBaseMixin, TranslatedFieldsMixin):
|
||||
"""News agenda model"""
|
||||
|
||||
event_datetime = models.DateTimeField(default=timezone.now, editable=False,
|
||||
verbose_name=_('Event datetime'))
|
||||
address = models.ForeignKey('location.Address', blank=True, null=True,
|
||||
default=None, verbose_name=_('address'),
|
||||
on_delete=models.SET_NULL)
|
||||
content = TJSONField(blank=True, null=True, default=None,
|
||||
verbose_name=_('content'),
|
||||
help_text='{"en-GB":"some text"}')
|
||||
|
||||
|
||||
class NewsBanner(ProjectBaseMixin, TranslatedFieldsMixin):
|
||||
"""News banner model"""
|
||||
title = TJSONField(blank=True, null=True, default=None,
|
||||
verbose_name=_('title'),
|
||||
help_text='{"en-GB":"some text"}')
|
||||
image_url = models.URLField(verbose_name=_('Image URL path'),
|
||||
blank=True, null=True, default=None)
|
||||
content_url = models.URLField(verbose_name=_('Content URL path'),
|
||||
blank=True, null=True, default=None)
|
||||
|
||||
|
||||
class NewsType(models.Model):
|
||||
"""NewsType model."""
|
||||
|
||||
|
|
@ -95,30 +119,6 @@ class NewsQuerySet(TranslationQuerysetMixin):
|
|||
)
|
||||
|
||||
|
||||
class Agenda(ProjectBaseMixin, TranslatedFieldsMixin):
|
||||
"""News agenda model"""
|
||||
|
||||
event_datetime = models.DateTimeField(default=timezone.now, editable=False,
|
||||
verbose_name=_('Event datetime'))
|
||||
address = models.ForeignKey('location.Address', blank=True, null=True,
|
||||
default=None, verbose_name=_('address'),
|
||||
on_delete=models.SET_NULL)
|
||||
content = TJSONField(blank=True, null=True, default=None,
|
||||
verbose_name=_('content'),
|
||||
help_text='{"en-GB":"some text"}')
|
||||
|
||||
|
||||
class NewsBanner(ProjectBaseMixin, TranslatedFieldsMixin):
|
||||
"""News banner model"""
|
||||
title = TJSONField(blank=True, null=True, default=None,
|
||||
verbose_name=_('title'),
|
||||
help_text='{"en-GB":"some text"}')
|
||||
image_url = models.URLField(verbose_name=_('Image URL path'),
|
||||
blank=True, null=True, default=None)
|
||||
content_url = models.URLField(verbose_name=_('Content URL path'),
|
||||
blank=True, null=True, default=None)
|
||||
|
||||
|
||||
class News(BaseAttributes, TranslatedFieldsMixin):
|
||||
"""News model."""
|
||||
|
||||
|
|
@ -236,6 +236,13 @@ class News(BaseAttributes, TranslatedFieldsMixin):
|
|||
if self.main_image:
|
||||
return self.main_image.get_image_url(thumbnail_key='news_preview')
|
||||
|
||||
@property
|
||||
def view_counter(self):
|
||||
count_value = 0
|
||||
if self.views_count:
|
||||
count_value = self.views_count.count
|
||||
return count_value
|
||||
|
||||
|
||||
class NewsGalleryQuerySet(models.QuerySet):
|
||||
"""QuerySet for model News"""
|
||||
|
|
|
|||
|
|
@ -136,6 +136,7 @@ class NewsBaseSerializer(ProjectModelSerializer):
|
|||
news_type = NewsTypeSerializer(read_only=True)
|
||||
tags = TagBaseSerializer(read_only=True, many=True)
|
||||
in_favorites = serializers.BooleanField(allow_null=True)
|
||||
view_counter = serializers.IntegerField(read_only=True)
|
||||
|
||||
class Meta:
|
||||
"""Meta class."""
|
||||
|
|
@ -150,6 +151,7 @@ class NewsBaseSerializer(ProjectModelSerializer):
|
|||
'tags',
|
||||
'slug',
|
||||
'in_favorites',
|
||||
'view_counter'
|
||||
)
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user