[Checkins] SVN: Products.CMFDefault/trunk/Products/CMFDefault/ - added invisible 'global/search_form' and 'global/search' Actions
Yvo Schubbe
cvs-admin at zope.org
Wed May 8 09:28:44 UTC 2013
Log message for revision 130229:
- added invisible 'global/search_form' and 'global/search' Actions
Changed:
U Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt
U Products.CMFDefault/trunk/Products/CMFDefault/browser/skins/tests/test_ursa.py
U Products.CMFDefault/trunk/Products/CMFDefault/browser/skins/ursa.py
U Products.CMFDefault/trunk/Products/CMFDefault/profiles/default/actions.xml
U Products.CMFDefault/trunk/Products/CMFDefault/profiles/views_support/actions.xml
U Products.CMFDefault/trunk/Products/CMFDefault/skins/absolut/main_template.pt
U Products.CMFDefault/trunk/Products/CMFDefault/skins/zpt_generic/getMainGlobals.py
U Products.CMFDefault/trunk/Products/CMFDefault/skins/zpt_generic/main_template.pt
U Products.CMFDefault/trunk/Products/CMFDefault/skins/zpt_generic/search.py
U Products.CMFDefault/trunk/Products/CMFDefault/skins/zpt_generic/search_form.py
U Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to23.py
-=-
Modified: Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt 2013-05-02 11:13:16 UTC (rev 130228)
+++ Products.CMFDefault/trunk/Products/CMFDefault/CHANGES.txt 2013-05-08 09:28:41 UTC (rev 130229)
@@ -4,6 +4,10 @@
2.3.0 (unreleased)
------------------
+- Actions: Added invisible 'global/search_form' and 'global/search' Actions.
+ The URLs of the search form and the search results pages are no longer
+ hard-wired in main_template, making it easier to switch to browser views.
+
- Fixed AttributeError for allowDiscussion when importing a
GenericSetup structure tarball.
See https://bugs.launchpad.net/zope-cmf/+bug/1042836/
Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/skins/tests/test_ursa.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/skins/tests/test_ursa.py 2013-05-02 11:13:16 UTC (rev 130228)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/skins/tests/test_ursa.py 2013-05-08 09:28:41 UTC (rev 130229)
@@ -478,7 +478,19 @@
getSiteManager().registerUtility(tool, IActionsTool)
self.assertEqual(view.workflow_actions, ACTIONS['workflow'])
+ def test_search_form_url(self):
+ view = self._makeOne()
+ tool = DummyActionsTool()
+ getSiteManager().registerUtility(tool, IActionsTool)
+ self.assertEqual(view.search_form_url, u'site/search_form')
+ def test_search_url(self):
+ view = self._makeOne()
+ tool = DummyActionsTool()
+ getSiteManager().registerUtility(tool, IActionsTool)
+ self.assertEqual(view.search_url, u'site/search')
+
+
class DummyContext:
pass
@@ -531,7 +543,7 @@
pass
-class DummyActionsTool:
+class DummyActionsTool(object):
def __init__(self, actions=None):
if actions is None:
@@ -541,7 +553,10 @@
def listFilteredActionsFor(self, context):
return self.actions
+ def getActionInfo(self, action_chain):
+ return {'url': u'site/{1}'.format(*action_chain.split('/'))}
+
class DummyWorkflowTool:
review_state = 'DUMMY'
Modified: Products.CMFDefault/trunk/Products/CMFDefault/browser/skins/ursa.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/browser/skins/ursa.py 2013-05-02 11:13:16 UTC (rev 130228)
+++ Products.CMFDefault/trunk/Products/CMFDefault/browser/skins/ursa.py 2013-05-08 09:28:41 UTC (rev 130229)
@@ -275,3 +275,13 @@
@memoize
def add_actions(self):
return self.actions.get('folder/add', ())
+
+ @property
+ @memoize
+ def search_form_url(self):
+ return self.atool.getActionInfo('global/search_form')['url']
+
+ @property
+ @memoize
+ def search_url(self):
+ return self.atool.getActionInfo('global/search')['url']
Modified: Products.CMFDefault/trunk/Products/CMFDefault/profiles/default/actions.xml
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/profiles/default/actions.xml 2013-05-02 11:13:16 UTC (rev 130228)
+++ Products.CMFDefault/trunk/Products/CMFDefault/profiles/default/actions.xml 2013-05-08 09:28:41 UTC (rev 130229)
@@ -239,6 +239,30 @@
</property>
<property name="visible">False</property>
</object>
+ <object name="search_form" meta_type="CMF Action" i18n:domain="cmf_default">
+ <property name="title" i18n:translate="">Search Form</property>
+ <property name="description" i18n:translate=""></property>
+ <property name="url_expr">string:${portal_url}/search_form</property>
+ <property name="link_target"></property>
+ <property name="icon_expr"></property>
+ <property name="available_expr"></property>
+ <property name="permissions">
+ <element value="View"/>
+ </property>
+ <property name="visible">False</property>
+ </object>
+ <object name="search" meta_type="CMF Action" i18n:domain="cmf_default">
+ <property name="title" i18n:translate="">Search</property>
+ <property name="description" i18n:translate=""></property>
+ <property name="url_expr">string:${portal_url}/search</property>
+ <property name="link_target"></property>
+ <property name="icon_expr"></property>
+ <property name="available_expr"></property>
+ <property name="permissions">
+ <element value="View"/>
+ </property>
+ <property name="visible">False</property>
+ </object>
<object name="undo" meta_type="CMF Action" i18n:domain="cmf_default">
<property name="title" i18n:translate="">Undo</property>
<property name="description" i18n:translate=""></property>
Modified: Products.CMFDefault/trunk/Products/CMFDefault/profiles/views_support/actions.xml
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/profiles/views_support/actions.xml 2013-05-02 11:13:16 UTC (rev 130228)
+++ Products.CMFDefault/trunk/Products/CMFDefault/profiles/views_support/actions.xml 2013-05-08 09:28:41 UTC (rev 130229)
@@ -33,6 +33,12 @@
<object name="members_register" meta_type="CMF Action">
<property name="url_expr">string:${portal_url}/@@join.html</property>
</object>
+ <object name="search_form" meta_type="CMF Action">
+ <property name="url_expr">string:${portal_url}/@@search.html</property>
+ </object>
+ <object name="search" meta_type="CMF Action">
+ <property name="url_expr">string:${portal_url}/@@search.html</property>
+ </object>
<object name="configPortal" meta_type="CMF Action">
<property name="url_expr">string:${portal_url}/@@configure.html</property>
</object>
Modified: Products.CMFDefault/trunk/Products/CMFDefault/skins/absolut/main_template.pt
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/skins/absolut/main_template.pt 2013-05-02 11:13:16 UTC (rev 130228)
+++ Products.CMFDefault/trunk/Products/CMFDefault/skins/absolut/main_template.pt 2013-05-08 09:28:41 UTC (rev 130229)
@@ -69,11 +69,11 @@
</li>
<li>
<a href="search_form"
- tal:attributes="href string:${portal_url}/@@search.html"
+ tal:attributes="href globals/search_form_url"
i18n:translate="">search</a>
</li>
<form action="search" method="get"
- tal:attributes="action string:${portal_url}/@@search.html">
+ tal:attributes="action globals/search_url">
<input name="form.SearchableText" type="search" />
<input type="hidden" name="b_start" value="0" />
<input type="image" name="form.actions.search" value="go" src="go.gif"
Modified: Products.CMFDefault/trunk/Products/CMFDefault/skins/zpt_generic/getMainGlobals.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/skins/zpt_generic/getMainGlobals.py 2013-05-02 11:13:16 UTC (rev 130228)
+++ Products.CMFDefault/trunk/Products/CMFDefault/skins/zpt_generic/getMainGlobals.py 2013-05-08 09:28:41 UTC (rev 130229)
@@ -57,6 +57,8 @@
'isAnon': isAnon,
'wf_state': wtool.getInfoFor(context, 'review_state', ''),
'show_actionicons': ptool.getProperty('enable_actionicons'),
- 'status_message': message}
+ 'status_message': message,
+ 'search_form_url': atool.getActionInfo('global/search_form')['url'],
+ 'search_url': atool.getActionInfo('global/search')['url']}
return decode(globals, context)
Modified: Products.CMFDefault/trunk/Products/CMFDefault/skins/zpt_generic/main_template.pt
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/skins/zpt_generic/main_template.pt 2013-05-02 11:13:16 UTC (rev 130228)
+++ Products.CMFDefault/trunk/Products/CMFDefault/skins/zpt_generic/main_template.pt 2013-05-08 09:28:41 UTC (rev 130229)
@@ -69,7 +69,7 @@
<td id="NavBar" i18n:domain="cmf_default">
<form action="search" method="get"
- tal:attributes="action string:${portal_url}/search">
+ tal:attributes="action globals/search_url">
<a href="."
tal:attributes="href string:${portal_url}/"
i18n:translate="">home</a>
@@ -83,7 +83,7 @@
tal:attributes="href string:${portal_url}/recent_news"
i18n:translate="">news</a>
<a href="search_form"
- tal:attributes="href string:${portal_url}/search_form"
+ tal:attributes="href globals/search_form_url"
i18n:translate="">search</a>
<input name="SearchableText" size="16" />
Modified: Products.CMFDefault/trunk/Products/CMFDefault/skins/zpt_generic/search.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/skins/zpt_generic/search.py 2013-05-02 11:13:16 UTC (rev 130228)
+++ Products.CMFDefault/trunk/Products/CMFDefault/skins/zpt_generic/search.py 2013-05-08 09:28:41 UTC (rev 130229)
@@ -6,15 +6,14 @@
from Products.CMFDefault.utils import Message as _
from Products.CMFDefault.utils import thousands_commas
+atool = getUtilityByInterfaceName('Products.CMFCore.interfaces.IActionsTool')
ctool = getUtilityByInterfaceName('Products.CMFCore.interfaces.ICatalogTool')
-utool = getUtilityByInterfaceName('Products.CMFCore.interfaces.IURLTool')
-portal_url = utool()
epoch = DateTime('1970/01/01 00:00:01 GMT')
options = {}
-target = '%s/search' % portal_url
+target = atool.getActionInfo('global/search')['url']
kw = context.REQUEST.form.copy()
for k, v in kw.items():
if k in ('review_state', 'Title', 'Subject', 'Description', 'portal_type',
Modified: Products.CMFDefault/trunk/Products/CMFDefault/skins/zpt_generic/search_form.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/skins/zpt_generic/search_form.py 2013-05-02 11:13:16 UTC (rev 130228)
+++ Products.CMFDefault/trunk/Products/CMFDefault/skins/zpt_generic/search_form.py 2013-05-08 09:28:41 UTC (rev 130229)
@@ -5,11 +5,10 @@
from Products.CMFDefault.utils import decode
from Products.CMFDefault.utils import Message as _
+atool = getUtilityByInterfaceName('Products.CMFCore.interfaces.IActionsTool')
ctool = getUtilityByInterfaceName('Products.CMFCore.interfaces.ICatalogTool')
mtool = getUtilityByInterfaceName('Products.CMFCore.interfaces.IMembershipTool')
ttool = getUtilityByInterfaceName('Products.CMFCore.interfaces.ITypesTool')
-utool = getUtilityByInterfaceName('Products.CMFCore.interfaces.IURLTool')
-portal_url = utool()
options = {}
@@ -34,7 +33,7 @@
options['listTypeInfos'] = ttool.listTypeInfo()
buttons = []
-target = '%s/search' % portal_url
+target = atool.getActionInfo('global/search')['url']
buttons.append( {'name': 'search', 'value': _(u'Search')} )
options['form'] = { 'action': target,
'listButtonInfos': tuple(buttons) }
Modified: Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to23.py
===================================================================
--- Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to23.py 2013-05-02 11:13:16 UTC (rev 130228)
+++ Products.CMFDefault/trunk/Products/CMFDefault/upgrade/to23.py 2013-05-08 09:28:41 UTC (rev 130229)
@@ -120,6 +120,14 @@
except (KeyError, AttributeError):
return True
try:
+ atool['global'].search_form # 'global' is a reserved word in Python
+ except (KeyError, AttributeError):
+ return True
+ try:
+ atool['global'].search # 'global' is a reserved word in Python
+ except (KeyError, AttributeError):
+ return True
+ try:
atool['global'].syndication # 'global' is a reserved word in Python
except (KeyError, AttributeError):
return True
@@ -136,6 +144,10 @@
logger.info("'change_password' action added.")
getMultiAdapter((atool, environ), IBody).body = _ACTIONS_REGISTER_XML
logger.info("'members_register' action added.")
+ getMultiAdapter((atool, environ), IBody).body = _ACTIONS_SEARCH_FORM_XML
+ logger.info("'search_form' action added.")
+ getMultiAdapter((atool, environ), IBody).body = _ACTIONS_SEARCH_XML
+ logger.info("'search' action added.")
getMultiAdapter((atool, environ), IBody).body = _ACTIONS_SYNDICATION_XML
logger.info("'portal syndication settings' action added.")
@@ -185,6 +197,48 @@
</object>
"""
+_ACTIONS_SEARCH_FORM_XML = """\
+<object name="portal_actions" meta_type="CMF Actions Tool"
+ xmlns:i18n="http://xml.zope.org/namespaces/i18n">
+ <object name="global" meta_type="CMF Action Category">
+ <object insert-after="members_delete" name="search_form"
+ meta_type="CMF Action" i18n:domain="cmf_default">
+ <property name="title" i18n:translate="">Search Form</property>
+ <property name="description" i18n:translate=""></property>
+ <property name="url_expr">string:${portal_url}/search_form</property>
+ <property name="link_target"></property>
+ <property name="icon_expr"></property>
+ <property name="available_expr"></property>
+ <property name="permissions">
+ <element value="View"/>
+ </property>
+ <property name="visible">False</property>
+ </object>
+ </object>
+</object>
+"""
+
+_ACTIONS_SEARCH_XML = """\
+<object name="portal_actions" meta_type="CMF Actions Tool"
+ xmlns:i18n="http://xml.zope.org/namespaces/i18n">
+ <object name="global" meta_type="CMF Action Category">
+ <object insert-after="search_form" name="search" meta_type="CMF Action"
+ i18n:domain="cmf_default">
+ <property name="title" i18n:translate="">Search</property>
+ <property name="description" i18n:translate=""></property>
+ <property name="url_expr">string:${portal_url}/search</property>
+ <property name="link_target"></property>
+ <property name="icon_expr"></property>
+ <property name="available_expr"></property>
+ <property name="permissions">
+ <element value="View"/>
+ </property>
+ <property name="visible">False</property>
+ </object>
+ </object>
+</object>
+"""
+
_ACTIONS_SYNDICATION_XML = """\
<object name="portal_actions" meta_type="CMF Actions Tool"
xmlns:i18n="http://xml.zope.org/namespaces/i18n">
More information about the checkins
mailing list