mirror of
https://github.com/makeplane/plane
synced 2024-06-14 14:31:34 +00:00
fix: changed assignees and labels in pages and modules (#2553)
This commit is contained in:
parent
98716859d5
commit
bdbb64f385
@ -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()
|
||||||
|
@ -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(
|
||||||
|
@ -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,
|
||||||
|
Loading…
Reference in New Issue
Block a user