]> asedeno.scripts.mit.edu Git - bluechips.git/commitdiff
Create controller for entering expenditures
authorEvan Broder <broder@mit.edu>
Sun, 13 Jul 2008 14:57:40 +0000 (14:57 +0000)
committerEvan Broder <broder@mit.edu>
Sun, 13 Jul 2008 14:57:40 +0000 (14:57 +0000)
bluechips/controllers/spend.py [new file with mode: 0644]
bluechips/templates/spend/index.mako [new file with mode: 0644]
bluechips/tests/functional/test_spend.py [new file with mode: 0644]
bluechips/widgets/__init__.py [new file with mode: 0644]
bluechips/widgets/spend.py [new file with mode: 0644]

diff --git a/bluechips/controllers/spend.py b/bluechips/controllers/spend.py
new file mode 100644 (file)
index 0000000..481bcc0
--- /dev/null
@@ -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 (file)
index 0000000..390199d
--- /dev/null
@@ -0,0 +1,7 @@
+<%inherit file="/base.mako"/>
+
+<%def name="title()">${parent.title()} :: Add a New Expenditure</%def>
+
+<%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 (file)
index 0000000..2b6603a
--- /dev/null
@@ -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 (file)
index 0000000..d935983
--- /dev/null
@@ -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 (file)
index 0000000..3e41ea1
--- /dev/null
@@ -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()