From 67c72496c773cb8355802d4b2f34a3ff2405bda6 Mon Sep 17 00:00:00 2001 From: NarayanBavisetti Date: Mon, 11 Sep 2023 16:46:10 +0530 Subject: [PATCH 1/2] chore: changed issue priority from NULL to none --- apiserver/plane/api/views/issue.py | 8 +++---- apiserver/plane/api/views/workspace.py | 2 +- .../db/migrations/0043_auto_20230911_1044.py | 22 +++++++++++++++++ apiserver/plane/db/models/issue.py | 4 ++-- apiserver/plane/utils/issue_filters.py | 24 ++++--------------- 5 files changed, 33 insertions(+), 27 deletions(-) create mode 100644 apiserver/plane/db/migrations/0043_auto_20230911_1044.py diff --git a/apiserver/plane/api/views/issue.py b/apiserver/plane/api/views/issue.py index 334ad251499..cf4fa46d437 100644 --- a/apiserver/plane/api/views/issue.py +++ b/apiserver/plane/api/views/issue.py @@ -178,7 +178,7 @@ def list(self, request, slug, project_id): filters = issue_filters(request.query_params, "GET") # Custom ordering for priority and state - priority_order = ["urgent", "high", "medium", "low", None] + priority_order = ["urgent", "high", "medium", "low", "none"] state_order = ["backlog", "unstarted", "started", "completed", "cancelled"] order_by_param = request.GET.get("order_by", "-created_at") @@ -331,7 +331,7 @@ def get(self, request, slug): try: filters = issue_filters(request.query_params, "GET") # Custom ordering for priority and state - priority_order = ["urgent", "high", "medium", "low", None] + priority_order = ["urgent", "high", "medium", "low", "none"] state_order = ["backlog", "unstarted", "started", "completed", "cancelled"] order_by_param = request.GET.get("order_by", "-created_at") @@ -1068,7 +1068,7 @@ def list(self, request, slug, project_id): show_sub_issues = request.GET.get("show_sub_issues", "true") # Custom ordering for priority and state - priority_order = ["urgent", "high", "medium", "low", None] + priority_order = ["urgent", "high", "medium", "low", "none"] state_order = ["backlog", "unstarted", "started", "completed", "cancelled"] order_by_param = request.GET.get("order_by", "-created_at") @@ -2078,7 +2078,7 @@ def get(self, request, slug, project_id): filters = issue_filters(request.query_params, "GET") # Custom ordering for priority and state - priority_order = ["urgent", "high", "medium", "low", None] + priority_order = ["urgent", "high", "medium", "low", "none"] state_order = ["backlog", "unstarted", "started", "completed", "cancelled"] order_by_param = request.GET.get("order_by", "-created_at") diff --git a/apiserver/plane/api/views/workspace.py b/apiserver/plane/api/views/workspace.py index 2ec3f324ac0..2d1ee81328b 100644 --- a/apiserver/plane/api/views/workspace.py +++ b/apiserver/plane/api/views/workspace.py @@ -1072,7 +1072,7 @@ def get(self, request, slug, user_id): .order_by("state_group") ) - priority_order = ["urgent", "high", "medium", "low", None] + priority_order = ["urgent", "high", "medium", "low", "none"] priority_distribution = ( Issue.issue_objects.filter( diff --git a/apiserver/plane/db/migrations/0043_auto_20230911_1044.py b/apiserver/plane/db/migrations/0043_auto_20230911_1044.py new file mode 100644 index 00000000000..cb11db8f5a8 --- /dev/null +++ b/apiserver/plane/db/migrations/0043_auto_20230911_1044.py @@ -0,0 +1,22 @@ +# Generated by Django 4.2.3 on 2023-09-11 10:44 + +from django.db import migrations + +def update_issue_priority_choice(apps, schema_editor): + IssueModel = apps.get_model("db", "Issue") + updated_issues = [] + for obj in IssueModel.objects.all(): + if obj.priority is None: + obj.priority = "none" + updated_issues.append(obj) + IssueModel.objects.bulk_update(updated_issues, ["priority"], batch_size=100) + +class Migration(migrations.Migration): + + dependencies = [ + ('db', '0042_alter_analyticview_created_by_and_more'), + ] + + operations = [ + migrations.RunPython(update_issue_priority_choice), + ] diff --git a/apiserver/plane/db/models/issue.py b/apiserver/plane/db/models/issue.py index 78e95838025..dd16cd963e1 100644 --- a/apiserver/plane/db/models/issue.py +++ b/apiserver/plane/db/models/issue.py @@ -38,6 +38,7 @@ class Issue(ProjectBaseModel): ("high", "High"), ("medium", "Medium"), ("low", "Low"), + ("none", "None") ) parent = models.ForeignKey( "self", @@ -64,8 +65,7 @@ class Issue(ProjectBaseModel): max_length=30, choices=PRIORITY_CHOICES, verbose_name="Issue Priority", - null=True, - blank=True, + default="none", ) start_date = models.DateField(null=True, blank=True) target_date = models.DateField(null=True, blank=True) diff --git a/apiserver/plane/utils/issue_filters.py b/apiserver/plane/utils/issue_filters.py index 34e1e820384..226d909cd25 100644 --- a/apiserver/plane/utils/issue_filters.py +++ b/apiserver/plane/utils/issue_filters.py @@ -1,6 +1,7 @@ from django.utils.timezone import make_aware from django.utils.dateparse import parse_datetime + def filter_state(params, filter, method): if method == "GET": states = params.get("state").split(",") @@ -23,7 +24,6 @@ def filter_state_group(params, filter, method): return filter - def filter_estimate_point(params, filter, method): if method == "GET": estimate_points = params.get("estimate_point").split(",") @@ -39,25 +39,10 @@ def filter_priority(params, filter, method): if method == "GET": priorities = params.get("priority").split(",") if len(priorities) and "" not in priorities: - if len(priorities) == 1 and "null" in priorities: - filter["priority__isnull"] = True - elif len(priorities) > 1 and "null" in priorities: - filter["priority__isnull"] = True - filter["priority__in"] = [p for p in priorities if p != "null"] - else: - filter["priority__in"] = [p for p in priorities if p != "null"] - + filter["priority__in"] = priorities else: if params.get("priority", None) and len(params.get("priority")): - priorities = params.get("priority") - if len(priorities) == 1 and "null" in priorities: - filter["priority__isnull"] = True - elif len(priorities) > 1 and "null" in priorities: - filter["priority__isnull"] = True - filter["priority__in"] = [p for p in priorities if p != "null"] - else: - filter["priority__in"] = [p for p in priorities if p != "null"] - + filter["priority__in"] = params.get("priority") return filter @@ -229,7 +214,6 @@ def filter_issue_state_type(params, filter, method): return filter - def filter_project(params, filter, method): if method == "GET": projects = params.get("project").split(",") @@ -329,7 +313,7 @@ def issue_filters(query_params, method): "module": filter_module, "inbox_status": filter_inbox_status, "sub_issue": filter_sub_issue_toggle, - "subscriber": filter_subscribed_issues, + "subscriber": filter_subscribed_issues, "start_target_date": filter_start_target_date_issues, } From 5c29cc06065e58635b245e1cdf095a5b5e8755a7 Mon Sep 17 00:00:00 2001 From: NarayanBavisetti Date: Tue, 12 Sep 2023 12:32:12 +0530 Subject: [PATCH 2/2] fix: deleted the migration file --- .../db/migrations/0043_auto_20230911_1044.py | 22 ------------------- 1 file changed, 22 deletions(-) delete mode 100644 apiserver/plane/db/migrations/0043_auto_20230911_1044.py diff --git a/apiserver/plane/db/migrations/0043_auto_20230911_1044.py b/apiserver/plane/db/migrations/0043_auto_20230911_1044.py deleted file mode 100644 index cb11db8f5a8..00000000000 --- a/apiserver/plane/db/migrations/0043_auto_20230911_1044.py +++ /dev/null @@ -1,22 +0,0 @@ -# Generated by Django 4.2.3 on 2023-09-11 10:44 - -from django.db import migrations - -def update_issue_priority_choice(apps, schema_editor): - IssueModel = apps.get_model("db", "Issue") - updated_issues = [] - for obj in IssueModel.objects.all(): - if obj.priority is None: - obj.priority = "none" - updated_issues.append(obj) - IssueModel.objects.bulk_update(updated_issues, ["priority"], batch_size=100) - -class Migration(migrations.Migration): - - dependencies = [ - ('db', '0042_alter_analyticview_created_by_and_more'), - ] - - operations = [ - migrations.RunPython(update_issue_priority_choice), - ]