From c3e7cfd16ba4506dc56db780bc05fc526f119481 Mon Sep 17 00:00:00 2001 From: sriram veeraghanta Date: Fri, 12 Sep 2025 13:01:03 +0530 Subject: [PATCH] [WEB-4723] fix: disable project features on project create (#7625) * fix: disbale project features on project create * Implement migration 0105 to alter project cycle view fields to Boolean with default values * Add project view settings in workspace seed task * Add is_current_version_deprecated field to Instance model Index user_id field in Session model --------- Co-authored-by: pablohashescobar --- apps/api/plane/app/serializers/project.py | 1 - apps/api/plane/bgtasks/workspace_seed_task.py | 4 +++ .../0105_alter_project_cycle_view_and_more.py | 33 +++++++++++++++++++ apps/api/plane/db/models/project.py | 6 ++-- apps/api/plane/db/models/session.py | 2 +- ..._instance_is_current_version_deprecated.py | 18 ++++++++++ apps/api/plane/license/models/instance.py | 2 ++ 7 files changed, 61 insertions(+), 5 deletions(-) create mode 100644 apps/api/plane/db/migrations/0105_alter_project_cycle_view_and_more.py create mode 100644 apps/api/plane/license/migrations/0006_instance_is_current_version_deprecated.py diff --git a/apps/api/plane/app/serializers/project.py b/apps/api/plane/app/serializers/project.py index 1d1ea927d..76f76d0e0 100644 --- a/apps/api/plane/app/serializers/project.py +++ b/apps/api/plane/app/serializers/project.py @@ -15,7 +15,6 @@ from plane.db.models import ( ) from plane.utils.content_validator import ( validate_html_content, - validate_binary_data, ) diff --git a/apps/api/plane/bgtasks/workspace_seed_task.py b/apps/api/plane/bgtasks/workspace_seed_task.py index c2fbfb065..6fae83e41 100644 --- a/apps/api/plane/bgtasks/workspace_seed_task.py +++ b/apps/api/plane/bgtasks/workspace_seed_task.py @@ -92,6 +92,10 @@ def create_project_and_member(workspace: Workspace) -> Dict[int, uuid.UUID]: name=workspace.name, # Use workspace name identifier=project_identifier, created_by_id=workspace.created_by_id, + # Enable all views in seed data + cycle_view=True, + module_view=True, + issue_views_view=True, ) # Create project members diff --git a/apps/api/plane/db/migrations/0105_alter_project_cycle_view_and_more.py b/apps/api/plane/db/migrations/0105_alter_project_cycle_view_and_more.py new file mode 100644 index 000000000..ef477fbc1 --- /dev/null +++ b/apps/api/plane/db/migrations/0105_alter_project_cycle_view_and_more.py @@ -0,0 +1,33 @@ +# Generated by Django 4.2.22 on 2025-09-10 09:54 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("db", "0104_cycleuserproperties_rich_filters_and_more"), + ] + + operations = [ + migrations.AlterField( + model_name="project", + name="cycle_view", + field=models.BooleanField(default=False), + ), + migrations.AlterField( + model_name="project", + name="issue_views_view", + field=models.BooleanField(default=False), + ), + migrations.AlterField( + model_name="project", + name="module_view", + field=models.BooleanField(default=False), + ), + migrations.AlterField( + model_name="session", + name="user_id", + field=models.CharField(db_index=True, max_length=50, null=True), + ), + ] diff --git a/apps/api/plane/db/models/project.py b/apps/api/plane/db/models/project.py index af576be6e..81a84f1ac 100644 --- a/apps/api/plane/db/models/project.py +++ b/apps/api/plane/db/models/project.py @@ -95,9 +95,9 @@ class Project(BaseModel): ) emoji = models.CharField(max_length=255, null=True, blank=True) icon_prop = models.JSONField(null=True) - module_view = models.BooleanField(default=True) - cycle_view = models.BooleanField(default=True) - issue_views_view = models.BooleanField(default=True) + module_view = models.BooleanField(default=False) + cycle_view = models.BooleanField(default=False) + issue_views_view = models.BooleanField(default=False) page_view = models.BooleanField(default=True) intake_view = models.BooleanField(default=False) is_time_tracking_enabled = models.BooleanField(default=False) diff --git a/apps/api/plane/db/models/session.py b/apps/api/plane/db/models/session.py index 3b35ebc70..e884498bf 100644 --- a/apps/api/plane/db/models/session.py +++ b/apps/api/plane/db/models/session.py @@ -13,7 +13,7 @@ VALID_KEY_CHARS = string.ascii_lowercase + string.digits class Session(AbstractBaseSession): device_info = models.JSONField(null=True, blank=True, default=None) session_key = models.CharField(max_length=128, primary_key=True) - user_id = models.CharField(null=True, max_length=50) + user_id = models.CharField(null=True, max_length=50, db_index=True) @classmethod def get_session_store_class(cls): diff --git a/apps/api/plane/license/migrations/0006_instance_is_current_version_deprecated.py b/apps/api/plane/license/migrations/0006_instance_is_current_version_deprecated.py new file mode 100644 index 000000000..f8c2c30bc --- /dev/null +++ b/apps/api/plane/license/migrations/0006_instance_is_current_version_deprecated.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.22 on 2025-09-11 08:40 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("license", "0005_rename_product_instance_edition_and_more"), + ] + + operations = [ + migrations.AddField( + model_name="instance", + name="is_current_version_deprecated", + field=models.BooleanField(default=False), + ), + ] diff --git a/apps/api/plane/license/models/instance.py b/apps/api/plane/license/models/instance.py index 113b59ce4..0e596d8de 100644 --- a/apps/api/plane/license/models/instance.py +++ b/apps/api/plane/license/models/instance.py @@ -38,6 +38,8 @@ class Instance(BaseModel): is_signup_screen_visited = models.BooleanField(default=False) is_verified = models.BooleanField(default=False) is_test = models.BooleanField(default=False) + # field for validating if the current version is deprecated + is_current_version_deprecated = models.BooleanField(default=False) class Meta: verbose_name = "Instance"