53 lines
1.3 KiB
Python
53 lines
1.3 KiB
Python
from flask import Blueprint, render_template, redirect, request, flash, url_for
|
|
from flask_login import current_user, fresh_login_required
|
|
|
|
from bitvend import dev
|
|
from bitvend.models import db, Transaction
|
|
from bitvend.forms import ManualForm
|
|
from spaceauth import cap_required
|
|
|
|
|
|
admin_required = cap_required("staff")
|
|
bp = Blueprint("admin", __name__)
|
|
|
|
|
|
@bp.route("/manual", methods=["GET", "POST"])
|
|
@fresh_login_required
|
|
@admin_required
|
|
def manual():
|
|
form = ManualForm()
|
|
if form.validate_on_submit():
|
|
current_user.transactions.append(Transaction(amount=form.amount.data))
|
|
db.session.commit()
|
|
flash("Operation successful.", "success")
|
|
|
|
return render_template("admin/manual.html", form=form)
|
|
|
|
|
|
@bp.route("/transactions/", defaults={"page": 1})
|
|
@bp.route("/transactions/p/<int:page>")
|
|
@fresh_login_required
|
|
@admin_required
|
|
def transactions(page):
|
|
return render_template(
|
|
"admin/transactions.html", transactions=Transaction.query.paginate(page)
|
|
)
|
|
|
|
|
|
@bp.route("/begin")
|
|
@fresh_login_required
|
|
@admin_required
|
|
def begin():
|
|
dev.begin_session(500)
|
|
flash("Operation successful.", "success")
|
|
return redirect("/")
|
|
|
|
|
|
@bp.route("/cancel")
|
|
@fresh_login_required
|
|
@admin_required
|
|
def cancel():
|
|
dev.cancel_session()
|
|
flash("Operation successful.", "success")
|
|
return redirect("/")
|