]> asedeno.scripts.mit.edu Git - bluechips.git/commitdiff
Add controller for making transfers
authorEvan Broder <broder@mit.edu>
Wed, 16 Jul 2008 04:28:52 +0000 (04:28 +0000)
committerEvan Broder <broder@mit.edu>
Wed, 16 Jul 2008 04:28:52 +0000 (04:28 +0000)
bluechips/controllers/transfer.py [new file with mode: 0644]
bluechips/templates/transfer/index.mako [new file with mode: 0644]
bluechips/tests/functional/test_transfer.py [new file with mode: 0644]
bluechips/widgets/transfer.py [new file with mode: 0644]

diff --git a/bluechips/controllers/transfer.py b/bluechips/controllers/transfer.py
new file mode 100644 (file)
index 0000000..485c117
--- /dev/null
@@ -0,0 +1,23 @@
+"""
+Handle transfers
+"""
+
+import logging
+
+from bluechips.lib.base import *
+from bluechips.widgets import transfer
+
+from pylons import request
+
+log = logging.getLogger(__name__)
+
+class TransferController(BaseController):
+    def index(self):
+        c.transfer = dict()
+        c.transfer['debtor'] = request.environ['user']
+        
+        return render('/transfer/index.mako')
+    
+    @validate(form=transfer.new_transfer_form, error_handler='index')
+    def new(self):
+        return str(self.form_result)
diff --git a/bluechips/templates/transfer/index.mako b/bluechips/templates/transfer/index.mako
new file mode 100644 (file)
index 0000000..18ef666
--- /dev/null
@@ -0,0 +1,8 @@
+<%inherit file="/base.mako"/>
+
+<%def name="title()">${parent.title()} :: Add a New Transfer</%def>
+<%!
+import bluechips.widgets.transfer as forms
+%>
+
+${forms.new_transfer_form(c.transfer, action=h.url_for(action='new'))}
diff --git a/bluechips/tests/functional/test_transfer.py b/bluechips/tests/functional/test_transfer.py
new file mode 100644 (file)
index 0000000..773cfdd
--- /dev/null
@@ -0,0 +1,7 @@
+from bluechips.tests import *
+
+class TestTransferController(TestController):
+
+    def test_index(self):
+        response = self.app.get(url_for(controller='transfer'))
+        # Test response...
diff --git a/bluechips/widgets/transfer.py b/bluechips/widgets/transfer.py
new file mode 100644 (file)
index 0000000..69886ad
--- /dev/null
@@ -0,0 +1,23 @@
+from tw import forms
+from tw.api import WidgetsList
+
+from tw.forms import validators
+
+from bluechips.widgets import *
+
+class NewTransferForm(forms.ListForm):
+    class fields(WidgetsList):
+        debtor = UserSelect()
+        creditor = UserSelect()
+        amount = AmountField()
+        date = forms.CalendarDatePicker(
+            validator=validators.DateConverter(not_empty=True))
+        description = forms.TextField(size=40)
+    
+    validator = validators.Schema(
+        chained_validators=[
+            FieldsDontMatch('debtor', 'creditor',
+                            messages=dict(
+                    invalid="Can't transfer to yourself!"))])
+
+new_transfer_form = NewTransferForm()