From 6ade86f89d706f804da231d360907d796839bc03 Mon Sep 17 00:00:00 2001 From: Nikhil <118773738+pablohashescobar@users.noreply.github.com> Date: Tue, 16 Jul 2024 13:51:28 +0530 Subject: [PATCH] dev: rename user display configuration model (#5119) * dev: rename model * dev: add fields to project and issue types --- apiserver/plane/api/views/project.py | 6 +-- apiserver/plane/app/serializers/__init__.py | 2 +- apiserver/plane/app/serializers/issue.py | 6 +-- apiserver/plane/app/urls/issue.py | 4 +- apiserver/plane/app/views/issue/base.py | 12 ++--- apiserver/plane/app/views/project/base.py | 6 +-- apiserver/plane/app/views/project/invite.py | 6 +-- apiserver/plane/app/views/project/member.py | 10 ++--- ...ssueproperty_issueuserproperty_and_more.py | 44 +++++++++++++++++++ apiserver/plane/db/models/__init__.py | 2 +- apiserver/plane/db/models/issue.py | 8 ++-- apiserver/plane/db/models/issue_type.py | 3 +- apiserver/plane/db/models/project.py | 1 + 13 files changed, 78 insertions(+), 32 deletions(-) create mode 100644 apiserver/plane/db/migrations/0071_rename_issueproperty_issueuserproperty_and_more.py diff --git a/apiserver/plane/api/views/project.py b/apiserver/plane/api/views/project.py index bf1109e8f..7fb53597f 100644 --- a/apiserver/plane/api/views/project.py +++ b/apiserver/plane/api/views/project.py @@ -19,7 +19,7 @@ from plane.app.permissions import ProjectBasePermission from plane.db.models import ( Cycle, Inbox, - IssueProperty, + IssueUserProperty, Module, Project, DeployBoard, @@ -165,7 +165,7 @@ class ProjectAPIEndpoint(BaseAPIView): role=20, ) # Also create the issue property for the user - _ = IssueProperty.objects.create( + _ = IssueUserProperty.objects.create( project_id=serializer.data["id"], user=request.user, ) @@ -179,7 +179,7 @@ class ProjectAPIEndpoint(BaseAPIView): role=20, ) # Also create the issue property for the user - IssueProperty.objects.create( + IssueUserProperty.objects.create( project_id=serializer.data["id"], user_id=serializer.data["project_lead"], ) diff --git a/apiserver/plane/app/serializers/__init__.py b/apiserver/plane/app/serializers/__init__.py index 04717f756..0d87acde7 100644 --- a/apiserver/plane/app/serializers/__init__.py +++ b/apiserver/plane/app/serializers/__init__.py @@ -50,7 +50,7 @@ from .issue import ( IssueCreateSerializer, IssueActivitySerializer, IssueCommentSerializer, - IssuePropertySerializer, + IssueUserPropertySerializer, IssueAssigneeSerializer, LabelSerializer, IssueSerializer, diff --git a/apiserver/plane/app/serializers/issue.py b/apiserver/plane/app/serializers/issue.py index f3988c7c3..becce6ebb 100644 --- a/apiserver/plane/app/serializers/issue.py +++ b/apiserver/plane/app/serializers/issue.py @@ -17,7 +17,7 @@ from plane.db.models import ( Issue, IssueActivity, IssueComment, - IssueProperty, + IssueUserProperty, IssueAssignee, IssueSubscriber, IssueLabel, @@ -252,9 +252,9 @@ class IssueActivitySerializer(BaseSerializer): fields = "__all__" -class IssuePropertySerializer(BaseSerializer): +class IssueUserPropertySerializer(BaseSerializer): class Meta: - model = IssueProperty + model = IssueUserProperty fields = "__all__" read_only_fields = [ "user", diff --git a/apiserver/plane/app/urls/issue.py b/apiserver/plane/app/urls/issue.py index b7a4eaa48..aa6a8e2f0 100644 --- a/apiserver/plane/app/urls/issue.py +++ b/apiserver/plane/app/urls/issue.py @@ -233,13 +233,13 @@ urlpatterns = [ name="project-issue-comment-reactions", ), ## End Comment Reactions - ## IssueProperty + ## IssueUserProperty path( "workspaces//projects//user-properties/", IssueUserDisplayPropertyEndpoint.as_view(), name="project-issue-display-properties", ), - ## IssueProperty End + ## IssueUserProperty End ## Issue Archives path( "workspaces//projects//archived-issues/", diff --git a/apiserver/plane/app/views/issue/base.py b/apiserver/plane/app/views/issue/base.py index c6bdcafe0..b9155f9d4 100644 --- a/apiserver/plane/app/views/issue/base.py +++ b/apiserver/plane/app/views/issue/base.py @@ -32,7 +32,7 @@ from plane.app.permissions import ( from plane.app.serializers import ( IssueCreateSerializer, IssueDetailSerializer, - IssuePropertySerializer, + IssueUserPropertySerializer, IssueSerializer, ) from plane.bgtasks.issue_activites_task import issue_activity @@ -40,7 +40,7 @@ from plane.db.models import ( Issue, IssueAttachment, IssueLink, - IssueProperty, + IssueUserProperty, IssueReaction, IssueSubscriber, Project, @@ -570,7 +570,7 @@ class IssueUserDisplayPropertyEndpoint(BaseAPIView): ] def patch(self, request, slug, project_id): - issue_property = IssueProperty.objects.get( + issue_property = IssueUserProperty.objects.get( user=request.user, project_id=project_id, ) @@ -585,14 +585,14 @@ class IssueUserDisplayPropertyEndpoint(BaseAPIView): "display_properties", issue_property.display_properties ) issue_property.save() - serializer = IssuePropertySerializer(issue_property) + serializer = IssueUserPropertySerializer(issue_property) return Response(serializer.data, status=status.HTTP_201_CREATED) def get(self, request, slug, project_id): - issue_property, _ = IssueProperty.objects.get_or_create( + issue_property, _ = IssueUserProperty.objects.get_or_create( user=request.user, project_id=project_id ) - serializer = IssuePropertySerializer(issue_property) + serializer = IssueUserPropertySerializer(issue_property) return Response(serializer.data, status=status.HTTP_200_OK) diff --git a/apiserver/plane/app/views/project/base.py b/apiserver/plane/app/views/project/base.py index 3d20b175d..bca8236a9 100644 --- a/apiserver/plane/app/views/project/base.py +++ b/apiserver/plane/app/views/project/base.py @@ -39,7 +39,7 @@ from plane.db.models import ( Cycle, Inbox, DeployBoard, - IssueProperty, + IssueUserProperty, Issue, Module, Project, @@ -266,7 +266,7 @@ class ProjectViewSet(BaseViewSet): role=20, ) # Also create the issue property for the user - _ = IssueProperty.objects.create( + _ = IssueUserProperty.objects.create( project_id=serializer.data["id"], user=request.user, ) @@ -280,7 +280,7 @@ class ProjectViewSet(BaseViewSet): role=20, ) # Also create the issue property for the user - IssueProperty.objects.create( + IssueUserProperty.objects.create( project_id=serializer.data["id"], user_id=serializer.data["project_lead"], ) diff --git a/apiserver/plane/app/views/project/invite.py b/apiserver/plane/app/views/project/invite.py index d199a8770..6278c5f3b 100644 --- a/apiserver/plane/app/views/project/invite.py +++ b/apiserver/plane/app/views/project/invite.py @@ -25,7 +25,7 @@ from plane.db.models import ( ProjectMemberInvite, User, WorkspaceMember, - IssueProperty, + IssueUserProperty, ) @@ -179,9 +179,9 @@ class UserProjectInvitationsViewset(BaseViewSet): ignore_conflicts=True, ) - IssueProperty.objects.bulk_create( + IssueUserProperty.objects.bulk_create( [ - IssueProperty( + IssueUserProperty( project_id=project_id, user=request.user, workspace=workspace, diff --git a/apiserver/plane/app/views/project/member.py b/apiserver/plane/app/views/project/member.py index 9ecb512d3..8c6852480 100644 --- a/apiserver/plane/app/views/project/member.py +++ b/apiserver/plane/app/views/project/member.py @@ -22,7 +22,7 @@ from plane.db.models import ( ProjectMember, Workspace, TeamMember, - IssueProperty, + IssueUserProperty, ) from plane.bgtasks.project_add_user_email_task import project_add_user_email from plane.utils.host import base_host @@ -136,7 +136,7 @@ class ProjectMemberViewSet(BaseViewSet): ) # Create a new issue property bulk_issue_props.append( - IssueProperty( + IssueUserProperty( user_id=member.get("member_id"), project_id=project_id, workspace_id=project.workspace_id, @@ -150,7 +150,7 @@ class ProjectMemberViewSet(BaseViewSet): ignore_conflicts=True, ) - _ = IssueProperty.objects.bulk_create( + _ = IssueUserProperty.objects.bulk_create( bulk_issue_props, batch_size=10, ignore_conflicts=True ) @@ -323,7 +323,7 @@ class AddTeamToProjectEndpoint(BaseAPIView): ) ) issue_props.append( - IssueProperty( + IssueUserProperty( project_id=project_id, user_id=member, workspace=workspace, @@ -335,7 +335,7 @@ class AddTeamToProjectEndpoint(BaseAPIView): project_members, batch_size=10, ignore_conflicts=True ) - _ = IssueProperty.objects.bulk_create( + _ = IssueUserProperty.objects.bulk_create( issue_props, batch_size=10, ignore_conflicts=True ) diff --git a/apiserver/plane/db/migrations/0071_rename_issueproperty_issueuserproperty_and_more.py b/apiserver/plane/db/migrations/0071_rename_issueproperty_issueuserproperty_and_more.py new file mode 100644 index 000000000..b38237243 --- /dev/null +++ b/apiserver/plane/db/migrations/0071_rename_issueproperty_issueuserproperty_and_more.py @@ -0,0 +1,44 @@ +# Generated by Django 4.2.11 on 2024-07-15 06:07 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("db", "0070_apitoken_is_service_exporterhistory_filters_and_more"), + ] + + operations = [ + migrations.RenameModel( + old_name="IssueProperty", + new_name="IssueUserProperty", + ), + migrations.AlterModelOptions( + name="issueuserproperty", + options={ + "ordering": ("-created_at",), + "verbose_name": "Issue User Property", + "verbose_name_plural": "Issue User Properties", + }, + ), + migrations.AlterModelTable( + name="issueuserproperty", + table="issue_user_properties", + ), + migrations.AddField( + model_name="issuetype", + name="is_active", + field=models.BooleanField(default=True), + ), + migrations.AddField( + model_name="project", + name="is_issue_type_enabled", + field=models.BooleanField(default=False), + ), + migrations.AlterField( + model_name="issuetype", + name="is_default", + field=models.BooleanField(default=False), + ), + ] diff --git a/apiserver/plane/db/models/__init__.py b/apiserver/plane/db/models/__init__.py index 89cc88bbd..cee0e18a2 100644 --- a/apiserver/plane/db/models/__init__.py +++ b/apiserver/plane/db/models/__init__.py @@ -29,7 +29,7 @@ from .issue import ( IssueLabel, IssueLink, IssueMention, - IssueProperty, + IssueUserProperty, IssueReaction, IssueRelation, IssueSequence, diff --git a/apiserver/plane/db/models/issue.py b/apiserver/plane/db/models/issue.py index 7892a0ef2..0c4373303 100644 --- a/apiserver/plane/db/models/issue.py +++ b/apiserver/plane/db/models/issue.py @@ -493,7 +493,7 @@ class IssueComment(ProjectBaseModel): return str(self.issue) -class IssueProperty(ProjectBaseModel): +class IssueUserProperty(ProjectBaseModel): user = models.ForeignKey( settings.AUTH_USER_MODEL, on_delete=models.CASCADE, @@ -506,9 +506,9 @@ class IssueProperty(ProjectBaseModel): ) class Meta: - verbose_name = "Issue Property" - verbose_name_plural = "Issue Properties" - db_table = "issue_properties" + verbose_name = "Issue User Property" + verbose_name_plural = "Issue User Properties" + db_table = "issue_user_properties" ordering = ("-created_at",) unique_together = ["user", "project"] diff --git a/apiserver/plane/db/models/issue_type.py b/apiserver/plane/db/models/issue_type.py index 52a750f0f..f1ea487be 100644 --- a/apiserver/plane/db/models/issue_type.py +++ b/apiserver/plane/db/models/issue_type.py @@ -10,8 +10,9 @@ class IssueType(WorkspaceBaseModel): description = models.TextField(blank=True) logo_props = models.JSONField(default=dict) sort_order = models.FloatField(default=65535) - is_default = models.BooleanField(default=True) + is_default = models.BooleanField(default=False) weight = models.PositiveIntegerField(default=0) + is_active = models.BooleanField(default=True) class Meta: unique_together = ["project", "name"] diff --git a/apiserver/plane/db/models/project.py b/apiserver/plane/db/models/project.py index a08ef2470..2957562db 100644 --- a/apiserver/plane/db/models/project.py +++ b/apiserver/plane/db/models/project.py @@ -95,6 +95,7 @@ class Project(BaseModel): page_view = models.BooleanField(default=True) inbox_view = models.BooleanField(default=False) is_time_tracking_enabled = models.BooleanField(default=False) + is_issue_type_enabled = models.BooleanField(default=False) cover_image = models.URLField(blank=True, null=True, max_length=800) estimate = models.ForeignKey( "db.Estimate",