forums.py 714 B

1234567891011121314151617181920212223242526
  1. from misago.readtracker.dates import is_date_tracked
  2. __all__ = ['make_forums_read_aware', 'make_forums_read']
  3. def make_forums_read_aware(user, forums):
  4. if user.is_anonymous():
  5. make_forums_read(forums)
  6. return None
  7. forums_dict = {}
  8. for forum in forums:
  9. forum.is_read = not is_date_tracked(forum.last_post_on)
  10. forums_dict[forum.pk] = forum
  11. for record in user.forumread_set.filter(forum__in=forums_dict.keys()):
  12. if record.forum_id in forums_dict:
  13. forum = forums_dict[record.forum_id]
  14. forum.is_read = record.last_cleared_on >= forum.last_post_on
  15. def make_forums_read(forums):
  16. for forum in forums:
  17. forum.is_read = True