USTC-iCourse/ustc-course

关于当前 follow 机制的 bug

Closed this issue · 5 comments

reviews_to_show = Review.query.join(Notification, Review.id == Notification.ref_obj_id).filter(Notification.to_user_id == current_user.id).filter(Notification.ref_class == 'Review').order_by(Review.id.desc())

似乎是这里的逻辑 query.join(Notification, Review.id == Notification.ref_obj_id) 有一定缺陷

当前如果是对自己某条评课的回复, Notification.ref_obj_id 也是那条评课的 id, 而不是回复的 id

review.author.notify('comment', review)

所以这个对自己评论的通知也会被 filter 到,而且后面并不会被 filter 走,会导致最后渲染页面的时候出现问题

图片

如图,分页和总数统计都会出现问题

图片

应该是把这些通知都 filter 上了

可以考虑 filter 时条件改为 ref_display_class='Course'

def __init__(self, to_user, from_user, operation, ref_obj, ref_display_class=None):

仅仅评课显式指定了这一项

user.notify('review', review, ref_display_class='Course')

提交 pr 试图修复 #13

Solved in a0bcfe0

抱歉刚看到 issue,根据 Notification 来生成关注的点评确实有一些问题,后来我们改成根据当前的关注情况实时生成关注的点评了,分成关注课程的点评和关注的人写的点评。