forked from 3wordchant/capsul-flask
btcpay working! added bitpay client code to source tree to fix a bug
fixed a stripe race condition added account balance warning to account balance page
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
import re
|
||||
import sys
|
||||
from datetime import datetime
|
||||
from datetime import datetime, timedelta
|
||||
from flask import Blueprint
|
||||
from flask import flash
|
||||
from flask import current_app
|
||||
@ -15,6 +15,7 @@ from nanoid import generate
|
||||
from capsulflask.metrics import durations as metric_durations
|
||||
from capsulflask.auth import account_required
|
||||
from capsulflask.db import get_model, my_exec_info_message
|
||||
from capsulflask import cli
|
||||
|
||||
bp = Blueprint("console", __name__, url_prefix="/console")
|
||||
|
||||
@ -74,18 +75,18 @@ def detail(id):
|
||||
return abort(404, f"{id} doesn't exist.")
|
||||
|
||||
if vm['deleted']:
|
||||
return render_template("capsul-detail.html", vm=vm, delete=True, are_you_sure=True)
|
||||
return render_template("capsul-detail.html", vm=vm, delete=True, deleted=True)
|
||||
|
||||
if request.method == "POST":
|
||||
if 'are_you_sure' not in request.form or not request.form['are_you_sure']:
|
||||
|
||||
return render_template("capsul-detail.html", vm=vm, delete=True, are_you_sure=False)
|
||||
return render_template("capsul-detail.html", vm=vm, delete=True, deleted=False)
|
||||
else:
|
||||
print(f"deleting {vm['id']} per user request ({session['account']})")
|
||||
current_app.config["VIRTUALIZATION_MODEL"].destroy(email=session['account'], id=id)
|
||||
get_model().delete_vm(email=session['account'], id=id)
|
||||
|
||||
return render_template("capsul-detail.html", vm=vm, delete=True, are_you_sure=True)
|
||||
return render_template("capsul-detail.html", vm=vm, delete=True, deleted=True)
|
||||
|
||||
else:
|
||||
vm["ipv4"] = double_check_capsul_address(vm["id"], vm["ipv4"])
|
||||
@ -277,7 +278,22 @@ def get_account_balance(vms, payments, as_of):
|
||||
@account_required
|
||||
def account_balance():
|
||||
payments = get_payments()
|
||||
account_balance = get_account_balance(get_vms(), payments, datetime.utcnow())
|
||||
vms = get_vms()
|
||||
balance_1w = get_account_balance(vms, payments, datetime.utcnow() + timedelta(days=7))
|
||||
balance_1d = get_account_balance(vms, payments, datetime.utcnow() + timedelta(days=1))
|
||||
balance_now = get_account_balance(vms, payments, datetime.utcnow())
|
||||
|
||||
warning_index = -1
|
||||
warning_text = ""
|
||||
warnings = cli.get_warnings_list()
|
||||
|
||||
for i in range(0, len(warnings)):
|
||||
if warnings[i]['get_active'](balance_1w, balance_1d, balance_now):
|
||||
warning_index = i
|
||||
if warning_index > -1:
|
||||
pluralize_capsul = "s" if len(vms) > 1 else ""
|
||||
warning_id = warnings[warning_index]['id']
|
||||
warning_text = cli.get_warning_headline(warning_id, pluralize_capsul)
|
||||
|
||||
vms_billed = list()
|
||||
|
||||
@ -299,6 +315,7 @@ def account_balance():
|
||||
"account-balance.html",
|
||||
has_vms=len(vms_billed)>0,
|
||||
vms_billed=vms_billed,
|
||||
warning_text=warning_text,
|
||||
payments=list(map(
|
||||
lambda x: dict(
|
||||
dollars=x["dollars"],
|
||||
@ -308,5 +325,5 @@ def account_balance():
|
||||
payments
|
||||
)),
|
||||
has_payments=len(payments)>0,
|
||||
account_balance=format(account_balance, '.2f')
|
||||
account_balance=format(balance_now, '.2f')
|
||||
)
|
Reference in New Issue
Block a user