bitvend/bitvend/admin.py

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('/')