Issue - #3185 Import user story with role points results in an IntegrityError

remotes/origin/enhancement/email-actions
Alejandro Alonso 2015-08-14 10:08:21 +02:00
parent 95c57eb7e5
commit 811a6c7906
1 changed files with 12 additions and 3 deletions

View File

@ -26,6 +26,7 @@ from taiga.projects.history.services import make_key_from_model_object, take_sna
from taiga.timeline.service import build_project_namespace from taiga.timeline.service import build_project_namespace
from taiga.projects.references import sequences as seq from taiga.projects.references import sequences as seq
from taiga.projects.references import models as refs from taiga.projects.references import models as refs
from taiga.projects.userstories.models import RolePoints
from taiga.projects.services import find_invited_user from taiga.projects.services import find_invited_user
from . import serializers from . import serializers
@ -351,9 +352,17 @@ def store_wiki_link(project, wiki_link):
def store_role_point(project, us, role_point): def store_role_point(project, us, role_point):
serialized = serializers.RolePointsExportSerializer(data=role_point, context={"project": project}) serialized = serializers.RolePointsExportSerializer(data=role_point, context={"project": project})
if serialized.is_valid(): if serialized.is_valid():
serialized.object.user_story = us try:
serialized.save() existing_role_point = us.role_points.get(role=serialized.object.role)
return serialized.object existing_role_point.points = serialized.object.points
existing_role_point.save()
return existing_role_point
except RolePoints.DoesNotExist:
serialized.object.user_story = us
serialized.save()
return serialized.object
add_errors("role_points", serialized.errors) add_errors("role_points", serialized.errors)
return None return None