UI - МЕЖПРОЕКТНАЯ КОММУНИКАЦИЯ: трехсекционная шкала прогресса чекеров

This commit is contained in:
DCCONSTRUCTIONS
2026-04-29 18:19:00 +03:00
parent 5f9d9c418e
commit aa348d5d64
9 changed files with 189 additions and 6 deletions
@@ -11,6 +11,7 @@ from .state import StateLiteSerializer
from .user import UserLiteSerializer
from plane.app.serializers.issue import LabelSerializer
from plane.db.models import FileAsset, IntakeIssue, Issue, IssueActivity, IssueComment, Label, Notification, Project
from plane.utils.issue_checker_progress import build_issue_checker_progress
class ExternalContourIssuePayloadSerializer(serializers.Serializer):
@@ -86,6 +87,9 @@ class ExternalContourIssueSerializer(BaseSerializer):
label_ids = serializers.SerializerMethodField()
project_detail = ProjectLiteSerializer(source="project", read_only=True)
state_detail = StateLiteSerializer(source="state", read_only=True)
checker_blocks_count = serializers.SerializerMethodField()
checker_items_count = serializers.SerializerMethodField()
checker_items_completed_count = serializers.SerializerMethodField()
class Meta:
model = Issue
@@ -105,6 +109,9 @@ class ExternalContourIssueSerializer(BaseSerializer):
"label_details",
"assignee_ids",
"assignee_details",
"checker_blocks_count",
"checker_items_count",
"checker_items_completed_count",
"state_detail",
"project_detail",
"created_by_detail",
@@ -126,6 +133,15 @@ class ExternalContourIssueSerializer(BaseSerializer):
for label_bridge in obj.label_issue.all()
]
def get_checker_blocks_count(self, obj):
return build_issue_checker_progress(obj.detail_layout).get("checker_blocks_count", 0)
def get_checker_items_count(self, obj):
return build_issue_checker_progress(obj.detail_layout).get("checker_items_count", 0)
def get_checker_items_completed_count(self, obj):
return build_issue_checker_progress(obj.detail_layout).get("checker_items_completed_count", 0)
class ExternalContourMirroredAttachmentSerializer(BaseSerializer):
uploaded_by = serializers.SerializerMethodField()