Removed the ValidationError in motion numbering (fixed #3680)

This commit is contained in:
FinnStutzenstein 2018-05-22 07:44:21 +02:00
parent 7ab5611a50
commit 562d620851

View File

@ -617,6 +617,7 @@ class CategoryViewSet(ModelViewSet):
motions = [motion_dict[pk] for pk in motion_list] motions = [motion_dict[pk] for pk in motion_list]
# Change identifiers. # Change identifiers.
error_message = None
try: try:
with transaction.atomic(): with transaction.atomic():
# Collect old and new identifiers. # Collect old and new identifiers.
@ -647,11 +648,9 @@ class CategoryViewSet(ModelViewSet):
# Set new identifers and change identifiers of amendments. # Set new identifers and change identifiers of amendments.
for obj in motions_to_be_sorted: for obj in motions_to_be_sorted:
if Motion.objects.filter(identifier=obj['new_identifier']).exists(): if Motion.objects.filter(identifier=obj['new_identifier']).exists():
raise ValidationError({ # Set the error message and let the code run into an IntegrityError
'detail': error_message = _('Numbering aborted because the motion identifier "%s" '
_('Numbering aborted because the motion identifier "%s" already exists outside of this category.') % 'already exists outside of this category.') % obj['new_identifier']
obj['new_identifier']
})
motion = obj['motion'] motion = obj['motion']
motion.identifier = obj['new_identifier'] motion.identifier = obj['new_identifier']
motion.identifier_number = obj['number'] motion.identifier_number = obj['number']
@ -672,9 +671,10 @@ class CategoryViewSet(ModelViewSet):
instances.append(child) instances.append(child)
instances.append(child.agenda_item) instances.append(child.agenda_item)
except IntegrityError: except IntegrityError:
message = _('Error: At least one identifier of this category does ' if error_message is None:
error_message = _('Error: At least one identifier of this category does '
'already exist in another category.') 'already exist in another category.')
response = Response({'detail': message}, status=400) response = Response({'detail': error_message}, status=400)
else: else:
inform_changed_data(instances) inform_changed_data(instances)
message = _('All motions in category {category} numbered ' message = _('All motions in category {category} numbered '