Minor codee improvements

remotes/origin/issue/4795/notification_even_they_are_disabled
David Barragán Merino 2016-08-19 09:59:41 +02:00
parent 275ce381f9
commit 1cb9248912
2 changed files with 49 additions and 52 deletions

View File

@ -37,7 +37,7 @@ MEMBERS_PERMISSIONS = [
('add_milestone', _('Add milestone')),
('modify_milestone', _('Modify milestone')),
('delete_milestone', _('Delete milestone')),
# US permissions
# Epic permissions
('view_epics', _('View epic')),
('add_epic', _('Add epic')),
('modify_epic', _('Modify epic')),

View File

@ -111,16 +111,15 @@ class EpicViewSet(OCCResourceMixin, VotedResourceMixin, HistoryResourceMixin,
def _reorder_if_needed(self, obj, old_order_key, order_key):
# Executes the extra ordering if there is a difference in the ordering keys
if old_order_key != order_key:
extra_orders = json.loads(self.request.META.get("HTTP_SET_ORDERS", "{}"))
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})
if old_order_key == order_key:
return {}
return services.update_epics_order_in_bulk(data,
"epics_order",
project=obj.project)
return {}
extra_orders = json.loads(self.request.META.get("HTTP_SET_ORDERS", "{}"))
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, "epics_order", project=obj.project)
def post_save(self, obj, created=False):
if not created:
@ -205,26 +204,26 @@ class EpicViewSet(OCCResourceMixin, VotedResourceMixin, HistoryResourceMixin,
@list_route(methods=["POST"])
def bulk_create(self, request, **kwargs):
validator = validators.EpicsBulkValidator(data=request.DATA)
if validator.is_valid():
data = validator.data
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"))
if not validator.is_valid():
return response.BadRequest(validator.errors)
epics = services.create_epics_in_bulk(
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)
data = validator.data
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 = self.get_queryset().filter(id__in=[i.id for i in epics])
epics_serialized = self.get_serializer_class()(epics, many=True)
epics = services.create_epics_in_bulk(
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):
@ -254,18 +253,16 @@ class EpicRelatedUserStoryViewSet(NestedViewSetMixin, BlockedByProjectMixin, Mod
def _reorder_if_needed(self, obj, old_order_key, order_key):
# Executes the extra ordering if there is a difference in the ordering keys
if old_order_key != order_key:
extra_orders = json.loads(self.request.META.get("HTTP_SET_ORDERS", "{}"))
data = [{"us_id": obj.id, "order": getattr(obj, "order")}]
for id, order in extra_orders.items():
data.append({"epic_id": int(id), "order": order})
if old_order_key == order_key:
return {}
return services.update_epic_related_userstories_order_in_bulk(
data,
epic=obj.epic
)
extra_orders = json.loads(self.request.META.get("HTTP_SET_ORDERS", "{}"))
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(data, epic=obj.epic)
return {}
def post_save(self, obj, created=False):
if not created:
@ -280,27 +277,27 @@ class EpicRelatedUserStoryViewSet(NestedViewSetMixin, BlockedByProjectMixin, Mod
@list_route(methods=["POST"])
def bulk_create(self, request, **kwargs):
validator = validators.CrateRelatedUserStoriesBulkValidator(data=request.DATA)
if validator.is_valid():
data = validator.data
if not validator.is_valid():
return response.BadRequest(validator.errors)
epic = get_object_or_404(models.Epic, id=kwargs["epic"])
project = epic.project
data = validator.data
self.check_permissions(request, 'bulk_create', project)
if project.blocked_code is not None:
raise exc.Blocked(_("Blocked element"))
epic = get_object_or_404(models.Epic, id=kwargs["epic"])
project = epic.project
services.create_related_userstories_in_bulk(
data["userstories"],
epic,
project=project,
owner=request.user
)
self.check_permissions(request, 'bulk_create', project)
if project.blocked_code is not None:
raise exc.Blocked(_("Blocked element"))
related_uss_serialized = self.get_serializer_class()(epic.relateduserstory_set.all(), many=True)
return response.Ok(related_uss_serialized.data)
services.create_related_userstories_in_bulk(
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):