def read_all(request): ForumRead.objects.filter(user=request.user).delete() ThreadRead.objects.filter(user=request.user).delete() now = timezone.now() bulk = [] for forum in request.acl.forums.known_forums(): new_record = ForumRead(user=request.user, forum_id=forum, updated=now, cleared=now) bulk.append(new_record) if bulk: ForumRead.objects.bulk_create(bulk) messages.success(request, _("All forums have been marked as read.")) return redirect(reverse('index'))
def __init__(self, request, forum): self.need_create = None self.need_update = None self.request = request self.forum = forum self.cutoff = timezone.now() - timedelta(days=settings.READS_TRACKER_LENGTH) if request.user.is_authenticated(): if request.user.join_date > self.cutoff: self.cutoff = request.user.join_date try: self.record = ForumRead.objects.get(user=request.user, forum=forum) if self.record.cleared > self.cutoff: self.cutoff = self.record.cleared except ForumRead.DoesNotExist: self.record = ForumRead(user=request.user, forum=forum, cleared=self.cutoff) self.threads = self.record.get_threads()