
rocky at serverzen
Jan 31, 2006, 10:00 AM
Post #1 of 1
(798 views)
Permalink
|
|
SVN: zope.webdev/trunk/ Setup the layer field on a page definition to use multi checkbox widget.
|
|
Log message for revision 41516: Setup the layer field on a page definition to use multi checkbox widget. Changed: _U zope.webdev/trunk/ U zope.webdev/trunk/browser/base.py U zope.webdev/trunk/browser/page.py U zope.webdev/trunk/browser/page.txt -=- Property changes on: zope.webdev/trunk ___________________________________________________________________ Name: svk:merge + 98c0701e-2f07-0410-a1a0-c1bc72243522:/local/zope.webdev/trunk:7361 Modified: zope.webdev/trunk/browser/base.py =================================================================== --- zope.webdev/trunk/browser/base.py 2006-01-31 17:47:30 UTC (rev 41515) +++ zope.webdev/trunk/browser/base.py 2006-01-31 18:00:29 UTC (rev 41516) @@ -61,6 +61,8 @@ class EditFormBase(form.EditForm): '''A base class for display forms that are also edit forms.''' + form_edit_widgets = None + def fixUpWidgets(self): pass @@ -68,6 +70,9 @@ for_display = True if 'doEdit' in self.request: for_display = False + if self.form_edit_widgets: + for key, value in self.form_edit_widgets.items(): + self.form_fields[key].custom_widget = value self.adapters = {} self.widgets = form.setUpEditWidgets( Modified: zope.webdev/trunk/browser/page.py =================================================================== --- zope.webdev/trunk/browser/page.py 2006-01-31 17:47:30 UTC (rev 41515) +++ zope.webdev/trunk/browser/page.py 2006-01-31 18:00:29 UTC (rev 41516) @@ -31,6 +31,8 @@ from zope.security.proxy import removeSecurityProxy from zope.app.pagetemplate import ViewPageTemplateFile from zope.interface.common import idatetime +from zope.app.form import CustomWidgetFactory +from zope.app.form.browser import MultiCheckBoxWidget class AddForm(base.UtilityAddFormBase): @@ -81,5 +83,5 @@ form_fields = form.Fields(interfaces.IPage).select( 'name', 'for_', 'layer', 'permission','templateSource', 'moduleSource','className') + form_edit_widgets = {'layer': CustomWidgetFactory(MultiCheckBoxWidget)} template = ViewPageTemplateFile('package_overview.pt') - Modified: zope.webdev/trunk/browser/page.txt =================================================================== --- zope.webdev/trunk/browser/page.txt 2006-01-31 17:47:30 UTC (rev 41515) +++ zope.webdev/trunk/browser/page.txt 2006-01-31 18:00:29 UTC (rev 41516) @@ -59,6 +59,42 @@ >>> browser.open('http://localhost/++skin++WebDev/++etc++site/first') >>> browser.getLink('mypage.html').click() +Go to the edit form. + >>> browser.getControl('Edit').click() +Edit the important values of the actual page such as the template source, etc +and save them. + + >>> browser.getControl('Template Source').value = u''' + ... <html><body> + ... <ul> + ... <li tal:repeat="candy view/candies" + ... tal:content="candy"/> + ... </ul> + ... </body></html>''' + >>> browser.getControl('Module Source').value = u''' + ... class CandyCollector(object): + ... @property + ... def candies(self): + ... return ('blue', 'green', 'red')''' + >>> browser.getControl('Class Name').value = u'CandyCollector' + >>> browser.getControl('Apply').click() + +Since we have created the new page and registered it, it is automatically +setup as a registered view (we haven't explicitly done this). + +Now we will test the actual output of a use of the page/view from the root +folder. + + >>> browser.open('http://localhost/++skin++WebDev/@@mypage.html') + >>> print browser.contents + <html><body> + <ul> + <li>blue</li> + <li>green</li> + <li>red</li> + </ul> + </body></html> + \ No newline at end of file _______________________________________________ Zope-CVS maillist - Zope-CVS [at] zope http://mail.zope.org/mailman/listinfo/zope-cvs Zope CVS instructions: http://dev.zope.org/CVS
|