Author: eallen
Date: 2011-02-10 19:31:19 +0000 (Thu, 10 Feb 2011)
New Revision: 4514
Modified:
trunk/wooly/python/wooly/forms.py
trunk/wooly/python/wooly/forms.strings
Log:
Allow forms to easily override the submit button.
Allow forms to easily override their css class name.
Modified: trunk/wooly/python/wooly/forms.py
===================================================================
--- trunk/wooly/python/wooly/forms.py 2011-02-10 19:28:37 UTC (rev 4513)
+++ trunk/wooly/python/wooly/forms.py 2011-02-10 19:31:19 UTC (rev 4514)
@@ -480,9 +480,6 @@
assert self.param is not None
assert isinstance(self.param, Parameter)
- def get(self, session):
- return self.param.get(session)
-
def add_option(self, option):
assert isinstance(option, RadioFieldOption)
@@ -572,6 +569,9 @@
return writer.to_string()
+ def render_form_class(self, session, *args):
+ return "ButtonForm"
+
class SubmitForm(ButtonForm):
def __init__(self, app, name):
super(SubmitForm, self).__init__(app, name)
@@ -579,14 +579,18 @@
self.return_url = Parameter(app, "return")
self.add_parameter(self.return_url)
- self.submit_button = self.Submit(app, "submit")
- self.submit_button.tab_index = 201
- self.add_button(self.submit_button)
+ self.create_submit(app)
self.cancel_button = self.Cancel(app, "cancel")
self.cancel_button.tab_index = 200
self.add_button(self.cancel_button)
+ # this is a method so it can be overridden
+ def create_submit(self, app):
+ self.submit_button = self.Submit(app, "submit")
+ self.submit_button.tab_index = 201
+ self.add_button(self.submit_button)
+
def submit(self, session):
self.submit_button.set(session, True)
Modified: trunk/wooly/python/wooly/forms.strings
===================================================================
--- trunk/wooly/python/wooly/forms.strings 2011-02-10 19:28:37 UTC (rev 4513)
+++ trunk/wooly/python/wooly/forms.strings 2011-02-10 19:31:19 UTC (rev 4514)
@@ -302,7 +302,7 @@
}
[ButtonForm.html]
-<form id="{id}" class="ButtonForm" method="post"
action="?">
+<form id="{id}" class="{form_class}" method="post"
action="?">
<div class="title">{title}</div>
<div class="content">
{errors}
Show replies by date