Change approach move us's from sprint to another

stable
Álex Hermida 2018-12-27 13:02:54 +01:00 committed by Alex Hermida
parent 39e9de71cf
commit 0cb423c929
4 changed files with 16 additions and 10 deletions

View File

@ -144,9 +144,8 @@ class MilestoneViewSet(HistoryResourceMixin, WatchedResourceMixin,
return response.Ok(milestone_stats) return response.Ok(milestone_stats)
@detail_route(methods=["POST"]) @detail_route(methods=["POST"])
def bulk_update_items(self, request, pk=None, **kwargs): def move_userstories_to_sprint(self, request, pk=None, **kwargs):
milestone = get_object_or_404(models.Milestone, pk=pk) milestone = get_object_or_404(models.Milestone, pk=pk)
self.check_permissions(request, "bulk_update_items", milestone) self.check_permissions(request, "bulk_update_items", milestone)
@ -157,16 +156,16 @@ class MilestoneViewSet(HistoryResourceMixin, WatchedResourceMixin,
data = validator.data data = validator.data
project = get_object_or_404(Project, pk=data["project_id"]) project = get_object_or_404(Project, pk=data["project_id"])
milestone = get_object_or_404(models.Milestone, pk=data["sprint_id"]) milestone_result = get_object_or_404(models.Milestone, pk=data["milestone_id"])
print('data', validator.bulk_stories)
if data["bulk_stories"]: if data["bulk_stories"]:
self.check_permissions(request, "bulk_update_us_milestone", project) permissions = self.check_permissions(request, "move_uss_to_sprint", project)
services.update_userstories_milestone_in_bulk(data["bulk_stories"], milestone) services.update_userstories_milestone_in_bulk(data["bulk_stories"], milestone_result)
services.snapshot_userstories_in_bulk(data["bulk_stories"], request.user) services.snapshot_userstories_in_bulk(data["bulk_stories"], request.user)
return response.NoContent() return response.NoContent()
class MilestoneWatchersViewSet(WatchersViewSetMixin, ModelListViewSet): class MilestoneWatchersViewSet(WatchersViewSetMixin, ModelListViewSet):
permission_classes = (permissions.MilestoneWatchersPermission,) permission_classes = (permissions.MilestoneWatchersPermission,)
resource_model = models.Milestone resource_model = models.Milestone

View File

@ -34,7 +34,8 @@ class MilestonePermission(TaigaResourcePermission):
watch_perms = IsAuthenticated() & HasProjectPerm('view_milestones') watch_perms = IsAuthenticated() & HasProjectPerm('view_milestones')
unwatch_perms = IsAuthenticated() & HasProjectPerm('view_milestones') unwatch_perms = IsAuthenticated() & HasProjectPerm('view_milestones')
bulk_update_items_perms = HasProjectPerm('modify_milestone') bulk_update_items_perms = HasProjectPerm('modify_milestone')
bulk_update_us_milestone_perms = HasProjectPerm('modify_us') move_uss_to_sprint_perms = HasProjectPerm('modify_us')
class MilestoneWatchersPermission(TaigaResourcePermission): class MilestoneWatchersPermission(TaigaResourcePermission):
enought_perms = IsProjectAdmin() | IsSuperUser() enought_perms = IsProjectAdmin() | IsSuperUser()

View File

@ -69,8 +69,14 @@ def update_userstories_milestone_in_bulk(bulk_data: list, milestone: object):
content_type="userstories.userstory", content_type="userstories.userstory",
projectid=milestone.project.pk) projectid=milestone.project.pk)
db.update_attr_in_bulk_for_ids(us_milestones, "milestone_id", us_instance_list = []
model=UserStory) us_values = []
for us_id in user_story_ids:
us = UserStory.objects.get(pk=us_id)
us_instance_list.append(us)
us_values.append({'milestone_id': milestone.id})
db.update_in_bulk(us_instance_list, us_values)
db.update_attr_in_bulk_for_ids(us_orders, "sprint_order", UserStory) db.update_attr_in_bulk_for_ids(us_orders, "sprint_order", UserStory)
# Updating the milestone for the tasks # Updating the milestone for the tasks

View File

@ -53,7 +53,7 @@ class UpdateMilestoneBulkValidator(MilestoneExistsValidator,
ProjectExistsValidator, ProjectExistsValidator,
validators.Validator): validators.Validator):
project_id = serializers.IntegerField() project_id = serializers.IntegerField()
sprint_id = serializers.IntegerField() milestone_id = serializers.IntegerField()
bulk_stories = _UserStoryMilestoneBulkValidator(many=True) bulk_stories = _UserStoryMilestoneBulkValidator(many=True)
# def validate_milestone_id(self, attrs, source): # def validate_milestone_id(self, attrs, source):