UI - МЕЖПРОЕКТНАЯ КОММУНИКАЦИЯ: новый дизайн и полировка карточек внутреннего контура
This commit is contained in:
@@ -846,9 +846,13 @@ class IssueListDetailSerializer(serializers.Serializer):
|
||||
"created_at": instance.created_at,
|
||||
"updated_at": instance.updated_at,
|
||||
"created_by": instance.created_by_id,
|
||||
"created_by_avatar_url": getattr(instance, "created_by_avatar_url", None),
|
||||
"created_by_detail": UserLiteSerializer(instance.created_by).data if instance.created_by else None,
|
||||
"created_by_display_name": getattr(instance, "created_by_display_name", None),
|
||||
"updated_by": instance.updated_by_id,
|
||||
"is_draft": instance.is_draft,
|
||||
"archived_at": instance.archived_at,
|
||||
"source_project_name": getattr(instance, "source_project_name", None),
|
||||
# Computed fields
|
||||
"cycle_id": instance.cycle_id,
|
||||
"module_ids": self.get_module_ids(instance),
|
||||
|
||||
@@ -113,6 +113,18 @@ class IssueListEndpoint(BaseAPIView):
|
||||
CycleIssue.objects.filter(issue=OuterRef("id"), deleted_at__isnull=True).values("cycle_id")[:1]
|
||||
)
|
||||
)
|
||||
.annotate(
|
||||
created_by_display_name=F("created_by__display_name"),
|
||||
created_by_avatar_url=F("created_by__avatar"),
|
||||
)
|
||||
.annotate(
|
||||
source_project_name=Subquery(
|
||||
IntakeIssue.objects.filter(
|
||||
issue_id=OuterRef("id"),
|
||||
extra__bridge="external-contours",
|
||||
).values("extra__source_project_name")[:1]
|
||||
)
|
||||
)
|
||||
.annotate(
|
||||
link_count=IssueLink.objects.filter(issue=OuterRef("id"))
|
||||
.order_by()
|
||||
@@ -180,12 +192,15 @@ class IssueListEndpoint(BaseAPIView):
|
||||
"created_at",
|
||||
"updated_at",
|
||||
"created_by",
|
||||
"created_by_display_name",
|
||||
"created_by_avatar_url",
|
||||
"updated_by",
|
||||
"attachment_count",
|
||||
"link_count",
|
||||
"is_draft",
|
||||
"archived_at",
|
||||
"deleted_at",
|
||||
"source_project_name",
|
||||
)
|
||||
datetime_fields = ["created_at", "updated_at"]
|
||||
issues = user_timezone_converter(issues, datetime_fields, request.user.user_timezone)
|
||||
@@ -206,7 +221,7 @@ class IssueViewSet(BaseViewSet):
|
||||
issues = Issue.issue_objects.filter(
|
||||
project_id=self.kwargs.get("project_id"),
|
||||
workspace__slug=self.kwargs.get("slug"),
|
||||
).distinct()
|
||||
).select_related("created_by").distinct()
|
||||
|
||||
return issues
|
||||
|
||||
@@ -217,6 +232,18 @@ class IssueViewSet(BaseViewSet):
|
||||
CycleIssue.objects.filter(issue=OuterRef("id"), deleted_at__isnull=True).values("cycle_id")[:1]
|
||||
)
|
||||
)
|
||||
.annotate(
|
||||
created_by_display_name=F("created_by__display_name"),
|
||||
created_by_avatar_url=F("created_by__avatar"),
|
||||
)
|
||||
.annotate(
|
||||
source_project_name=Subquery(
|
||||
IntakeIssue.objects.filter(
|
||||
issue_id=OuterRef("id"),
|
||||
extra__bridge="external-contours",
|
||||
).values("extra__source_project_name")[:1]
|
||||
)
|
||||
)
|
||||
.annotate(
|
||||
link_count=Subquery(
|
||||
IssueLink.objects.filter(issue=OuterRef("id"))
|
||||
@@ -445,6 +472,8 @@ class IssueViewSet(BaseViewSet):
|
||||
"created_at",
|
||||
"updated_at",
|
||||
"created_by",
|
||||
"created_by_display_name",
|
||||
"created_by_avatar_url",
|
||||
"updated_by",
|
||||
"attachment_count",
|
||||
"link_count",
|
||||
|
||||
@@ -121,12 +121,15 @@ def issue_on_results(
|
||||
"created_at",
|
||||
"updated_at",
|
||||
"created_by",
|
||||
"created_by_display_name",
|
||||
"created_by_avatar_url",
|
||||
"updated_by",
|
||||
"attachment_count",
|
||||
"link_count",
|
||||
"is_draft",
|
||||
"archived_at",
|
||||
"state__group",
|
||||
"source_project_name",
|
||||
]
|
||||
|
||||
if group_by in FIELD_MAPPER:
|
||||
|
||||
Reference in New Issue
Block a user