def post(self, forum_id=None, slug=None): # Mark a single forum as read if forum_id is not None: forum_instance = Forum.query.filter_by(id=forum_id).first_or_404() forumsread = ForumsRead.query.filter_by( user_id=real(current_user).id, forum_id=forum_instance.id ).first() TopicsRead.query.filter_by( user_id=real(current_user).id, forum_id=forum_instance.id ).delete() if not forumsread: forumsread = ForumsRead() forumsread.user = real(current_user) forumsread.forum = forum_instance forumsread.last_read = time_utcnow() forumsread.cleared = time_utcnow() db.session.add(forumsread) db.session.commit() flash( _( "Forum %(forum)s marked as read.", forum=forum_instance.title ), "success" ) return redirect(forum_instance.url) # Mark all forums as read ForumsRead.query.filter_by(user_id=real(current_user).id).delete() TopicsRead.query.filter_by(user_id=real(current_user).id).delete() forums = Forum.query.all() forumsread_list = [] for forum_instance in forums: forumsread = ForumsRead() forumsread.user = real(current_user) forumsread.forum = forum_instance forumsread.last_read = time_utcnow() forumsread.cleared = time_utcnow() forumsread_list.append(forumsread) db.session.add_all(forumsread_list) db.session.commit() flash(_("All forums marked as read."), "success") return redirect(url_for("forum.index"))
def post(self, forum_id=None, slug=None): # Mark a single forum as read if forum_id is not None: forum_instance = Forum.query.filter_by(id=forum_id).first_or_404() forumsread = ForumsRead.query.filter_by( user_id=real(current_user).id, forum_id=forum_instance.id ).first() TopicsRead.query.filter_by( user_id=real(current_user).id, forum_id=forum_instance.id ).delete() if not forumsread: forumsread = ForumsRead() forumsread.user = real(current_user) forumsread.forum = forum_instance forumsread.last_read = time_utcnow() forumsread.cleared = time_utcnow() db.session.add(forumsread) db.session.commit() flash( _( "Forum %(forum)s marked as read.", forum=forum_instance.title ), "success" ) return redirect(forum_instance.url) # Mark all forums as read ForumsRead.query.filter_by(user_id=real(current_user).id).delete() TopicsRead.query.filter_by(user_id=real(current_user).id).delete() forums = Forum.query.all() forumsread_list = [] for forum_instance in forums: forumsread = ForumsRead() forumsread.user = real(current_user) forumsread.forum = forum_instance forumsread.last_read = time_utcnow() forumsread.cleared = time_utcnow() forumsread_list.append(forumsread) db.session.add_all(forumsread_list) db.session.commit() flash(_("All forums marked as read."), "success") return redirect(url_for("forum.index"))
def test_topic_tracker_needs_update_cleared(database, user, topic): """Tests if the topicsread needs an update if the forum has been marked as cleared. """ forumsread = ForumsRead.query.\ filter(ForumsRead.user_id == user.id, ForumsRead.forum_id == topic.forum_id).first() topicsread = TopicsRead.query.\ filter(TopicsRead.user_id == user.id, TopicsRead.topic_id == topic.id).first() with current_app.test_request_context(): assert topic.tracker_needs_update(forumsread, topicsread) # Update the tracker forumsread = ForumsRead() forumsread.user_id = user.id forumsread.forum_id = topic.forum_id forumsread.last_read = datetime.utcnow() forumsread.cleared = datetime.utcnow() forumsread.save() # Now the topic should be read assert not topic.tracker_needs_update(forumsread, topicsread)
def test_topic_tracker_needs_update_cleared(database, user, topic): """Tests if the topicsread needs an update if the forum has been marked as cleared. """ forumsread = ForumsRead.query.\ filter(ForumsRead.user_id == user.id, ForumsRead.forum_id == topic.forum_id).first() topicsread = TopicsRead.query.\ filter(TopicsRead.user_id == user.id, TopicsRead.topic_id == topic.id).first() with current_app.test_request_context(): assert topic.tracker_needs_update(forumsread, topicsread) # Update the tracker forumsread = ForumsRead() forumsread.user_id = user.id forumsread.forum_id = topic.forum_id forumsread.last_read = datetime.utcnow() forumsread.cleared = datetime.utcnow() forumsread.save() # Now the topic should be read assert not topic.tracker_needs_update(forumsread, topicsread)
def markread(forum_id=None, slug=None): if not current_user.is_authenticated(): flash("You need to be logged in for that feature.", "danger") return redirect(url_for("forum.index")) # Mark a single forum as read if forum_id: forum = Forum.query.filter_by(id=forum_id).first_or_404() forumsread = ForumsRead.query.filter_by(user_id=current_user.id, forum_id=forum.id).first() TopicsRead.query.filter_by(user_id=current_user.id, forum_id=forum.id).delete() if not forumsread: forumsread = ForumsRead() forumsread.user_id = current_user.id forumsread.forum_id = forum.id forumsread.last_read = datetime.datetime.utcnow() forumsread.cleared = datetime.datetime.utcnow() db.session.add(forumsread) db.session.commit() return redirect(forum.url) # Mark all forums as read ForumsRead.query.filter_by(user_id=current_user.id).delete() TopicsRead.query.filter_by(user_id=current_user.id).delete() forums = Forum.query.all() forumsread_list = [] for forum in forums: forumsread = ForumsRead() forumsread.user_id = current_user.id forumsread.forum_id = forum.id forumsread.last_read = datetime.datetime.utcnow() forumsread.cleared = datetime.datetime.utcnow() forumsread_list.append(forumsread) db.session.add_all(forumsread_list) db.session.commit() return redirect(url_for("forum.index"))
def markread(forum_id=None): if not current_user.is_authenticated(): flash("We do not support cookie based unread forums yet.", "danger") return redirect(url_for("forum.index")) # Mark a single forum as read if forum_id: forum = Forum.query.filter_by(id=forum_id).first_or_404() forumsread = ForumsRead.query.filter_by(forum_id=forum.id).first() TopicsRead.query.filter_by(user_id=current_user.id, forum_id=forum.id).delete() if not forumsread: forumsread = ForumsRead() forumsread.user_id = current_user.id forumsread.forum_id = forum.id forumsread.last_read = datetime.datetime.utcnow() forumsread.cleared = datetime.datetime.utcnow() db.session.add(forumsread) db.session.commit() return redirect(url_for("forum.view_forum", forum_id=forum.id)) # Mark all forums as read ForumsRead.query.filter_by(user_id=current_user.id).delete() TopicsRead.query.filter_by(user_id=current_user.id).delete() forums = Forum.query.all() for forum in forums: if forum.is_category: continue forumsread = ForumsRead() forumsread.user_id = current_user.id forumsread.forum_id = forum.id forumsread.last_read = datetime.datetime.utcnow() forumsread.cleared = datetime.datetime.utcnow() db.session.add(forumsread) db.session.commit() return redirect(url_for("forum.index"))
def markread(forum_id=None, slug=None): # Mark a single forum as read if forum_id: forum_instance = Forum.query.filter_by(id=forum_id).first_or_404() forumsread = ForumsRead.query.filter_by( user_id=current_user.id, forum_id=forum_instance.id ).first() TopicsRead.query.filter_by(user_id=current_user.id, forum_id=forum_instance.id).delete() if not forumsread: forumsread = ForumsRead() forumsread.user_id = current_user.id forumsread.forum_id = forum_instance.id forumsread.last_read = datetime.datetime.utcnow() forumsread.cleared = datetime.datetime.utcnow() db.session.add(forumsread) db.session.commit() return redirect(forum_instance.url) # Mark all forums as read ForumsRead.query.filter_by(user_id=current_user.id).delete() TopicsRead.query.filter_by(user_id=current_user.id).delete() forums = Forum.query.all() forumsread_list = [] for forum_instance in forums: forumsread = ForumsRead() forumsread.user_id = current_user.id forumsread.forum_id = forum_instance.id forumsread.last_read = datetime.datetime.utcnow() forumsread.cleared = datetime.datetime.utcnow() forumsread_list.append(forumsread) db.session.add_all(forumsread_list) db.session.commit() return redirect(url_for("forum.index"))
def markread(forum_id=None, slug=None): # Mark a single forum as read if forum_id: forum = Forum.query.filter_by(id=forum_id).first_or_404() forumsread = ForumsRead.query.filter_by(user_id=current_user.id, forum_id=forum.id).first() TopicsRead.query.filter_by(user_id=current_user.id, forum_id=forum.id).delete() if not forumsread: forumsread = ForumsRead() forumsread.user_id = current_user.id forumsread.forum_id = forum.id forumsread.last_read = datetime.datetime.utcnow() forumsread.cleared = datetime.datetime.utcnow() db.session.add(forumsread) db.session.commit() return redirect(forum.url) # Mark all forums as read ForumsRead.query.filter_by(user_id=current_user.id).delete() TopicsRead.query.filter_by(user_id=current_user.id).delete() forums = Forum.query.all() forumsread_list = [] for forum in forums: forumsread = ForumsRead() forumsread.user_id = current_user.id forumsread.forum_id = forum.id forumsread.last_read = datetime.datetime.utcnow() forumsread.cleared = datetime.datetime.utcnow() forumsread_list.append(forumsread) db.session.add_all(forumsread_list) db.session.commit() return redirect(url_for("forum.index"))