def topics(): qb = QueryBuilder(request.args) qb.setSortIfNone("date") query = qb.buildTopicQuery() tmp_q = ForumTopic.query if not qb.show_discarded: tmp_q = tmp_q.filter_by(discarded=False) total = tmp_q.count() topic_count = query.count() page = get_int_or_abort(request.args.get("page"), 1) num = get_int_or_abort(request.args.get("n"), 100) if num > 100 and not current_user.rank.atLeast(UserRank.EDITOR): num = 100 query = query.paginate(page, num, True) next_url = url_for("todo.topics", page=query.next_num, query=qb.search, \ show_discarded=qb.show_discarded, n=num, sort=qb.order_by) \ if query.has_next else None prev_url = url_for("todo.topics", page=query.prev_num, query=qb.search, \ show_discarded=qb.show_discarded, n=num, sort=qb.order_by) \ if query.has_prev else None return render_template("todo/topics.html", topics=query.items, total=total, \ topic_count=topic_count, query=qb.search, show_discarded=qb.show_discarded, \ next_url=next_url, prev_url=prev_url, page=page, page_max=query.pages, \ n=num, sort_by=qb.order_by)
def list_reviews(): page = get_int_or_abort(request.args.get("page"), 1) num = min(40, get_int_or_abort(request.args.get("n"), 100)) pagination = PackageReview.query.order_by(db.desc( PackageReview.created_at)).paginate(page, num, True) return render_template("packages/reviews_list.html", pagination=pagination, reviews=pagination.items)
def audit(): page = get_int_or_abort(request.args.get("page"), 1) num = min(40, get_int_or_abort(request.args.get("n"), 100)) query = AuditLogEntry.query.order_by(db.desc(AuditLogEntry.created_at)) if "username" in request.args: user = User.query.filter_by( username=request.args.get("username")).first() if not user: abort(404) query = query.filter_by(causer=user) pagination = query.paginate(page, num, True) return render_template("admin/audit.html", log=pagination.items, pagination=pagination)
def list_all(): query = Thread.query if not Permission.SEE_THREAD.check(current_user): query = query.filter_by(private=False) pid = request.args.get("pid") if pid: pid = get_int_or_abort(pid) query = query.filter_by(package_id=pid) return render_template("threads/list.html", threads=query.all())
def versions(): protocol_version = request.args.get("protocol_version") engine_version = request.args.get("engine_version") if protocol_version or engine_version: rel = MinetestRelease.get(engine_version, get_int_or_abort(protocol_version)) if rel is None: error(404, "No releases found") return jsonify(rel.getAsDictionary()) return jsonify([rel.getAsDictionary() \ for rel in MinetestRelease.query.all() if rel.getActual() is not None])
def list_all(): query = Thread.query if not Permission.SEE_THREAD.check(current_user): query = query.filter_by(private=False) pid = request.args.get("pid") if pid: pid = get_int_or_abort(pid) query = query.filter_by(package_id=pid) query = query.filter_by(review_id=None) query = query.order_by(db.desc(Thread.created_at)) page = get_int_or_abort(request.args.get("page"), 1) num = min(40, get_int_or_abort(request.args.get("n"), 100)) pagination = query.paginate(page, num, True) return render_template("threads/list.html", pagination=pagination, threads=pagination.items)