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
|
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):
|
class NewsType(models.Model):
|
||||||
"""NewsType 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):
|
class News(BaseAttributes, TranslatedFieldsMixin):
|
||||||
"""News model."""
|
"""News model."""
|
||||||
|
|
||||||
|
|
@ -236,6 +236,13 @@ class News(BaseAttributes, TranslatedFieldsMixin):
|
||||||
if self.main_image:
|
if self.main_image:
|
||||||
return self.main_image.get_image_url(thumbnail_key='news_preview')
|
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):
|
class NewsGalleryQuerySet(models.QuerySet):
|
||||||
"""QuerySet for model News"""
|
"""QuerySet for model News"""
|
||||||
|
|
|
||||||
|
|
@ -136,6 +136,7 @@ class NewsBaseSerializer(ProjectModelSerializer):
|
||||||
news_type = NewsTypeSerializer(read_only=True)
|
news_type = NewsTypeSerializer(read_only=True)
|
||||||
tags = TagBaseSerializer(read_only=True, many=True)
|
tags = TagBaseSerializer(read_only=True, many=True)
|
||||||
in_favorites = serializers.BooleanField(allow_null=True)
|
in_favorites = serializers.BooleanField(allow_null=True)
|
||||||
|
view_counter = serializers.IntegerField(read_only=True)
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
"""Meta class."""
|
"""Meta class."""
|
||||||
|
|
@ -150,6 +151,7 @@ class NewsBaseSerializer(ProjectModelSerializer):
|
||||||
'tags',
|
'tags',
|
||||||
'slug',
|
'slug',
|
||||||
'in_favorites',
|
'in_favorites',
|
||||||
|
'view_counter'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user