From d64da284fc2644493b1aa42900a32d6a120d8fef Mon Sep 17 00:00:00 2001 From: Evan Broder Date: Wed, 16 Jul 2008 04:28:52 +0000 Subject: [PATCH] Add controller for making transfers --- bluechips/controllers/transfer.py | 23 +++++++++++++++++++++ bluechips/templates/transfer/index.mako | 8 +++++++ bluechips/tests/functional/test_transfer.py | 7 +++++++ bluechips/widgets/transfer.py | 23 +++++++++++++++++++++ 4 files changed, 61 insertions(+) create mode 100644 bluechips/controllers/transfer.py create mode 100644 bluechips/templates/transfer/index.mako create mode 100644 bluechips/tests/functional/test_transfer.py create mode 100644 bluechips/widgets/transfer.py diff --git a/bluechips/controllers/transfer.py b/bluechips/controllers/transfer.py new file mode 100644 index 0000000..485c117 --- /dev/null +++ b/bluechips/controllers/transfer.py @@ -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 index 0000000..18ef666 --- /dev/null +++ b/bluechips/templates/transfer/index.mako @@ -0,0 +1,8 @@ +<%inherit file="/base.mako"/> + +<%def name="title()">${parent.title()} :: Add a New Transfer +<%! +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 index 0000000..773cfdd --- /dev/null +++ b/bluechips/tests/functional/test_transfer.py @@ -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 index 0000000..69886ad --- /dev/null +++ b/bluechips/widgets/transfer.py @@ -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() -- 2.45.2