From cb1e93f83dce7306a5958f46d25049e13fe7c64d Mon Sep 17 00:00:00 2001 From: Dheeraj Kumar Ketireddy Date: Wed, 3 Sep 2025 18:37:56 +0530 Subject: [PATCH] [WEB-4831] schema: add rich_filters field to multiple models for enhanced filtering capabilities (#7700) * chore: add rich_filters field to multiple models for enhanced filtering capabilities * Set the default value to empty dict --- ...cleuserproperties_rich_filters_and_more.py | 43 +++++++++++++++++++ apps/api/plane/db/models/cycle.py | 1 + apps/api/plane/db/models/exporter.py | 1 + apps/api/plane/db/models/issue.py | 1 + apps/api/plane/db/models/module.py | 1 + apps/api/plane/db/models/view.py | 1 + apps/api/plane/db/models/workspace.py | 1 + 7 files changed, 49 insertions(+) create mode 100644 apps/api/plane/db/migrations/0104_cycleuserproperties_rich_filters_and_more.py diff --git a/apps/api/plane/db/migrations/0104_cycleuserproperties_rich_filters_and_more.py b/apps/api/plane/db/migrations/0104_cycleuserproperties_rich_filters_and_more.py new file mode 100644 index 000000000..6344e3165 --- /dev/null +++ b/apps/api/plane/db/migrations/0104_cycleuserproperties_rich_filters_and_more.py @@ -0,0 +1,43 @@ +# Generated by Django 4.2.22 on 2025-09-03 05:18 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('db', '0103_fileasset_asset_entity_type_idx_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='cycleuserproperties', + name='rich_filters', + field=models.JSONField(default=dict), + ), + migrations.AddField( + model_name='exporterhistory', + name='rich_filters', + field=models.JSONField(blank=True, default=dict, null=True), + ), + migrations.AddField( + model_name='issueuserproperty', + name='rich_filters', + field=models.JSONField(default=dict), + ), + migrations.AddField( + model_name='issueview', + name='rich_filters', + field=models.JSONField(default=dict), + ), + migrations.AddField( + model_name='moduleuserproperties', + name='rich_filters', + field=models.JSONField(default=dict), + ), + migrations.AddField( + model_name='workspaceuserproperties', + name='rich_filters', + field=models.JSONField(default=dict), + ), + ] diff --git a/apps/api/plane/db/models/cycle.py b/apps/api/plane/db/models/cycle.py index 26b152c6c..9e45028c5 100644 --- a/apps/api/plane/db/models/cycle.py +++ b/apps/api/plane/db/models/cycle.py @@ -139,6 +139,7 @@ class CycleUserProperties(ProjectBaseModel): filters = models.JSONField(default=get_default_filters) display_filters = models.JSONField(default=get_default_display_filters) display_properties = models.JSONField(default=get_default_display_properties) + rich_filters = models.JSONField(default=dict) class Meta: unique_together = ["cycle", "user", "deleted_at"] diff --git a/apps/api/plane/db/models/exporter.py b/apps/api/plane/db/models/exporter.py index 48d40a1aa..40c13576d 100644 --- a/apps/api/plane/db/models/exporter.py +++ b/apps/api/plane/db/models/exporter.py @@ -56,6 +56,7 @@ class ExporterHistory(BaseModel): related_name="workspace_exporters", ) filters = models.JSONField(blank=True, null=True) + rich_filters = models.JSONField(default=dict, blank=True, null=True) class Meta: verbose_name = "Exporter" diff --git a/apps/api/plane/db/models/issue.py b/apps/api/plane/db/models/issue.py index a3994d79e..b8efd6ae7 100644 --- a/apps/api/plane/db/models/issue.py +++ b/apps/api/plane/db/models/issue.py @@ -509,6 +509,7 @@ class IssueUserProperty(ProjectBaseModel): filters = models.JSONField(default=get_default_filters) display_filters = models.JSONField(default=get_default_display_filters) display_properties = models.JSONField(default=get_default_display_properties) + rich_filters = models.JSONField(default=dict) class Meta: verbose_name = "Issue User Property" diff --git a/apps/api/plane/db/models/module.py b/apps/api/plane/db/models/module.py index 6015461d5..897cf26b1 100644 --- a/apps/api/plane/db/models/module.py +++ b/apps/api/plane/db/models/module.py @@ -207,6 +207,7 @@ class ModuleUserProperties(ProjectBaseModel): filters = models.JSONField(default=get_default_filters) display_filters = models.JSONField(default=get_default_display_filters) display_properties = models.JSONField(default=get_default_display_properties) + rich_filters = models.JSONField(default=dict) class Meta: unique_together = ["module", "user", "deleted_at"] diff --git a/apps/api/plane/db/models/view.py b/apps/api/plane/db/models/view.py index c9182acce..87d22e44f 100644 --- a/apps/api/plane/db/models/view.py +++ b/apps/api/plane/db/models/view.py @@ -58,6 +58,7 @@ class IssueView(WorkspaceBaseModel): filters = models.JSONField(default=dict) display_filters = models.JSONField(default=get_default_display_filters) display_properties = models.JSONField(default=get_default_display_properties) + rich_filters = models.JSONField(default=dict) access = models.PositiveSmallIntegerField( default=1, choices=((0, "Private"), (1, "Public")) ) diff --git a/apps/api/plane/db/models/workspace.py b/apps/api/plane/db/models/workspace.py index cb176086d..75a45f72c 100644 --- a/apps/api/plane/db/models/workspace.py +++ b/apps/api/plane/db/models/workspace.py @@ -332,6 +332,7 @@ class WorkspaceUserProperties(BaseModel): filters = models.JSONField(default=get_default_filters) display_filters = models.JSONField(default=get_default_display_filters) display_properties = models.JSONField(default=get_default_display_properties) + rich_filters = models.JSONField(default=dict) class Meta: unique_together = ["workspace", "user", "deleted_at"]