detail sub attributes
All checks were successful
Build and Push Docker Image / build (push) Successful in 13s

This commit is contained in:
Corban-Lee Jones 2024-10-07 21:15:42 +01:00
parent cfd7af3087
commit 09b910454e
3 changed files with 48 additions and 4 deletions

View File

@ -172,13 +172,13 @@ class MessageStyleSerializer(DynamicModelSerializer):
def get_title_mutator_detail(self, obj: MessageStyle):
request = self.context.get("request")
if request.method == "GET":
if request and request.method == "GET":
return MessageMutatorSerializer(obj.title_mutator).data
return {}
def get_description_mutator_detail(self, obj: MessageStyle):
request = self.context.get("request")
if request.method == "GET":
if request and request.method == "GET":
return MessageMutatorSerializer(obj.description_mutator).data
return {}
@ -219,7 +219,9 @@ class SubscriptionSerializer(DynamicModelSerializer):
many=True
)
channels_detail = serializers.SerializerMethodField()
# unique_rules = UniqueContentRuleSerializ er(many=True) # TODO: solve? causes issues with submission.
filters_detail = serializers.SerializerMethodField()
message_style_detail = serializers.SerializerMethodField()
unique_rules_detail = serializers.SerializerMethodField()
class Meta:
model = Subscription
@ -236,8 +238,11 @@ class SubscriptionSerializer(DynamicModelSerializer):
"channels",
"channels_detail",
"filters",
"filters_detail",
"message_style",
"unique_rules"
"message_style_detail",
"unique_rules",
"unique_rules_detail"
)
def get_channels_detail(self, obj: Subscription):
@ -246,6 +251,24 @@ class SubscriptionSerializer(DynamicModelSerializer):
return NestedDiscordChannelSerializer(obj.channels.all(), many=True).data
return []
def get_filters_detail(self, obj: Subscription):
request = self.context.get("request")
if request.method == "GET":
return ContentFilterSerializer(obj.filters.all(), many=True).data
return []
def get_message_style_detail(self, obj: Subscription):
request = self.context.get("request")
if request.method == "GET":
return MessageStyleSerializer(obj.message_style).data
return {}
def get_unique_rules_detail(self, obj: Subscription):
request = self.context.get("request")
if request.method == "GET":
return UniqueContentRuleSerializer(obj.unique_rules.all(), many=True).data
return []
def validate(self, data):
server = data.get("server") or self.context.get("server")
if not server:

View File

@ -462,6 +462,15 @@ function renderBooleanColumn(data) {
return `<i class="bi ${iconClass}"></i>`;
}
function renderBadgeColumn(data, colour=null) {
let badge = $(`<span class="badge text-bg-secondary rounded-1 border border-1">${data}</span>`)
if (colour) {
badge[0].style.setProperty("border-color", `#${colour}`, "important");
}
return badge.prop("outerHTML");
}
function renderArrayBadgesColumn(data) {
let badges = $("<div>");

View File

@ -30,6 +30,18 @@ function initSubscriptionsModule() {
className: "text-center",
render: data => renderArrayBadgesColumn(data.map(item => "#" + item.name))
},
{
title: "Filters",
data: "filters_detail",
className: "text-center",
render: data => renderArrayBadgesColumn(data.map(item => item.name))
},
{
title: "Style",
data: "message_style_detail",
className: "text-center",
render: data => renderBadgeColumn(data.name, data.is_embed ? data.colour : null)
},
{
title: "Rules",
data: "unique_rules_detail",