From: Evan Broder Date: Wed, 16 Jul 2008 04:28:52 +0000 (+0000) Subject: Add controller for making transfers X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=commitdiff_plain;h=d64da284fc2644493b1aa42900a32d6a120d8fef;hp=376192728a6625831c11d4c9d192f0a48b7ca417;p=bluechips.git Add controller for making transfers --- 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()