Add telegram details field (#2255)
# What this PR does ## Which issue(s) this PR fixes ## Checklist - [ ] Unit, integration, and e2e (if applicable) tests updated - [ ] Documentation added (or `pr:no public docs` PR label added if not required) - [ ] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not required)
This commit is contained in:
parent
76309292e2
commit
85beacaeb0
1 changed files with 20 additions and 1 deletions
|
|
@ -22,9 +22,11 @@ class ChannelFilterSerializer(OrderedModelSerializerMixin, EagerLoadingMixin, se
|
|||
required=False,
|
||||
)
|
||||
slack_channel = serializers.SerializerMethodField()
|
||||
# Duplicated telegram channel and telegram_channel_details field for backwards compatibility for old integration page
|
||||
telegram_channel = OrganizationFilteredPrimaryKeyRelatedField(
|
||||
queryset=TelegramToOrganizationConnector.objects, filter_field="organization", allow_null=True, required=False
|
||||
)
|
||||
telegram_channel_details = serializers.SerializerMethodField()
|
||||
order = serializers.IntegerField(required=False)
|
||||
filtering_term_as_jinja2 = serializers.SerializerMethodField()
|
||||
filtering_term = serializers.CharField(required=False, allow_null=True, allow_blank=True)
|
||||
|
|
@ -48,8 +50,13 @@ class ChannelFilterSerializer(OrderedModelSerializerMixin, EagerLoadingMixin, se
|
|||
"notify_in_telegram",
|
||||
"notification_backends",
|
||||
"filtering_term_as_jinja2",
|
||||
"telegram_channel_details",
|
||||
]
|
||||
read_only_fields = [
|
||||
"created_at",
|
||||
"is_default",
|
||||
"telegram_channel_details",
|
||||
]
|
||||
read_only_fields = ["created_at", "is_default"]
|
||||
|
||||
def validate(self, data):
|
||||
filtering_term = data.get("filtering_term")
|
||||
|
|
@ -77,6 +84,18 @@ class ChannelFilterSerializer(OrderedModelSerializerMixin, EagerLoadingMixin, se
|
|||
"id": obj.slack_channel_pk,
|
||||
}
|
||||
|
||||
def get_telegram_channel_details(self, obj) -> dict[str, any] | None:
|
||||
if obj.telegram_channel_id is None:
|
||||
return None
|
||||
try:
|
||||
telegram_channel = TelegramToOrganizationConnector.objects.get(pk=obj.telegram_channel_id)
|
||||
return {
|
||||
"display_name": telegram_channel.channel_name,
|
||||
"id": telegram_channel.channel_chat_id,
|
||||
}
|
||||
except TelegramToOrganizationConnector.DoesNotExist:
|
||||
return None
|
||||
|
||||
def validate_slack_channel(self, slack_channel_id):
|
||||
SlackChannel = apps.get_model("slack", "SlackChannel")
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue