ФУНКЦИИ - МЕЖПРОЕКТНАЯ КОММУНИКАЦИЯ: трассировка source-target в карточке запроса
This commit is contained in:
@@ -78,6 +78,12 @@ class ExternalContourIssueSerializer(BaseSerializer):
|
||||
class ExternalContourRequestSerializer(BaseSerializer):
|
||||
issue = ExternalContourIssueSerializer(read_only=True)
|
||||
source_project_id = serializers.SerializerMethodField()
|
||||
source_project_name = serializers.SerializerMethodField()
|
||||
target_project_id = serializers.SerializerMethodField()
|
||||
target_project_name = serializers.SerializerMethodField()
|
||||
requested_by_id = serializers.SerializerMethodField()
|
||||
requested_by_name = serializers.SerializerMethodField()
|
||||
requested_at = serializers.SerializerMethodField()
|
||||
status = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
@@ -89,6 +95,12 @@ class ExternalContourRequestSerializer(BaseSerializer):
|
||||
"created_by",
|
||||
"issue",
|
||||
"source_project_id",
|
||||
"source_project_name",
|
||||
"target_project_id",
|
||||
"target_project_name",
|
||||
"requested_by_id",
|
||||
"requested_by_name",
|
||||
"requested_at",
|
||||
"status",
|
||||
]
|
||||
read_only_fields = fields
|
||||
@@ -96,6 +108,44 @@ class ExternalContourRequestSerializer(BaseSerializer):
|
||||
def get_source_project_id(self, obj):
|
||||
return obj.extra.get("source_project_id")
|
||||
|
||||
def get_source_project_name(self, obj):
|
||||
return obj.extra.get("source_project_name")
|
||||
|
||||
def get_target_project_id(self, obj):
|
||||
target_project_id = obj.extra.get("target_project_id")
|
||||
if target_project_id:
|
||||
return target_project_id
|
||||
if obj.issue and obj.issue.project_id:
|
||||
return str(obj.issue.project_id)
|
||||
return None
|
||||
|
||||
def get_target_project_name(self, obj):
|
||||
target_project_name = obj.extra.get("target_project_name")
|
||||
if target_project_name:
|
||||
return target_project_name
|
||||
if obj.issue and obj.issue.project:
|
||||
return obj.issue.project.name
|
||||
return None
|
||||
|
||||
def get_requested_by_id(self, obj):
|
||||
requested_by_id = obj.extra.get("requested_by_id")
|
||||
if requested_by_id:
|
||||
return requested_by_id
|
||||
if obj.created_by_id:
|
||||
return str(obj.created_by_id)
|
||||
return None
|
||||
|
||||
def get_requested_by_name(self, obj):
|
||||
return obj.extra.get("requested_by_name")
|
||||
|
||||
def get_requested_at(self, obj):
|
||||
requested_at = obj.extra.get("requested_at")
|
||||
if requested_at:
|
||||
return requested_at
|
||||
if obj.created_at:
|
||||
return obj.created_at.isoformat()
|
||||
return None
|
||||
|
||||
def get_status(self, obj):
|
||||
issue = obj.issue
|
||||
if issue and issue.state and issue.state.group in ["completed", "cancelled"]:
|
||||
|
||||
Reference in New Issue
Block a user