always one is_main media item

This commit is contained in:
Kuroshini 2020-02-07 18:07:17 +03:00
parent 756211b8d1
commit 35d94e6f76

View File

@ -90,6 +90,10 @@ class EstablishmentGallerySerializer(serializers.ModelSerializer):
instance.created_by = self.context['request'].user instance.created_by = self.context['request'].user
instance.establishment_set.add(establishment) instance.establishment_set.add(establishment)
instance.save() instance.save()
if is_main:
EstablishmentGallery.objects.filter(
establishment=establishment
).update(is_main=False) # reset all before setting True on some instance
EstablishmentGallery.objects.filter( EstablishmentGallery.objects.filter(
image=instance image=instance
).update(is_main=is_main) ).update(is_main=is_main)
@ -100,6 +104,11 @@ class EstablishmentGallerySerializer(serializers.ModelSerializer):
instance.set_pubic(validated_data.get('is_public', True)) instance.set_pubic(validated_data.get('is_public', True))
if 'is_main' in validated_data: if 'is_main' in validated_data:
is_main = validated_data.pop('is_main') is_main = validated_data.pop('is_main')
if is_main:
establishment = instance.establishment_gallery.all()[0].establishment
EstablishmentGallery.objects.filter(
establishment=establishment
).update(is_main=False) # reset all before setting True on some instance
EstablishmentGallery.objects.filter( EstablishmentGallery.objects.filter(
image=instance image=instance
).update(is_main=is_main) ).update(is_main=is_main)