From bdbb64f385a99c46bc90b612bb4e6bcd13219968 Mon Sep 17 00:00:00 2001 From: Bavisetti Narayan <72156168+NarayanBavisetti@users.noreply.github.com> Date: Tue, 31 Oct 2023 13:06:57 +0530 Subject: [PATCH] fix: changed assignees and labels in pages and modules (#2553) --- apiserver/plane/api/serializers/module.py | 11 ++++++++--- apiserver/plane/api/serializers/page.py | 10 +++++++--- apiserver/plane/bgtasks/issue_activites_task.py | 10 +++++----- 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/apiserver/plane/api/serializers/module.py b/apiserver/plane/api/serializers/module.py index aaabd4ae07..9d4bfbaa9f 100644 --- a/apiserver/plane/api/serializers/module.py +++ b/apiserver/plane/api/serializers/module.py @@ -19,7 +19,7 @@ from plane.db.models import ( class ModuleWriteSerializer(BaseSerializer): - members_list = serializers.ListField( + members = serializers.ListField( child=serializers.PrimaryKeyRelatedField(queryset=User.objects.all()), write_only=True, required=False, @@ -39,6 +39,11 @@ class ModuleWriteSerializer(BaseSerializer): "created_at", "updated_at", ] + + def to_representation(self, instance): + data = super().to_representation(instance) + data['members'] = [str(member.id) for member in instance.members.all()] + return data def validate(self, data): if data.get("start_date", None) is not None and data.get("target_date", None) is not None and data.get("start_date", None) > data.get("target_date", None): @@ -46,7 +51,7 @@ class ModuleWriteSerializer(BaseSerializer): return data def create(self, validated_data): - members = validated_data.pop("members_list", None) + members = validated_data.pop("members", None) project = self.context["project"] @@ -72,7 +77,7 @@ class ModuleWriteSerializer(BaseSerializer): return module def update(self, instance, validated_data): - members = validated_data.pop("members_list", None) + members = validated_data.pop("members", None) if members is not None: ModuleMember.objects.filter(module=instance).delete() diff --git a/apiserver/plane/api/serializers/page.py b/apiserver/plane/api/serializers/page.py index 94f7836de1..abdf958cb1 100644 --- a/apiserver/plane/api/serializers/page.py +++ b/apiserver/plane/api/serializers/page.py @@ -33,7 +33,7 @@ class PageBlockLiteSerializer(BaseSerializer): class PageSerializer(BaseSerializer): is_favorite = serializers.BooleanField(read_only=True) label_details = LabelLiteSerializer(read_only=True, source="labels", many=True) - labels_list = serializers.ListField( + labels = serializers.ListField( child=serializers.PrimaryKeyRelatedField(queryset=Label.objects.all()), write_only=True, required=False, @@ -50,9 +50,13 @@ class PageSerializer(BaseSerializer): "project", "owned_by", ] + def to_representation(self, instance): + data = super().to_representation(instance) + data['labels'] = [str(label.id) for label in instance.labels.all()] + return data def create(self, validated_data): - labels = validated_data.pop("labels_list", None) + labels = validated_data.pop("labels", None) project_id = self.context["project_id"] owned_by_id = self.context["owned_by_id"] page = Page.objects.create( @@ -77,7 +81,7 @@ class PageSerializer(BaseSerializer): return page def update(self, instance, validated_data): - labels = validated_data.pop("labels_list", None) + labels = validated_data.pop("labels", None) if labels is not None: PageLabel.objects.filter(page=instance).delete() PageLabel.objects.bulk_create( diff --git a/apiserver/plane/bgtasks/issue_activites_task.py b/apiserver/plane/bgtasks/issue_activites_task.py index 1dbaf8bc95..162dccdcd9 100644 --- a/apiserver/plane/bgtasks/issue_activites_task.py +++ b/apiserver/plane/bgtasks/issue_activites_task.py @@ -82,7 +82,7 @@ def track_description( if ( last_activity is not None and last_activity.field == "description" - and actor_id == last_activity.actor_id + and actor_id == str(last_activity.actor_id) ): last_activity.created_at = timezone.now() last_activity.save(update_fields=["created_at"]) @@ -276,7 +276,7 @@ def track_labels( issue_activities, epoch, ): - requested_labels = set([str(lab) for lab in requested_data.get("labels_list", [])]) + requested_labels = set([str(lab) for lab in requested_data.get("labels", [])]) current_labels = set([str(lab) for lab in current_instance.get("labels", [])]) added_labels = requested_labels - current_labels @@ -335,7 +335,7 @@ def track_assignees( epoch, ): requested_assignees = set( - [str(asg) for asg in requested_data.get("assignees_list", [])] + [str(asg) for asg in requested_data.get("assignees", [])] ) current_assignees = set([str(asg) for asg in current_instance.get("assignees", [])]) @@ -523,8 +523,8 @@ def update_issue_activity( "description_html": track_description, "target_date": track_target_date, "start_date": track_start_date, - "labels_list": track_labels, - "assignees_list": track_assignees, + "labels": track_labels, + "assignees": track_assignees, "estimate_point": track_estimate_points, "archived_at": track_archive_at, "closed_to": track_closed_to,