Convert bulk update services classes to simple functions.
Because we are using python and not java ;)remotes/origin/enhancement/email-actions
parent
eac6ac05ad
commit
2ad28a56c7
|
@ -170,18 +170,17 @@ class RolesViewSet(ModelCrudViewSet):
|
||||||
filter_backends = (filters.IsProjectMemberFilterBackend,)
|
filter_backends = (filters.IsProjectMemberFilterBackend,)
|
||||||
filter_fields = ('project',)
|
filter_fields = ('project',)
|
||||||
|
|
||||||
|
|
||||||
# User Stories commin ViewSets
|
# User Stories commin ViewSets
|
||||||
|
|
||||||
class BulkUpdateOrderMixin:
|
class BulkUpdateOrderMixin(object):
|
||||||
"""
|
"""
|
||||||
This mixin need three fields in the child class:
|
This mixin need three fields in the child class:
|
||||||
|
|
||||||
- bulk_update_param: that the name of the field of the data received from
|
- bulk_update_param: that the name of the field of the data received from
|
||||||
the cliente that contains the pairs (id, order) to sort the objects.
|
the cliente that contains the pairs (id, order) to sort the objects.
|
||||||
- bulk_update_perm: that containts the codename of the permission needed to
|
- bulk_update_perm: that containts the codename of the permission needed to sort.
|
||||||
sort.
|
- bulk_update_order: method with bulk update order logic
|
||||||
- bulk_update_service: that is a object with the bulk_update_order method
|
|
||||||
for ordering the object.
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@list_route(methods=["POST"])
|
@list_route(methods=["POST"])
|
||||||
|
@ -200,10 +199,10 @@ class BulkUpdateOrderMixin:
|
||||||
if request.user != project.owner and not has_project_perm(request.user, project, self.bulk_update_perm):
|
if request.user != project.owner and not has_project_perm(request.user, project, self.bulk_update_perm):
|
||||||
raise exc.PermissionDenied(_("You don't have permisions %s.") % self.bulk_update_perm)
|
raise exc.PermissionDenied(_("You don't have permisions %s.") % self.bulk_update_perm)
|
||||||
|
|
||||||
self.bulk_update_service.bulk_update_order(project, request.user, bulk_data)
|
self.bulk_update_order(project, request.user, bulk_data)
|
||||||
|
|
||||||
return Response(data=None, status=status.HTTP_204_NO_CONTENT)
|
return Response(data=None, status=status.HTTP_204_NO_CONTENT)
|
||||||
|
|
||||||
|
|
||||||
class PointsViewSet(ModelCrudViewSet, BulkUpdateOrderMixin):
|
class PointsViewSet(ModelCrudViewSet, BulkUpdateOrderMixin):
|
||||||
model = models.Points
|
model = models.Points
|
||||||
serializer_class = serializers.PointsSerializer
|
serializer_class = serializers.PointsSerializer
|
||||||
|
@ -212,7 +211,7 @@ class PointsViewSet(ModelCrudViewSet, BulkUpdateOrderMixin):
|
||||||
filter_fields = ('project',)
|
filter_fields = ('project',)
|
||||||
bulk_update_param = "bulk_points"
|
bulk_update_param = "bulk_points"
|
||||||
bulk_update_perm = "change_points"
|
bulk_update_perm = "change_points"
|
||||||
bulk_update_service = services.PointsService()
|
bulk_update_order = services.bulk_update_points_order
|
||||||
|
|
||||||
|
|
||||||
class UserStoryStatusViewSet(ModelCrudViewSet, BulkUpdateOrderMixin):
|
class UserStoryStatusViewSet(ModelCrudViewSet, BulkUpdateOrderMixin):
|
||||||
|
@ -223,7 +222,7 @@ class UserStoryStatusViewSet(ModelCrudViewSet, BulkUpdateOrderMixin):
|
||||||
filter_fields = ('project',)
|
filter_fields = ('project',)
|
||||||
bulk_update_param = "bulk_userstory_statuses"
|
bulk_update_param = "bulk_userstory_statuses"
|
||||||
bulk_update_perm = "change_userstorystatus"
|
bulk_update_perm = "change_userstorystatus"
|
||||||
bulk_update_service = services.UserStoryStatusesService()
|
bulk_update_order = services.bulk_update_userstory_status_order
|
||||||
|
|
||||||
|
|
||||||
class TaskStatusViewSet(ModelCrudViewSet, BulkUpdateOrderMixin):
|
class TaskStatusViewSet(ModelCrudViewSet, BulkUpdateOrderMixin):
|
||||||
|
@ -234,7 +233,7 @@ class TaskStatusViewSet(ModelCrudViewSet, BulkUpdateOrderMixin):
|
||||||
filter_fields = ("project",)
|
filter_fields = ("project",)
|
||||||
bulk_update_param = "bulk_task_statuses"
|
bulk_update_param = "bulk_task_statuses"
|
||||||
bulk_update_perm = "change_taskstatus"
|
bulk_update_perm = "change_taskstatus"
|
||||||
bulk_update_service = services.TaskStatusesService()
|
bulk_update_order = services.bulk_update_task_status_order
|
||||||
|
|
||||||
|
|
||||||
class SeverityViewSet(ModelCrudViewSet, BulkUpdateOrderMixin):
|
class SeverityViewSet(ModelCrudViewSet, BulkUpdateOrderMixin):
|
||||||
|
@ -245,7 +244,7 @@ class SeverityViewSet(ModelCrudViewSet, BulkUpdateOrderMixin):
|
||||||
filter_fields = ("project",)
|
filter_fields = ("project",)
|
||||||
bulk_update_param = "bulk_severities"
|
bulk_update_param = "bulk_severities"
|
||||||
bulk_update_perm = "change_severity"
|
bulk_update_perm = "change_severity"
|
||||||
bulk_update_service = services.SeveritiesService()
|
bulk_update_order = services.bulk_update_severity_order
|
||||||
|
|
||||||
|
|
||||||
class PriorityViewSet(ModelCrudViewSet, BulkUpdateOrderMixin):
|
class PriorityViewSet(ModelCrudViewSet, BulkUpdateOrderMixin):
|
||||||
|
@ -256,7 +255,7 @@ class PriorityViewSet(ModelCrudViewSet, BulkUpdateOrderMixin):
|
||||||
filter_fields = ("project",)
|
filter_fields = ("project",)
|
||||||
bulk_update_param = "bulk_priorities"
|
bulk_update_param = "bulk_priorities"
|
||||||
bulk_update_perm = "change_priority"
|
bulk_update_perm = "change_priority"
|
||||||
bulk_update_service = services.PrioritiesService()
|
bulk_update_order = services.bulk_update_priority_order
|
||||||
|
|
||||||
|
|
||||||
class IssueTypeViewSet(ModelCrudViewSet, BulkUpdateOrderMixin):
|
class IssueTypeViewSet(ModelCrudViewSet, BulkUpdateOrderMixin):
|
||||||
|
@ -267,7 +266,7 @@ class IssueTypeViewSet(ModelCrudViewSet, BulkUpdateOrderMixin):
|
||||||
filter_fields = ("project",)
|
filter_fields = ("project",)
|
||||||
bulk_update_param = "bulk_issue_types"
|
bulk_update_param = "bulk_issue_types"
|
||||||
bulk_update_perm = "change_issuetype"
|
bulk_update_perm = "change_issuetype"
|
||||||
bulk_update_service = services.IssueTypesService()
|
bulk_update_order = services.bulk_update_issue_type_order
|
||||||
|
|
||||||
|
|
||||||
class IssueStatusViewSet(ModelCrudViewSet, BulkUpdateOrderMixin):
|
class IssueStatusViewSet(ModelCrudViewSet, BulkUpdateOrderMixin):
|
||||||
|
@ -278,7 +277,7 @@ class IssueStatusViewSet(ModelCrudViewSet, BulkUpdateOrderMixin):
|
||||||
filter_fields = ("project",)
|
filter_fields = ("project",)
|
||||||
bulk_update_param = "bulk_issue_statuses"
|
bulk_update_param = "bulk_issue_statuses"
|
||||||
bulk_update_perm = "change_issuestatus"
|
bulk_update_perm = "change_issuestatus"
|
||||||
bulk_update_service = services.IssueStatusesService()
|
bulk_update_order = services.bulk_update_issue_status_order
|
||||||
|
|
||||||
|
|
||||||
class QuestionStatusViewSet(ModelCrudViewSet, BulkUpdateOrderMixin):
|
class QuestionStatusViewSet(ModelCrudViewSet, BulkUpdateOrderMixin):
|
||||||
|
@ -289,4 +288,4 @@ class QuestionStatusViewSet(ModelCrudViewSet, BulkUpdateOrderMixin):
|
||||||
filter_fields = ("project",)
|
filter_fields = ("project",)
|
||||||
bulk_update_param = "bulk_question_statuses"
|
bulk_update_param = "bulk_question_statuses"
|
||||||
bulk_update_perm = "change_questionstatus"
|
bulk_update_perm = "change_questionstatus"
|
||||||
bulk_update_service = services.QuestionStatusesService()
|
bulk_update_order = services.bulk_update_question_status_order
|
||||||
|
|
|
@ -3,10 +3,9 @@
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
from django.db import connection
|
from django.db import connection
|
||||||
|
|
||||||
from . import models
|
|
||||||
class UserStoryStatusesService(object):
|
|
||||||
@transaction.atomic
|
@transaction.atomic
|
||||||
def bulk_update_order(self, project, user, data):
|
def bulk_update_userstory_status_order(project, user, data):
|
||||||
cursor = connection.cursor()
|
cursor = connection.cursor()
|
||||||
|
|
||||||
sql = """
|
sql = """
|
||||||
|
@ -14,7 +13,6 @@ class UserStoryStatusesService(object):
|
||||||
where projects_userstorystatus.id = $2 and
|
where projects_userstorystatus.id = $2 and
|
||||||
projects_userstorystatus.project_id = $3;
|
projects_userstorystatus.project_id = $3;
|
||||||
"""
|
"""
|
||||||
|
|
||||||
cursor.execute(sql)
|
cursor.execute(sql)
|
||||||
for id, order in data:
|
for id, order in data:
|
||||||
cursor.execute("EXECUTE bulk_update_order (%s, %s, %s);",
|
cursor.execute("EXECUTE bulk_update_order (%s, %s, %s);",
|
||||||
|
@ -22,9 +20,8 @@ class UserStoryStatusesService(object):
|
||||||
cursor.close()
|
cursor.close()
|
||||||
|
|
||||||
|
|
||||||
class PointsService(object):
|
|
||||||
@transaction.atomic
|
@transaction.atomic
|
||||||
def bulk_update_order(self, project, user, data):
|
def bulk_update_points_order(project, user, data):
|
||||||
cursor = connection.cursor()
|
cursor = connection.cursor()
|
||||||
|
|
||||||
sql = """
|
sql = """
|
||||||
|
@ -39,9 +36,9 @@ class PointsService(object):
|
||||||
(order, id, project.id))
|
(order, id, project.id))
|
||||||
cursor.close()
|
cursor.close()
|
||||||
|
|
||||||
class TaskStatusesService(object):
|
|
||||||
@transaction.atomic
|
@transaction.atomic
|
||||||
def bulk_update_order(self, project, user, data):
|
def bulk_update_task_status_order(project, user, data):
|
||||||
cursor = connection.cursor()
|
cursor = connection.cursor()
|
||||||
|
|
||||||
sql = """
|
sql = """
|
||||||
|
@ -57,9 +54,8 @@ class TaskStatusesService(object):
|
||||||
cursor.close()
|
cursor.close()
|
||||||
|
|
||||||
|
|
||||||
class IssueStatusesService(object):
|
|
||||||
@transaction.atomic
|
@transaction.atomic
|
||||||
def bulk_update_order(self, project, user, data):
|
def bulk_update_issue_status_order(project, user, data):
|
||||||
cursor = connection.cursor()
|
cursor = connection.cursor()
|
||||||
|
|
||||||
sql = """
|
sql = """
|
||||||
|
@ -75,9 +71,8 @@ class IssueStatusesService(object):
|
||||||
cursor.close()
|
cursor.close()
|
||||||
|
|
||||||
|
|
||||||
class IssueTypesService(object):
|
|
||||||
@transaction.atomic
|
@transaction.atomic
|
||||||
def bulk_update_order(self, project, user, data):
|
def bulk_update_issue_type_order(project, user, data):
|
||||||
cursor = connection.cursor()
|
cursor = connection.cursor()
|
||||||
|
|
||||||
sql = """
|
sql = """
|
||||||
|
@ -93,9 +88,8 @@ class IssueTypesService(object):
|
||||||
cursor.close()
|
cursor.close()
|
||||||
|
|
||||||
|
|
||||||
class PrioritiesService(object):
|
|
||||||
@transaction.atomic
|
@transaction.atomic
|
||||||
def bulk_update_order(self, project, user, data):
|
def bulk_update_priority_order(project, user, data):
|
||||||
cursor = connection.cursor()
|
cursor = connection.cursor()
|
||||||
|
|
||||||
sql = """
|
sql = """
|
||||||
|
@ -111,9 +105,8 @@ class PrioritiesService(object):
|
||||||
cursor.close()
|
cursor.close()
|
||||||
|
|
||||||
|
|
||||||
class SeveritiesService(object):
|
|
||||||
@transaction.atomic
|
@transaction.atomic
|
||||||
def bulk_update_order(self, project, user, data):
|
def bulk_update_severity_order(project, user, data):
|
||||||
cursor = connection.cursor()
|
cursor = connection.cursor()
|
||||||
|
|
||||||
sql = """
|
sql = """
|
||||||
|
@ -129,9 +122,8 @@ class SeveritiesService(object):
|
||||||
cursor.close()
|
cursor.close()
|
||||||
|
|
||||||
|
|
||||||
class QuestionStatusesService(object):
|
|
||||||
@transaction.atomic
|
@transaction.atomic
|
||||||
def bulk_update_order(self, project, user, data):
|
def bulk_update_question_status_order(project, user, data):
|
||||||
cursor = connection.cursor()
|
cursor = connection.cursor()
|
||||||
|
|
||||||
sql = """
|
sql = """
|
||||||
|
|
Loading…
Reference in New Issue