Minor codee improvements
parent
275ce381f9
commit
1cb9248912
|
@ -37,7 +37,7 @@ MEMBERS_PERMISSIONS = [
|
||||||
('add_milestone', _('Add milestone')),
|
('add_milestone', _('Add milestone')),
|
||||||
('modify_milestone', _('Modify milestone')),
|
('modify_milestone', _('Modify milestone')),
|
||||||
('delete_milestone', _('Delete milestone')),
|
('delete_milestone', _('Delete milestone')),
|
||||||
# US permissions
|
# Epic permissions
|
||||||
('view_epics', _('View epic')),
|
('view_epics', _('View epic')),
|
||||||
('add_epic', _('Add epic')),
|
('add_epic', _('Add epic')),
|
||||||
('modify_epic', _('Modify epic')),
|
('modify_epic', _('Modify epic')),
|
||||||
|
|
|
@ -111,16 +111,15 @@ class EpicViewSet(OCCResourceMixin, VotedResourceMixin, HistoryResourceMixin,
|
||||||
|
|
||||||
def _reorder_if_needed(self, obj, old_order_key, order_key):
|
def _reorder_if_needed(self, obj, old_order_key, order_key):
|
||||||
# Executes the extra ordering if there is a difference in the ordering keys
|
# Executes the extra ordering if there is a difference in the ordering keys
|
||||||
if old_order_key != order_key:
|
if old_order_key == order_key:
|
||||||
extra_orders = json.loads(self.request.META.get("HTTP_SET_ORDERS", "{}"))
|
return {}
|
||||||
data = [{"epic_id": obj.id, "order": getattr(obj, "epics_order")}]
|
|
||||||
for id, order in extra_orders.items():
|
|
||||||
data.append({"epic_id": int(id), "order": order})
|
|
||||||
|
|
||||||
return services.update_epics_order_in_bulk(data,
|
extra_orders = json.loads(self.request.META.get("HTTP_SET_ORDERS", "{}"))
|
||||||
"epics_order",
|
data = [{"epic_id": obj.id, "order": getattr(obj, "epics_order")}]
|
||||||
project=obj.project)
|
for id, order in extra_orders.items():
|
||||||
return {}
|
data.append({"epic_id": int(id), "order": order})
|
||||||
|
|
||||||
|
return services.update_epics_order_in_bulk(data, "epics_order", project=obj.project)
|
||||||
|
|
||||||
def post_save(self, obj, created=False):
|
def post_save(self, obj, created=False):
|
||||||
if not created:
|
if not created:
|
||||||
|
@ -205,26 +204,26 @@ class EpicViewSet(OCCResourceMixin, VotedResourceMixin, HistoryResourceMixin,
|
||||||
@list_route(methods=["POST"])
|
@list_route(methods=["POST"])
|
||||||
def bulk_create(self, request, **kwargs):
|
def bulk_create(self, request, **kwargs):
|
||||||
validator = validators.EpicsBulkValidator(data=request.DATA)
|
validator = validators.EpicsBulkValidator(data=request.DATA)
|
||||||
if validator.is_valid():
|
if not validator.is_valid():
|
||||||
data = validator.data
|
return response.BadRequest(validator.errors)
|
||||||
project = Project.objects.get(id=data["project_id"])
|
|
||||||
self.check_permissions(request, "bulk_create", project)
|
|
||||||
if project.blocked_code is not None:
|
|
||||||
raise exc.Blocked(_("Blocked element"))
|
|
||||||
|
|
||||||
epics = services.create_epics_in_bulk(
|
data = validator.data
|
||||||
data["bulk_epics"],
|
project = Project.objects.get(id=data["project_id"])
|
||||||
status_id=data.get("status_id") or project.default_epic_status_id,
|
self.check_permissions(request, "bulk_create", project)
|
||||||
project=project,
|
if project.blocked_code is not None:
|
||||||
owner=request.user,
|
raise exc.Blocked(_("Blocked element"))
|
||||||
callback=self.post_save, precall=self.pre_save)
|
|
||||||
|
|
||||||
epics = self.get_queryset().filter(id__in=[i.id for i in epics])
|
epics = services.create_epics_in_bulk(
|
||||||
epics_serialized = self.get_serializer_class()(epics, many=True)
|
data["bulk_epics"],
|
||||||
|
status_id=data.get("status_id") or project.default_epic_status_id,
|
||||||
|
project=project,
|
||||||
|
owner=request.user,
|
||||||
|
callback=self.post_save, precall=self.pre_save)
|
||||||
|
|
||||||
return response.Ok(epics_serialized.data)
|
epics = self.get_queryset().filter(id__in=[i.id for i in epics])
|
||||||
|
epics_serialized = self.get_serializer_class()(epics, many=True)
|
||||||
|
|
||||||
return response.BadRequest(validator.errors)
|
return response.Ok(epics_serialized.data)
|
||||||
|
|
||||||
|
|
||||||
class EpicRelatedUserStoryViewSet(NestedViewSetMixin, BlockedByProjectMixin, ModelCrudViewSet):
|
class EpicRelatedUserStoryViewSet(NestedViewSetMixin, BlockedByProjectMixin, ModelCrudViewSet):
|
||||||
|
@ -254,18 +253,16 @@ class EpicRelatedUserStoryViewSet(NestedViewSetMixin, BlockedByProjectMixin, Mod
|
||||||
|
|
||||||
def _reorder_if_needed(self, obj, old_order_key, order_key):
|
def _reorder_if_needed(self, obj, old_order_key, order_key):
|
||||||
# Executes the extra ordering if there is a difference in the ordering keys
|
# Executes the extra ordering if there is a difference in the ordering keys
|
||||||
if old_order_key != order_key:
|
if old_order_key == order_key:
|
||||||
extra_orders = json.loads(self.request.META.get("HTTP_SET_ORDERS", "{}"))
|
return {}
|
||||||
data = [{"us_id": obj.id, "order": getattr(obj, "order")}]
|
|
||||||
for id, order in extra_orders.items():
|
|
||||||
data.append({"epic_id": int(id), "order": order})
|
|
||||||
|
|
||||||
return services.update_epic_related_userstories_order_in_bulk(
|
extra_orders = json.loads(self.request.META.get("HTTP_SET_ORDERS", "{}"))
|
||||||
data,
|
data = [{"us_id": obj.id, "order": getattr(obj, "order")}]
|
||||||
epic=obj.epic
|
for id, order in extra_orders.items():
|
||||||
)
|
data.append({"epic_id": int(id), "order": order})
|
||||||
|
|
||||||
|
return services.update_epic_related_userstories_order_in_bulk(data, epic=obj.epic)
|
||||||
|
|
||||||
return {}
|
|
||||||
|
|
||||||
def post_save(self, obj, created=False):
|
def post_save(self, obj, created=False):
|
||||||
if not created:
|
if not created:
|
||||||
|
@ -280,27 +277,27 @@ class EpicRelatedUserStoryViewSet(NestedViewSetMixin, BlockedByProjectMixin, Mod
|
||||||
@list_route(methods=["POST"])
|
@list_route(methods=["POST"])
|
||||||
def bulk_create(self, request, **kwargs):
|
def bulk_create(self, request, **kwargs):
|
||||||
validator = validators.CrateRelatedUserStoriesBulkValidator(data=request.DATA)
|
validator = validators.CrateRelatedUserStoriesBulkValidator(data=request.DATA)
|
||||||
if validator.is_valid():
|
if not validator.is_valid():
|
||||||
data = validator.data
|
return response.BadRequest(validator.errors)
|
||||||
|
|
||||||
epic = get_object_or_404(models.Epic, id=kwargs["epic"])
|
data = validator.data
|
||||||
project = epic.project
|
|
||||||
|
|
||||||
self.check_permissions(request, 'bulk_create', project)
|
epic = get_object_or_404(models.Epic, id=kwargs["epic"])
|
||||||
if project.blocked_code is not None:
|
project = epic.project
|
||||||
raise exc.Blocked(_("Blocked element"))
|
|
||||||
|
|
||||||
services.create_related_userstories_in_bulk(
|
self.check_permissions(request, 'bulk_create', project)
|
||||||
data["userstories"],
|
if project.blocked_code is not None:
|
||||||
epic,
|
raise exc.Blocked(_("Blocked element"))
|
||||||
project=project,
|
|
||||||
owner=request.user
|
|
||||||
)
|
|
||||||
|
|
||||||
related_uss_serialized = self.get_serializer_class()(epic.relateduserstory_set.all(), many=True)
|
services.create_related_userstories_in_bulk(
|
||||||
return response.Ok(related_uss_serialized.data)
|
data["userstories"],
|
||||||
|
epic,
|
||||||
|
project=project,
|
||||||
|
owner=request.user
|
||||||
|
)
|
||||||
|
|
||||||
return response.BadRequest(validator.errors)
|
related_uss_serialized = self.get_serializer_class()(epic.relateduserstory_set.all(), many=True)
|
||||||
|
return response.Ok(related_uss_serialized.data)
|
||||||
|
|
||||||
|
|
||||||
class EpicVotersViewSet(VotersViewSetMixin, ModelListViewSet):
|
class EpicVotersViewSet(VotersViewSetMixin, ModelListViewSet):
|
||||||
|
|
Loading…
Reference in New Issue