updated models.py, web.py, main.css for undo bill delete

This commit is contained in:
rosechar 2020-04-15 00:10:14 -04:00
parent 91ef80ebb7
commit e1632af0b5
3 changed files with 33 additions and 2 deletions

View file

@ -391,6 +391,14 @@ class Bill(db.Model):
"external_link": self.external_link,
}
def to_json(self):
bill_dict = self._to_serialize
owers_list = []
for ower in bill_dict["owers"]:
owers_list.append(ower.id)
bill_dict["owers"] = owers_list
return bill_dict
def pay_each(self):
"""Compute what each share has to pay"""
if self.owers:

View file

@ -429,7 +429,6 @@ tr.payer_line .balance-name {
position: absolute;
top: 4.5rem;
width: 100%;
pointer-events: none;
}
.light {

View file

@ -27,6 +27,7 @@ from flask import (
url_for,
send_file,
send_from_directory,
Markup,
)
from flask_babel import get_locale, gettext as _
from flask_mail import Message
@ -698,10 +699,33 @@ def delete_bill(bill_id):
if not bill:
return redirect(url_for(".list_bills"))
session["recently_deleted_bill"] = bill.to_json()
db.session.delete(bill)
db.session.commit()
flash(_("The bill has been deleted"))
url = url_for(".undo_delete_bill")
alert = (
'The bill has been deleted <a class="alert-link" href="'
+ url
+ '" id="undo"> undo </a>'
)
flash(Markup(alert))
return redirect(url_for(".list_bills"))
@main.route("/<project_id>/undo")
def undo_delete_bill():
bill = Bill()
form = get_billform_for(g.project)
form.what = session["recently_deleted_bill"]["what"]
form.amount = session["recently_deleted_bill"]["amount"]
form.date = parse(session["recently_deleted_bill"]["date"])
form.payer = session["recently_deleted_bill"]["payer_id"]
form.payed_for = session["recently_deleted_bill"]["owers"]
form.external_link = session["recently_deleted_bill"]["external_link"]
db.session.add(form.fake_form(bill, g.project))
db.session.commit()
return redirect(url_for(".list_bills"))