perf: merge with dev

This commit is contained in:
ibuler
2022-07-17 14:28:55 +08:00
413 changed files with 11109 additions and 10465 deletions

View File

@@ -50,6 +50,12 @@ class SiteMessageViewSet(ListModelMixin, RetrieveModelMixin, JMSGenericViewSet):
SiteMessageUtil.mark_msgs_as_read(user.id, ids)
return Response({'detail': 'ok'})
@action(methods=[PATCH], detail=False, url_path='mark-as-read-all')
def mark_as_read_all(self, request, **kwargs):
user = request.user
SiteMessageUtil.mark_msgs_as_read(user.id)
return Response({'detail': 'ok'})
@action(methods=[POST], detail=False)
def send(self, request, **kwargs):
seri = self.get_serializer(data=request.data)

View File

@@ -1,4 +1,4 @@
from django.db.models import F
from django.db.models import F, Q
from django.db import transaction
from common.utils.timezone import local_now
@@ -80,11 +80,11 @@ class SiteMessageUtil:
return site_msgs_count
@classmethod
def mark_msgs_as_read(cls, user_id, msg_ids):
site_msg_users = SiteMessageUsers.objects.filter(
user_id=user_id, sitemessage_id__in=msg_ids,
has_read=False
)
def mark_msgs_as_read(cls, user_id, msg_ids=None):
q = Q(user_id=user_id) & Q(has_read=False)
if msg_ids is not None:
q &= Q(sitemessage_id__in=msg_ids)
site_msg_users = SiteMessageUsers.objects.filter(q)
for site_msg_user in site_msg_users:
site_msg_user.has_read = True

View File

@@ -5,5 +5,5 @@ from .. import ws
app_name = 'notifications'
urlpatterns = [
path('ws/notifications/site-msg/', ws.SiteMsgWebsocket, name='site-msg-ws'),
]
path('ws/notifications/site-msg/', ws.SiteMsgWebsocket.as_asgi(), name='site-msg-ws'),
]