aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexis Metaireau <alexis@notmyidea.org>2011-08-10 19:47:06 +0200
committerAlexis Metaireau <alexis@notmyidea.org>2011-08-10 19:47:06 +0200
commit065fe965a00b48706f2066bc32a84b0c29ff1962 (patch)
tree82e08773336bda17ceed837d714787228dabc30b
parent67350e7accfb0b8b0dd3b9b53bdc80b0fdbe2fd1 (diff)
downloadihatemoney-mirror-065fe965a00b48706f2066bc32a84b0c29ff1962.zip
ihatemoney-mirror-065fe965a00b48706f2066bc32a84b0c29ff1962.tar.gz
ihatemoney-mirror-065fe965a00b48706f2066bc32a84b0c29ff1962.tar.bz2
Add a set_default argument to the get_billform_for function.
-rw-r--r--budget/utils.py14
-rw-r--r--budget/web.py3
2 files changed, 12 insertions, 5 deletions
diff --git a/budget/utils.py b/budget/utils.py
index c4b1e75..77c4ad6 100644
--- a/budget/utils.py
+++ b/budget/utils.py
@@ -4,11 +4,19 @@ from flask import redirect, url_for, session, request
from models import Bill, Project
from forms import BillForm
-def get_billform_for(project):
- """Return an instance of BillForm configured for a particular project."""
+def get_billform_for(project, set_default=True):
+ """Return an instance of BillForm configured for a particular project.
+
+ :set_default: if set to True, on GET methods (usually when we want to
+ display the default form, it will call set_default on it.
+
+ """
form = BillForm()
form.payed_for.choices = form.payer.choices = [(str(m.id), m.name) for m in project.active_members]
- form.payed_for.default = [ str(m.id) for m in project.active_members]
+ form.payed_for.default = [str(m.id) for m in project.active_members]
+
+ if set_default and request.method == "GET":
+ form.set_default()
return form
def requires_auth(f):
diff --git a/budget/web.py b/budget/web.py
index 9240e9c..e952109 100644
--- a/budget/web.py
+++ b/budget/web.py
@@ -173,7 +173,6 @@ def add_bill(project):
flash("The bill has been added")
return redirect(url_for('list_bills', project_id=project.id))
- form.set_default()
return render_template("add_bill.html", form=form, project=project)
@@ -192,7 +191,7 @@ def delete_bill(project, bill_id):
@requires_auth
def edit_bill(project, bill_id):
bill = Bill.query.get_or_404(bill_id)
- form = get_billform_for(project)
+ form = get_billform_for(project, set_default=False)
if request.method == 'POST' and form.validate():
form.save(bill)
db.session.commit()