From f155875326ff9eeaf3121edde5bc9ca13a00d4b7 Mon Sep 17 00:00:00 2001 From: NarayanBavisetti Date: Mon, 14 Oct 2024 18:33:11 +0530 Subject: [PATCH] chore: user preference migration --- ...notificationpreference_comment_and_more.py | 169 ++++++++++++++++++ apiserver/plane/db/models/deploy_board.py | 2 + apiserver/plane/db/models/notification.py | 32 +++- apiserver/plane/db/models/user.py | 5 - 4 files changed, 196 insertions(+), 12 deletions(-) create mode 100644 apiserver/plane/db/migrations/0081_remove_usernotificationpreference_comment_and_more.py diff --git a/apiserver/plane/db/migrations/0081_remove_usernotificationpreference_comment_and_more.py b/apiserver/plane/db/migrations/0081_remove_usernotificationpreference_comment_and_more.py new file mode 100644 index 0000000000..cc1e2f39ee --- /dev/null +++ b/apiserver/plane/db/migrations/0081_remove_usernotificationpreference_comment_and_more.py @@ -0,0 +1,169 @@ +# Generated by Django 4.2.15 on 2024-10-14 12:11 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('db', '0080_fileasset_draft_issue_alter_fileasset_entity_type'), + ] + + operations = [ + migrations.RenameField( + model_name="usernotificationpreference", + old_name="property_change", + new_name="email_property_change", + ), + migrations.AlterField( + model_name="usernotificationpreference", + name="email_property_change", + field=models.BooleanField(default=False), + ), + migrations.RenameField( + model_name="usernotificationpreference", + old_name="state_change", + new_name="email_state_change", + ), + migrations.AlterField( + model_name="usernotificationpreference", + name="email_state_change", + field=models.BooleanField(default=False), + ), + migrations.RenameField( + model_name="usernotificationpreference", + old_name="comment", + new_name="email_comment", + ), + migrations.AlterField( + model_name="usernotificationpreference", + name="email_comment", + field=models.BooleanField(default=False), + ), + migrations.RenameField( + model_name="usernotificationpreference", + old_name="mention", + new_name="email_mention", + ), + migrations.AlterField( + model_name="usernotificationpreference", + name="email_mention", + field=models.BooleanField(default=False), + ), + migrations.RenameField( + model_name="usernotificationpreference", + old_name="issue_completed", + new_name="email_issue_completed", + ), + migrations.AlterField( + model_name="usernotificationpreference", + name="email_issue_completed", + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name="deployboard", + name="is_disabled", + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name="usernotificationpreference", + name="email_assignee_change", + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name="usernotificationpreference", + name="email_cycle_change", + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name="usernotificationpreference", + name="email_module_change", + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name="usernotificationpreference", + name="email_priority_change", + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name="usernotificationpreference", + name="email_reactions", + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name="usernotificationpreference", + name="email_start_target_date_change", + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name="usernotificationpreference", + name="in_app_assignee_change", + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name="usernotificationpreference", + name="in_app_comment", + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name="usernotificationpreference", + name="in_app_cycle_change", + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name="usernotificationpreference", + name="in_app_issue_completed", + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name="usernotificationpreference", + name="in_app_mention", + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name="usernotificationpreference", + name="in_app_module_change", + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name="usernotificationpreference", + name="in_app_priority_change", + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name="usernotificationpreference", + name="in_app_property_change", + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name="usernotificationpreference", + name="in_app_reactions", + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name="usernotificationpreference", + name="in_app_start_target_date_change", + field=models.BooleanField(default=False), + ), + migrations.AddField( + model_name="usernotificationpreference", + name="in_app_state_change", + field=models.BooleanField(default=False), + ), + migrations.AlterField( + model_name="deployboard", + name="entity_name", + field=models.CharField( + choices=[ + ("project", "Project"), + ("issue", "Issue"), + ("module", "Module"), + ("cycle", "Task"), + ("page", "Page"), + ("view", "View"), + ("inbox", "Inbox"), + ], + max_length=30, + ), + ), + ] diff --git a/apiserver/plane/db/models/deploy_board.py b/apiserver/plane/db/models/deploy_board.py index da9476f16c..18507ae4a3 100644 --- a/apiserver/plane/db/models/deploy_board.py +++ b/apiserver/plane/db/models/deploy_board.py @@ -20,6 +20,7 @@ class DeployBoard(WorkspaceBaseModel): ("cycle", "Task"), ("page", "Page"), ("view", "View"), + ("inbox", "Inbox"), ) entity_identifier = models.UUIDField(null=True) @@ -41,6 +42,7 @@ class DeployBoard(WorkspaceBaseModel): is_votes_enabled = models.BooleanField(default=False) view_props = models.JSONField(default=dict) is_activity_enabled = models.BooleanField(default=True) + is_disabled = models.BooleanField(default=False) def __str__(self): """Return name of the deploy board""" diff --git a/apiserver/plane/db/models/notification.py b/apiserver/plane/db/models/notification.py index 33241e05d1..1cc9e561b8 100644 --- a/apiserver/plane/db/models/notification.py +++ b/apiserver/plane/db/models/notification.py @@ -6,7 +6,6 @@ from django.db import models from .base import BaseModel - class Notification(BaseModel): workspace = models.ForeignKey( "db.Workspace", related_name="notifications", on_delete=models.CASCADE @@ -90,12 +89,31 @@ class UserNotificationPreference(BaseModel): null=True, ) - # preference fields - property_change = models.BooleanField(default=True) - state_change = models.BooleanField(default=True) - comment = models.BooleanField(default=True) - mention = models.BooleanField(default=True) - issue_completed = models.BooleanField(default=True) + # email preference fields + email_property_change = models.BooleanField(default=False) + email_state_change = models.BooleanField(default=False) + email_priority_change = models.BooleanField(default=False) + email_assignee_change = models.BooleanField(default=False) + email_start_target_date_change = models.BooleanField(default=False) + email_module_change = models.BooleanField(default=False) + email_cycle_change = models.BooleanField(default=False) + email_reactions = models.BooleanField(default=False) + email_comment = models.BooleanField(default=False) + email_mention = models.BooleanField(default=False) + email_issue_completed = models.BooleanField(default=False) + + # in app preference fields + in_app_property_change = models.BooleanField(default=False) + in_app_state_change = models.BooleanField(default=False) + in_app_priority_change = models.BooleanField(default=False) + in_app_assignee_change = models.BooleanField(default=False) + in_app_start_target_date_change = models.BooleanField(default=False) + in_app_module_change = models.BooleanField(default=False) + in_app_cycle_change = models.BooleanField(default=False) + in_app_reactions = models.BooleanField(default=False) + in_app_comment = models.BooleanField(default=False) + in_app_mention = models.BooleanField(default=False) + in_app_issue_completed = models.BooleanField(default=False) class Meta: verbose_name = "UserNotificationPreference" diff --git a/apiserver/plane/db/models/user.py b/apiserver/plane/db/models/user.py index d8a25c291f..f39303aea4 100644 --- a/apiserver/plane/db/models/user.py +++ b/apiserver/plane/db/models/user.py @@ -252,9 +252,4 @@ def create_user_notification(sender, instance, created, **kwargs): UserNotificationPreference.objects.create( user=instance, - property_change=False, - state_change=False, - comment=False, - mention=False, - issue_completed=False, )