mirror of https://github.com/jumpserver/jumpserver
parent
b610d71e11
commit
5127214375
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue