Skip to content

Commit 9e7dead

Browse files
committed
Changed the notifications viewed logic of reading
1 parent 3274ef7 commit 9e7dead

File tree

2 files changed

+16
-6
lines changed

2 files changed

+16
-6
lines changed

lms/lmsdb/models.py

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -317,9 +317,6 @@ class Notification(BaseModel):
317317

318318
def read(self) -> bool:
319319
self.viewed = True
320-
mail = MailMessage.get_or_none(MailMessage.notification == self)
321-
if mail:
322-
mail.delete_instance()
323320
return bool(self.save())
324321

325322
@classmethod
@@ -398,11 +395,24 @@ def distincit_users(cls):
398395

399396
@classmethod
400397
def by_user(cls, user: User) -> Iterable['MailMessage']:
401-
return cls.select().where(cls.user == user)
398+
return (
399+
cls
400+
.select()
401+
.where(cls.user == user)
402+
.join(Notification)
403+
.where(Notification.viewed == False) # NOQA: E712
404+
)
402405

403406
@classmethod
404407
def user_messages_number(cls, user: User) -> int:
405-
return cls.select(fn.Count(cls.id)).where(cls.user == user).scalar()
408+
return (
409+
cls
410+
.select(fn.Count(cls.id))
411+
.where(cls.user == user)
412+
.join(Notification)
413+
.where(Notification.viewed == False) # NOQA: E712
414+
.scalar()
415+
)
406416

407417
@classmethod
408418
def get_instances_number(cls):

lms/utils/mail.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ def build_notification_message(mails: Iterable[MailMessage]) -> str:
9797

9898
@webscheduler.task(
9999
'interval', id='mail_notifications',
100-
hours=config.DEFAULT_DO_TASKS_EVERY_HOURS,
100+
seconds=30,
101101
)
102102
def send_all_notifications_mails():
103103
for mail_message_user in MailMessage.distincit_users():

0 commit comments

Comments
 (0)