From: Evan Broder Date: Sun, 13 Jul 2008 14:57:40 +0000 (+0000) Subject: Create controller for entering expenditures X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=commitdiff_plain;ds=sidebyside;h=9c702e4826bdb9e540f8768e8d96c3b874b84eae;hp=33697bec0d533206e83222411cbf866ad6cdaff2;p=bluechips.git Create controller for entering expenditures --- diff --git a/bluechips/controllers/spend.py b/bluechips/controllers/spend.py new file mode 100644 index 0000000..481bcc0 --- /dev/null +++ b/bluechips/controllers/spend.py @@ -0,0 +1,14 @@ +""" +Handle expenditures +""" + +import logging + +from bluechips.lib.base import * +from bluechips.widgets import spend + +log = logging.getLogger(__name__) + +class SpendController(BaseController): + def index(self): + return render('/spend/index.mako') diff --git a/bluechips/templates/spend/index.mako b/bluechips/templates/spend/index.mako new file mode 100644 index 0000000..390199d --- /dev/null +++ b/bluechips/templates/spend/index.mako @@ -0,0 +1,7 @@ +<%inherit file="/base.mako"/> + +<%def name="title()">${parent.title()} :: Add a New Expenditure + +<%namespace name="forms" module="bluechips.widgets.spend" /> + +${forms.new_spend_form(action=h.url_for(action='new'))} diff --git a/bluechips/tests/functional/test_spend.py b/bluechips/tests/functional/test_spend.py new file mode 100644 index 0000000..2b6603a --- /dev/null +++ b/bluechips/tests/functional/test_spend.py @@ -0,0 +1,7 @@ +from bluechips.tests import * + +class TestSpendController(TestController): + + def test_index(self): + response = self.app.get(url_for(controller='spend')) + # Test response... diff --git a/bluechips/widgets/__init__.py b/bluechips/widgets/__init__.py new file mode 100644 index 0000000..d935983 --- /dev/null +++ b/bluechips/widgets/__init__.py @@ -0,0 +1,14 @@ +from tw import forms + +from bluechips import model +from bluechips.model import meta + +class UserSelect(forms.SingleSelectField): + @staticmethod + def getUserList(): + for u in meta.Session.query(model.User): + yield (u.username, u.name) + + options = getUserList + +__all__ = ['UserSelect'] diff --git a/bluechips/widgets/spend.py b/bluechips/widgets/spend.py new file mode 100644 index 0000000..3e41ea1 --- /dev/null +++ b/bluechips/widgets/spend.py @@ -0,0 +1,14 @@ +from tw import forms +from tw.api import WidgetsList + +from tw.forms import validators + +from bluechips.widgets import * + +forms.FormField.engine_name = 'mako' + +class NewSpendForm(forms.ListForm): + class fields(WidgetsList): + spender = UserSelect() + +new_spend_form = NewSpendForm()