diff --git a/apps/api/serializers.py b/apps/api/serializers.py index a3909a1..6163cc6 100644 --- a/apps/api/serializers.py +++ b/apps/api/serializers.py @@ -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: diff --git a/apps/home/static/home/js/tables.js b/apps/home/static/home/js/tables.js index a22209e..fa8e16a 100644 --- a/apps/home/static/home/js/tables.js +++ b/apps/home/static/home/js/tables.js @@ -462,6 +462,15 @@ function renderBooleanColumn(data) { return ``; } +function renderBadgeColumn(data, colour=null) { + let badge = $(`${data}`) + if (colour) { + badge[0].style.setProperty("border-color", `#${colour}`, "important"); + } + + return badge.prop("outerHTML"); +} + function renderArrayBadgesColumn(data) { let badges = $("