--- /dev/null
+"""
+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)
--- /dev/null
+<%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'))}
--- /dev/null
+from bluechips.tests import *
+
+class TestTransferController(TestController):
+
+ def test_index(self):
+ response = self.app.get(url_for(controller='transfer'))
+ # Test response...
--- /dev/null
+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()