Added agenda validate to update method
This commit is contained in:
parent
783e2e5931
commit
6c624115e6
|
|
@ -265,7 +265,7 @@ class NewsBackOfficeBaseSerializer(NewsBaseSerializer):
|
||||||
|
|
||||||
def update(self, instance, validated_data):
|
def update(self, instance, validated_data):
|
||||||
slugs = validated_data.get('slugs')
|
slugs = validated_data.get('slugs')
|
||||||
slugs_list = list(map(lambda x: x.lower(), slugs.values()))
|
slugs_list = list(map(lambda x: x.lower(), slugs.values() if slugs else ()))
|
||||||
slugs_set = set(slugs_list)
|
slugs_set = set(slugs_list)
|
||||||
if slugs:
|
if slugs:
|
||||||
if models.News.objects.filter(
|
if models.News.objects.filter(
|
||||||
|
|
@ -273,9 +273,27 @@ class NewsBackOfficeBaseSerializer(NewsBaseSerializer):
|
||||||
).exists() or len(slugs_list) != len(slugs_set):
|
).exists() or len(slugs_list) != len(slugs_set):
|
||||||
raise serializers.ValidationError({'slugs': _('Slug should be unique')})
|
raise serializers.ValidationError({'slugs': _('Slug should be unique')})
|
||||||
|
|
||||||
agenda = validated_data.get('agenda')
|
agenda_data = validated_data.get('agenda')
|
||||||
if agenda is not None and (agenda.event_name is None or agenda.content is None):
|
agenda = instance.agenda
|
||||||
raise serializers.ValidationError({'agenda': _('Agenda is empty')})
|
|
||||||
|
if agenda is None:
|
||||||
|
agenda_data['address_id'] = agenda_data.pop('address').pk
|
||||||
|
agenda_serializer = AgendaSerializer(data=agenda_data)
|
||||||
|
agenda_serializer.is_valid(raise_exception=True)
|
||||||
|
agenda_serializer.save()
|
||||||
|
|
||||||
|
else:
|
||||||
|
agenda.start_datetime = agenda_data.pop(
|
||||||
|
'start_datetime') if 'start_datetime' in agenda_data else agenda.start_datetime
|
||||||
|
agenda.end_datetime = agenda_data.pop(
|
||||||
|
'end_datetime') if 'end_datetime' in agenda_data else agenda.end_datetime
|
||||||
|
agenda.address = agenda_data.pop(
|
||||||
|
'address') if 'address' in agenda_data else agenda.address
|
||||||
|
agenda.event_name = agenda_data.pop(
|
||||||
|
'event_name') if 'event_time' in agenda_data else agenda.event_name
|
||||||
|
agenda.content = agenda_data.pop(
|
||||||
|
'content') if 'content' in agenda_data else agenda.content
|
||||||
|
agenda.save()
|
||||||
|
|
||||||
return super().update(instance, validated_data)
|
return super().update(instance, validated_data)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user