fix: changed assignees and labels in pages and modules (#2553)

This commit is contained in:
Bavisetti Narayan 2023-10-31 13:06:57 +05:30 committed by GitHub
parent 98716859d5
commit bdbb64f385
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 20 additions and 11 deletions

View File

@ -19,7 +19,7 @@ from plane.db.models import (
class ModuleWriteSerializer(BaseSerializer): class ModuleWriteSerializer(BaseSerializer):
members_list = serializers.ListField( members = serializers.ListField(
child=serializers.PrimaryKeyRelatedField(queryset=User.objects.all()), child=serializers.PrimaryKeyRelatedField(queryset=User.objects.all()),
write_only=True, write_only=True,
required=False, required=False,
@ -39,6 +39,11 @@ class ModuleWriteSerializer(BaseSerializer):
"created_at", "created_at",
"updated_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): 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): 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 return data
def create(self, validated_data): def create(self, validated_data):
members = validated_data.pop("members_list", None) members = validated_data.pop("members", None)
project = self.context["project"] project = self.context["project"]
@ -72,7 +77,7 @@ class ModuleWriteSerializer(BaseSerializer):
return module return module
def update(self, instance, validated_data): def update(self, instance, validated_data):
members = validated_data.pop("members_list", None) members = validated_data.pop("members", None)
if members is not None: if members is not None:
ModuleMember.objects.filter(module=instance).delete() ModuleMember.objects.filter(module=instance).delete()

View File

@ -33,7 +33,7 @@ class PageBlockLiteSerializer(BaseSerializer):
class PageSerializer(BaseSerializer): class PageSerializer(BaseSerializer):
is_favorite = serializers.BooleanField(read_only=True) is_favorite = serializers.BooleanField(read_only=True)
label_details = LabelLiteSerializer(read_only=True, source="labels", many=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()), child=serializers.PrimaryKeyRelatedField(queryset=Label.objects.all()),
write_only=True, write_only=True,
required=False, required=False,
@ -50,9 +50,13 @@ class PageSerializer(BaseSerializer):
"project", "project",
"owned_by", "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): def create(self, validated_data):
labels = validated_data.pop("labels_list", None) labels = validated_data.pop("labels", None)
project_id = self.context["project_id"] project_id = self.context["project_id"]
owned_by_id = self.context["owned_by_id"] owned_by_id = self.context["owned_by_id"]
page = Page.objects.create( page = Page.objects.create(
@ -77,7 +81,7 @@ class PageSerializer(BaseSerializer):
return page return page
def update(self, instance, validated_data): def update(self, instance, validated_data):
labels = validated_data.pop("labels_list", None) labels = validated_data.pop("labels", None)
if labels is not None: if labels is not None:
PageLabel.objects.filter(page=instance).delete() PageLabel.objects.filter(page=instance).delete()
PageLabel.objects.bulk_create( PageLabel.objects.bulk_create(

View File

@ -82,7 +82,7 @@ def track_description(
if ( if (
last_activity is not None last_activity is not None
and last_activity.field == "description" 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.created_at = timezone.now()
last_activity.save(update_fields=["created_at"]) last_activity.save(update_fields=["created_at"])
@ -276,7 +276,7 @@ def track_labels(
issue_activities, issue_activities,
epoch, 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", [])]) current_labels = set([str(lab) for lab in current_instance.get("labels", [])])
added_labels = requested_labels - current_labels added_labels = requested_labels - current_labels
@ -335,7 +335,7 @@ def track_assignees(
epoch, epoch,
): ):
requested_assignees = set( 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", [])]) current_assignees = set([str(asg) for asg in current_instance.get("assignees", [])])
@ -523,8 +523,8 @@ def update_issue_activity(
"description_html": track_description, "description_html": track_description,
"target_date": track_target_date, "target_date": track_target_date,
"start_date": track_start_date, "start_date": track_start_date,
"labels_list": track_labels, "labels": track_labels,
"assignees_list": track_assignees, "assignees": track_assignees,
"estimate_point": track_estimate_points, "estimate_point": track_estimate_points,
"archived_at": track_archive_at, "archived_at": track_archive_at,
"closed_to": track_closed_to, "closed_to": track_closed_to,