12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- from .dates import get_cutoff_date
- def make_read_aware(user, posts):
- if not posts:
- return
- if not hasattr(posts, '__iter__'):
- posts = [posts]
- make_read(posts)
- if user.is_anonymous:
- return
- cutoff_date = get_cutoff_date(user)
- unresolved_posts = {}
- for post in posts:
- if post.posted_on > cutoff_date:
- post.is_read = False
- post.is_new = True
- unresolved_posts[post.pk] = post
- if unresolved_posts:
- queryset = user.postread_set.filter(post__in=unresolved_posts)
- for post_id in queryset.values_list('post_id', flat=True):
- unresolved_posts[post_id].is_read = True
- unresolved_posts[post_id].is_new = False
- def make_read(posts):
- for post in posts:
- post.is_read = True
- post.is_new = False
- def save_read(user, post):
- user.postread_set.create(
- category=post.category,
- thread=post.thread,
- post=post,
- )
|