12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- from rest_framework import serializers
- from django.utils.translation import gettext as _
- from misago.core.utils import format_plaintext_for_html
- from misago.users.models import Ban
- __all__ = ["BanMessageSerializer", "BanDetailsSerializer"]
- def serialize_message(message):
- if message:
- return {"plain": message, "html": format_plaintext_for_html(message)}
- else:
- return None
- class BanMessageSerializer(serializers.ModelSerializer):
- message = serializers.SerializerMethodField()
- class Meta:
- model = Ban
- fields = ["message", "expires_on"]
- def get_message(self, obj):
- if obj.user_message:
- message = obj.user_message
- elif obj.check_type == Ban.IP:
- message = _("Your IP address is banned.")
- else:
- message = _("You are banned.")
- return serialize_message(message)
- class BanDetailsSerializer(serializers.ModelSerializer):
- user_message = serializers.SerializerMethodField()
- staff_message = serializers.SerializerMethodField()
- class Meta:
- model = Ban
- fields = ["user_message", "staff_message", "expires_on"]
- def get_user_message(self, obj):
- return serialize_message(obj.user_message)
- def get_staff_message(self, obj):
- return serialize_message(obj.staff_message)
|