cascade create agenda
This commit is contained in:
parent
da1fa9d83a
commit
783e2e5931
|
|
@ -22,7 +22,9 @@ from utils.serializers import (
|
||||||
class AgendaSerializer(ProjectModelSerializer):
|
class AgendaSerializer(ProjectModelSerializer):
|
||||||
start_datetime = serializers.DateTimeField()
|
start_datetime = serializers.DateTimeField()
|
||||||
end_datetime = serializers.DateTimeField()
|
end_datetime = serializers.DateTimeField()
|
||||||
address = AddressBaseSerializer()
|
address = AddressBaseSerializer(read_only=True)
|
||||||
|
address_id = serializers.PrimaryKeyRelatedField(write_only=True, queryset=location_models.Address.objects.all(),
|
||||||
|
source='address')
|
||||||
event_name_translated = TranslatedField()
|
event_name_translated = TranslatedField()
|
||||||
content_translated = TranslatedField()
|
content_translated = TranslatedField()
|
||||||
|
|
||||||
|
|
@ -36,7 +38,8 @@ class AgendaSerializer(ProjectModelSerializer):
|
||||||
'end_datetime',
|
'end_datetime',
|
||||||
'address',
|
'address',
|
||||||
'content_translated',
|
'content_translated',
|
||||||
'event_name_translated'
|
'event_name_translated',
|
||||||
|
'address_id',
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -248,11 +251,17 @@ class NewsBackOfficeBaseSerializer(NewsBaseSerializer):
|
||||||
user = request.user
|
user = request.user
|
||||||
validated_data['created_by'] = user
|
validated_data['created_by'] = user
|
||||||
|
|
||||||
agenda = validated_data.get('agenda')
|
agenda_data = validated_data.pop('agenda')
|
||||||
if agenda is not None and (agenda.event_name is None or agenda.content is None):
|
agenda_data['address_id'] = agenda_data.pop('address').pk
|
||||||
raise serializers.ValidationError({'agenda': _('Agenda is empty')})
|
agenda_serializer = AgendaSerializer(data=agenda_data)
|
||||||
|
agenda_serializer.is_valid(raise_exception=True)
|
||||||
|
agenda = agenda_serializer.save()
|
||||||
|
|
||||||
return super().create(validated_data)
|
instance = super().create(validated_data)
|
||||||
|
instance.agenda = agenda
|
||||||
|
instance.save()
|
||||||
|
|
||||||
|
return instance
|
||||||
|
|
||||||
def update(self, instance, validated_data):
|
def update(self, instance, validated_data):
|
||||||
slugs = validated_data.get('slugs')
|
slugs = validated_data.get('slugs')
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user