From 48bc551853b8b0067cdaeef98b3e454c3249f98f Mon Sep 17 00:00:00 2001 From: Alexis Metaireau Date: Sat, 8 Oct 2011 13:22:18 +0200 Subject: Complete the REST API + Tests. Fix #27 --- budget/utils.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'budget/utils.py') diff --git a/budget/utils.py b/budget/utils.py index 88b8580..df165b5 100644 --- a/budget/utils.py +++ b/budget/utils.py @@ -17,6 +17,22 @@ def slugify(value): value = unicode(re.sub('[^\w\s-]', '', value).strip().lower()) return re.sub('[-\s]+', '-', value) + +def get_billform_for(project, set_default=True, **kwargs): + """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(**kwargs) + 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] + + if set_default and request.method == "GET": + form.set_default() + return form + class Redirect303(HTTPException, RoutingException): """Raise if the map requests a redirect. This is for example the case if `strict_slashes` are activated and an url that requires a trailing slash. @@ -39,4 +55,3 @@ def for_all_methods(decorator): setattr(cls, name, decorator(method)) return cls return decorate - -- cgit v1.1