added to same_theme and should_read preview_image_url, added UniqueConstraint to NewsGallery model
This commit is contained in:
parent
174e580c20
commit
7d0acba51b
18
apps/news/migrations/0029_auto_20191025_1241.py
Normal file
18
apps/news/migrations/0029_auto_20191025_1241.py
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
# Generated by Django 2.2.4 on 2019-10-25 12:41
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('gallery', '0003_auto_20191003_1228'),
|
||||
('news', '0028_auto_20191024_1649'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterUniqueTogether(
|
||||
name='newsgallery',
|
||||
unique_together={('news', 'image'), ('news', 'is_main')},
|
||||
),
|
||||
]
|
||||
|
|
@ -235,4 +235,4 @@ class NewsGallery(models.Model):
|
|||
"""NewsGallery meta class."""
|
||||
verbose_name = _('news gallery')
|
||||
verbose_name_plural = _('news galleries')
|
||||
unique_together = ('news', 'is_main')
|
||||
unique_together = (('news', 'is_main'), ('news', 'image'))
|
||||
|
|
|
|||
|
|
@ -150,6 +150,17 @@ class NewsBaseSerializer(ProjectModelSerializer):
|
|||
)
|
||||
|
||||
|
||||
class NewsSimilarListSerializer(NewsBaseSerializer):
|
||||
"""List serializer for News model."""
|
||||
preview_image_url = serializers.URLField()
|
||||
|
||||
class Meta(NewsBaseSerializer.Meta):
|
||||
"""Meta class."""
|
||||
fields = NewsBaseSerializer.Meta.fields + (
|
||||
'preview_image_url',
|
||||
)
|
||||
|
||||
|
||||
class NewsListSerializer(NewsBaseSerializer):
|
||||
"""List serializer for News model."""
|
||||
|
||||
|
|
@ -192,8 +203,8 @@ class NewsDetailSerializer(NewsBaseSerializer):
|
|||
class NewsDetailWebSerializer(NewsDetailSerializer):
|
||||
"""News detail serializer for web users.."""
|
||||
|
||||
same_theme = NewsBaseSerializer(many=True, read_only=True)
|
||||
should_read = NewsBaseSerializer(many=True, read_only=True)
|
||||
same_theme = NewsSimilarListSerializer(many=True, read_only=True)
|
||||
should_read = NewsSimilarListSerializer(many=True, read_only=True)
|
||||
agenda = AgendaSerializer()
|
||||
banner = NewsBannerSerializer()
|
||||
|
||||
|
|
@ -266,7 +277,6 @@ class NewsBackOfficeGallerySerializer(serializers.ModelSerializer):
|
|||
"""Override validate method."""
|
||||
news_pk = self.get_request_kwargs().get('pk')
|
||||
image_id = self.get_request_kwargs().get('image_id')
|
||||
is_main = attrs.get('is_main')
|
||||
|
||||
news_qs = models.News.objects.filter(pk=news_pk)
|
||||
image_qs = Image.objects.filter(id=image_id)
|
||||
|
|
@ -279,12 +289,6 @@ class NewsBackOfficeGallerySerializer(serializers.ModelSerializer):
|
|||
news = news_qs.first()
|
||||
image = image_qs.first()
|
||||
|
||||
if news.news_gallery.filter(image=image).exists():
|
||||
raise serializers.ValidationError({'detail': _('Image is already added')})
|
||||
|
||||
if is_main and news.news_gallery.main_image().exists():
|
||||
raise serializers.ValidationError({'detail': _('Main image is already added')})
|
||||
|
||||
attrs['news'] = news
|
||||
attrs['image'] = image
|
||||
|
||||
|
|
|
|||
|
|
@ -119,7 +119,7 @@ class NewsBackOfficeGalleryCreateDestroyView(NewsBackOfficeMixinView,
|
|||
return gallery
|
||||
|
||||
def create(self, request, *args, **kwargs):
|
||||
"""Override create method"""
|
||||
"""Overridden create method"""
|
||||
super().create(request, *args, **kwargs)
|
||||
return Response(status=status.HTTP_201_CREATED)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user