Add chat settings modal & reply previews
Introduce a full ChatSettingsModal component for managing group chats (rename/icon upload, add/remove members, toggle moderators, leave/delete) and wire it into ChatRoomPage with a settings button. Add reply preview support end-to-end: new ReplyToSerializer and members_detail in backend serializers, updated frontend Message model (reply_to now contains preview object), and UI changes to Message to render reply excerpts. Improve socket handling to attach reply previews when available. Tweak backend Dockerfile to optionally install Windows/corporate CA bundle only if present and move pip install after copying source. Add Czech translations and small tooling/.claude config enhancements.
This commit is contained in:
@@ -40,8 +40,18 @@ class MessageHistorySerializer(serializers.ModelSerializer):
|
||||
read_only_fields = ['archived_at']
|
||||
|
||||
|
||||
class ReplyToSerializer(serializers.ModelSerializer):
|
||||
sender = MessageSenderSerializer(read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = Message
|
||||
fields = ['id', 'content', 'sender']
|
||||
read_only_fields = ['id', 'content', 'sender']
|
||||
|
||||
|
||||
class MessageSerializer(serializers.ModelSerializer):
|
||||
sender = MessageSenderSerializer(read_only=True)
|
||||
reply_to = ReplyToSerializer(read_only=True)
|
||||
media_files = MessageFileSerializer(many=True, read_only=True)
|
||||
reactions = MessageReactionSerializer(many=True, read_only=True)
|
||||
|
||||
@@ -79,6 +89,7 @@ class MessageSendSerializer(serializers.Serializer):
|
||||
|
||||
class ChatSerializer(serializers.ModelSerializer):
|
||||
unread_count = serializers.SerializerMethodField(read_only=True)
|
||||
members_detail = MessageSenderSerializer(source='members', many=True, read_only=True)
|
||||
|
||||
@extend_schema_field(serializers.IntegerField())
|
||||
def get_unread_count(self, obj):
|
||||
@@ -98,8 +109,9 @@ class ChatSerializer(serializers.ModelSerializer):
|
||||
'id', 'chat_type', 'owner', 'name',
|
||||
'icon', 'banner', 'members', 'moderators',
|
||||
'hub', 'created_at', 'updated_at', 'unread_count',
|
||||
'members_detail',
|
||||
]
|
||||
read_only_fields = ['owner', 'created_at', 'updated_at', 'unread_count']
|
||||
read_only_fields = ['owner', 'created_at', 'updated_at', 'unread_count', 'members_detail']
|
||||
|
||||
|
||||
class ChatMemberSerializer(serializers.Serializer):
|
||||
|
||||
Reference in New Issue
Block a user