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')), ('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')),

View File

@ -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):