@@ -18,6 +18,7 @@ def get_mentions(limit: int = 10, start: int = 0):
1818 message = frappe .qb .DocType ("Raven Message" )
1919 channel = frappe .qb .DocType ("Raven Channel" )
2020 channel_member = frappe .qb .DocType ("Raven Channel Member" )
21+ workspace_member = frappe .qb .DocType ("Raven Workspace Member" )
2122
2223 query = (
2324 frappe .qb .from_ (mention )
@@ -42,9 +43,11 @@ def get_mentions(limit: int = 10, start: int = 0):
4243 .on (
4344 (channel .name == channel_member .channel_id ) & (channel_member .user_id == frappe .session .user )
4445 )
46+ .left_join (workspace_member )
47+ .on ((channel .workspace == workspace_member .workspace ) & (workspace_member .user == frappe .session .user ))
4548 .where (mention .user == frappe .session .user )
4649 .where (message .owner != frappe .session .user )
47- .where (channel_member .user_id == frappe .session .user )
50+ .where (( channel_member .user_id == frappe .session .user ) | (( workspace_member . user == frappe . session . user ) & ( channel . type != "Private" )) )
4851 .orderby (message .creation , order = Order .desc )
4952 .limit (limit )
5053 .offset (start )
@@ -81,6 +84,7 @@ def get_unread_mention_count():
8184 message = frappe .qb .DocType ("Raven Message" )
8285 channel = frappe .qb .DocType ("Raven Channel" )
8386 channel_member = frappe .qb .DocType ("Raven Channel Member" )
87+ workspace_member = frappe .qb .DocType ("Raven Workspace Member" )
8488
8589 # Join mention with message and message with channel.
8690 # Only fetch count for where the user is a member of the channel
@@ -96,8 +100,10 @@ def get_unread_mention_count():
96100 .on (
97101 (channel .name == channel_member .channel_id ) & (channel_member .user_id == frappe .session .user )
98102 )
103+ .left_join (workspace_member )
104+ .on ((channel .workspace == workspace_member .workspace ) & (workspace_member .user == frappe .session .user ))
99105 .where (mention .user == frappe .session .user )
100- .where (channel_member .user_id == frappe .session .user )
106+ .where (( channel_member .user_id == frappe .session .user ) | (( workspace_member . user == frappe . session . user ) & ( channel . type != "Private" )) )
101107 .where (message .creation > last_mention_viewed_date )
102108 .where (message .owner != frappe .session .user )
103109 )
0 commit comments