ФУНКЦИИ - МЕЖПРОЕКТНАЯ КОММУНИКАЦИЯ: интерактивные карточки и фильтры двусторонней доски внешних контуров
This commit is contained in:
@@ -44,6 +44,11 @@ class ExternalContourRequestReplySerializer(serializers.Serializer):
|
||||
class ExternalContourRequestUpdateSerializer(serializers.Serializer):
|
||||
name = serializers.CharField(max_length=255, required=False)
|
||||
description_html = serializers.CharField(required=False, allow_blank=True, allow_null=True)
|
||||
priority = serializers.ChoiceField(choices=Issue.PRIORITY_CHOICES, required=False)
|
||||
assignee_ids = serializers.ListField(child=serializers.UUIDField(), required=False)
|
||||
label_ids = serializers.ListField(child=serializers.UUIDField(), required=False)
|
||||
state_id = serializers.UUIDField(required=False)
|
||||
target_date = serializers.DateField(required=False, allow_null=True)
|
||||
|
||||
def validate(self, data):
|
||||
if not data:
|
||||
@@ -69,6 +74,7 @@ class ExternalContourTargetProjectSerializer(BaseSerializer):
|
||||
class ExternalContourTargetOptionsSerializer(serializers.Serializer):
|
||||
project = ExternalContourTargetProjectSerializer(read_only=True)
|
||||
member_ids = serializers.ListField(child=serializers.UUIDField(), read_only=True)
|
||||
states = StateLiteSerializer(many=True, read_only=True)
|
||||
labels = LabelSerializer(many=True, read_only=True)
|
||||
|
||||
|
||||
|
||||
@@ -247,11 +247,15 @@ class ExternalContourTargetOptionsEndpoint(BaseAPIView):
|
||||
)
|
||||
|
||||
labels = Label.objects.filter(project=target_project).order_by("sort_order", "name")
|
||||
states = State.objects.filter(project=target_project).exclude(group=StateGroup.TRIAGE.value).order_by(
|
||||
"sequence", "created_at"
|
||||
)
|
||||
|
||||
serializer = ExternalContourTargetOptionsSerializer(
|
||||
{
|
||||
"project": target_project,
|
||||
"member_ids": member_ids,
|
||||
"states": states,
|
||||
"labels": labels,
|
||||
}
|
||||
)
|
||||
@@ -326,10 +330,17 @@ class ExternalContourDetailEndpoint(BaseAPIView):
|
||||
|
||||
serializer = ExternalContourRequestUpdateSerializer(data=request.data)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
issue_update_data = serializer.validated_data.copy()
|
||||
assignee_ids = issue_update_data.pop("assignee_ids", None)
|
||||
label_ids = issue_update_data.pop("label_ids", None)
|
||||
if assignee_ids is not None:
|
||||
issue_update_data["assignees"] = assignee_ids
|
||||
if label_ids is not None:
|
||||
issue_update_data["labels"] = label_ids
|
||||
|
||||
issue_serializer = IssueCreateSerializer(
|
||||
issue,
|
||||
data=serializer.validated_data,
|
||||
data=issue_update_data,
|
||||
partial=True,
|
||||
context={
|
||||
"project_id": str(issue.project_id),
|
||||
|
||||
Reference in New Issue
Block a user