From: Guillaume Pellerin Date: Sun, 23 Jan 2022 23:10:57 +0000 (+0100) Subject: add CHAT_LIMIT_HOURS and limit chat queryset in time X-Git-Tag: 2.5.1~9^2 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=902948bb4ed378d4f49be279f26056728b81f558;p=teleforma.git add CHAT_LIMIT_HOURS and limit chat queryset in time --- diff --git a/app/settings.py b/app/settings.py index 7df91150..2e741da3 100644 --- a/app/settings.py +++ b/app/settings.py @@ -53,8 +53,6 @@ CHANNEL_LAYERS = { }, } -ENABLE_CHAT = True - DATABASES = { 'default': { # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. @@ -504,6 +502,9 @@ if DEBUG_TOOLBAR: USE_WEBPACK_DEV_SERVER = False WEBPACK_DEV_SERVER_URL = "http://172.24.104.152:3000/" +ENABLE_CHAT = True +CHAT_LIMIT_HOURS = 72 + ################## # LOCAL SETTINGS # diff --git a/teleforma/ws/chat.py b/teleforma/ws/chat.py index 4dfd56e9..fa909243 100644 --- a/teleforma/ws/chat.py +++ b/teleforma/ws/chat.py @@ -4,6 +4,7 @@ from teleforma.models.chat import ChatMessage from django.conf import settings from channels.generic.websocket import AsyncJsonWebsocketConsumer from channels.db import database_sync_to_async +from datetime import datetime, timedelta @log_consumer_exceptions @@ -54,8 +55,10 @@ class ChatConsumer(AsyncJsonWebsocketConsumer): @database_sync_to_async def get_messages_list(self): + limit_hours = getattr(settings, 'CHAT_LIMIT_HOURS', 72) + limit_datetime = datetime.now() - timedelta(hours=limit_hours) messages = [message.to_dict() for message in ChatMessage.objects.filter( - room_name=self.room_name).order_by('-created')[:100]] + room_name=self.room_name).filter(created__gte=limit_datetime).order_by('-created')] messages = messages[::-1] return messages