mirror of
https://github.com/spiral-project/ihatemoney.git
synced 2025-05-06 13:01:50 +02:00
initial
This commit is contained in:
parent
4f1cf71256
commit
73748255b0
12 changed files with 88 additions and 13 deletions
BIN
.DS_Store
vendored
Normal file
BIN
.DS_Store
vendored
Normal file
Binary file not shown.
2
.idea/.gitignore
vendored
Normal file
2
.idea/.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
# Default ignored files
|
||||||
|
/workspace.xml
|
12
.idea/ihatemoney.iml
Normal file
12
.idea/ihatemoney.iml
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="PYTHON_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager">
|
||||||
|
<content url="file://$MODULE_DIR$" />
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
</component>
|
||||||
|
<component name="PyDocumentationSettings">
|
||||||
|
<option name="format" value="PLAIN" />
|
||||||
|
<option name="myDocStringFormat" value="Plain" />
|
||||||
|
</component>
|
||||||
|
</module>
|
6
.idea/inspectionProfiles/profiles_settings.xml
Normal file
6
.idea/inspectionProfiles/profiles_settings.xml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<component name="InspectionProjectProfileManager">
|
||||||
|
<settings>
|
||||||
|
<option name="USE_PROJECT_PROFILE" value="false" />
|
||||||
|
<version value="1.0" />
|
||||||
|
</settings>
|
||||||
|
</component>
|
7
.idea/misc.xml
Normal file
7
.idea/misc.xml
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.8" project-jdk-type="Python SDK" />
|
||||||
|
<component name="PyCharmProfessionalAdvertiser">
|
||||||
|
<option name="shown" value="true" />
|
||||||
|
</component>
|
||||||
|
</project>
|
8
.idea/modules.xml
Normal file
8
.idea/modules.xml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/.idea/ihatemoney.iml" filepath="$PROJECT_DIR$/.idea/ihatemoney.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
6
.idea/vcs.xml
Normal file
6
.idea/vcs.xml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
|
@ -391,6 +391,14 @@ class Bill(db.Model):
|
||||||
"external_link": self.external_link,
|
"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):
|
def pay_each(self):
|
||||||
"""Compute what each share has to pay"""
|
"""Compute what each share has to pay"""
|
||||||
if self.owers:
|
if self.owers:
|
||||||
|
|
|
@ -270,6 +270,7 @@ footer .footer-left {
|
||||||
|
|
||||||
#new-bill {
|
#new-bill {
|
||||||
margin-top: 30px;
|
margin-top: 30px;
|
||||||
|
z-index:100;
|
||||||
}
|
}
|
||||||
|
|
||||||
#previous-page {
|
#previous-page {
|
||||||
|
@ -422,7 +423,6 @@ tr.payer_line .balance-name {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 4.5rem;
|
top: 4.5rem;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
pointer-events: none;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.light {
|
.light {
|
||||||
|
|
|
@ -126,7 +126,7 @@
|
||||||
|
|
||||||
<div class="messages">
|
<div class="messages">
|
||||||
{% for message in get_flashed_messages() %}
|
{% for message in get_flashed_messages() %}
|
||||||
<div class="flash alert alert-success">{{ message }}</div>
|
<div style="z-index:2;" class="alert alert-success">{{ message }}</div>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -17,6 +17,10 @@
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$('.undo').click(function(){
|
||||||
|
console.log("HI");
|
||||||
|
});
|
||||||
|
|
||||||
var highlight_owers = function(){
|
var highlight_owers = function(){
|
||||||
var ower_ids = $(this).attr("owers").split(',');
|
var ower_ids = $(this).attr("owers").split(',');
|
||||||
var payer_id = $(this).attr("payer");
|
var payer_id = $(this).attr("payer");
|
||||||
|
|
|
@ -27,6 +27,7 @@ from flask import (
|
||||||
url_for,
|
url_for,
|
||||||
send_file,
|
send_file,
|
||||||
send_from_directory,
|
send_from_directory,
|
||||||
|
Markup,
|
||||||
)
|
)
|
||||||
from flask_babel import get_locale, gettext as _
|
from flask_babel import get_locale, gettext as _
|
||||||
from flask_mail import Message
|
from flask_mail import Message
|
||||||
|
@ -691,6 +692,22 @@ def add_bill():
|
||||||
return render_template("add_bill.html", form=form)
|
return render_template("add_bill.html", form=form)
|
||||||
|
|
||||||
|
|
||||||
|
@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"))
|
||||||
|
|
||||||
|
|
||||||
@main.route("/<project_id>/delete/<int:bill_id>")
|
@main.route("/<project_id>/delete/<int:bill_id>")
|
||||||
def delete_bill(bill_id):
|
def delete_bill(bill_id):
|
||||||
# fixme: everyone is able to delete a bill
|
# fixme: everyone is able to delete a bill
|
||||||
|
@ -700,7 +717,12 @@ def delete_bill(bill_id):
|
||||||
|
|
||||||
db.session.delete(bill)
|
db.session.delete(bill)
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
flash(_("The bill has been deleted"))
|
|
||||||
|
session["test"] = bill.to_json()
|
||||||
|
|
||||||
|
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"))
|
return redirect(url_for(".list_bills"))
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue