[Erp5-report] r28308 - /erp5/trunk/bt5/erp5_web/SkinTemplateItem/portal_skins/erp5_web_widg...
nobody at svn.erp5.org
nobody at svn.erp5.org
Thu Aug 6 20:02:29 CEST 2009
Author: jp
Date: Thu Aug 6 20:02:27 2009
New Revision: 28308
URL: http://svn.erp5.org?rev=28308&view=rev
Log:
This renderer and section renderer can be useful to create Subject index for a howto, faq, documents.
Added:
erp5/trunk/bt5/erp5_web/SkinTemplateItem/portal_skins/erp5_web_widget_library/WebSection_viewSubjectIndex.xml
erp5/trunk/bt5/erp5_web/SkinTemplateItem/portal_skins/erp5_web_widget_library/WebSection_viewSubjectIndexRenderer.xml
Added: erp5/trunk/bt5/erp5_web/SkinTemplateItem/portal_skins/erp5_web_widget_library/WebSection_viewSubjectIndex.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_web/SkinTemplateItem/portal_skins/erp5_web_widget_library/WebSection_viewSubjectIndex.xml?rev=28308&view=auto
==============================================================================
--- erp5/trunk/bt5/erp5_web/SkinTemplateItem/portal_skins/erp5_web_widget_library/WebSection_viewSubjectIndex.xml (added)
+++ erp5/trunk/bt5/erp5_web/SkinTemplateItem/portal_skins/erp5_web_widget_library/WebSection_viewSubjectIndex.xml [utf8] Thu Aug 6 20:02:27 2009
@@ -1,0 +1,99 @@
+<?xml version="1.0"?>
+<ZopeData>
+ <record id="1" aka="AAAAAAAAAAE=">
+ <pickle>
+ <tuple>
+ <global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
+ <tuple/>
+ </tuple>
+ </pickle>
+ <pickle>
+ <dictionary>
+ <item>
+ <key> <string>_Cacheable__manager_id</string> </key>
+ <value> <string>anonymous_http_cache</string> </value>
+ </item>
+ <item>
+ <key> <string>_bind_names</string> </key>
+ <value>
+ <object>
+ <klass>
+ <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
+ </klass>
+ <tuple/>
+ <state>
+ <dictionary>
+ <item>
+ <key> <string>_asgns</string> </key>
+ <value>
+ <dictionary>
+ <item>
+ <key> <string>name_subpath</string> </key>
+ <value> <string>traverse_subpath</string> </value>
+ </item>
+ </dictionary>
+ </value>
+ </item>
+ </dictionary>
+ </state>
+ </object>
+ </value>
+ </item>
+ <item>
+ <key> <string>_text</string> </key>
+ <value> <string encoding="cdata"><![CDATA[
+
+<tal:block tal:replace="nothing"\n
+ xmlns:tal="http://xml.zope.org/namespaces/tal"\n
+ xmlns:metal="http://xml.zope.org/namespaces/metal"\n
+ xmlns:i18n="http://xml.zope.org/namespaces/i18n">\n
+<!--\n
+Copyright (c) 2006 Nexedi SARL and Contributors. All Rights Reserved.\n
+ Vincent Pelletier <vincent at nexedi.com>\n
+ Christophe Dumez <christophe at nexedi.com>\n
+\n
+This program is Free Software; you can redistribute it and/or\n
+modify it under the terms of the GNU General Public License\n
+as published by the Free Software Foundation; either version 2\n
+of the License, or (at your option) any later version.\n
+\n
+This program is distributed in the hope that it will be useful,\n
+but WITHOUT ANY WARRANTY; without even the implied warranty of\n
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n
+GNU General Public License for more details.\n
+\n
+You should have received a copy of the GNU General Public License\n
+along with this program; if not, write to the Free Software\n
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n
+-->\n
+</tal:block>\n
+<tal:block metal:define-macro="master">\n
+ <tal:block metal:use-macro="here/view_main/macros/master">\n
+ <tal:block metal:fill-slot="main">\n
+ <p tal:replace="structure python:here.WebSection_viewSubjectIndexRenderer()">Content Goes Here</p> \n
+ </tal:block>\n
+ </tal:block>\n
+</tal:block>
+
+]]></string> </value>
+ </item>
+ <item>
+ <key> <string>content_type</string> </key>
+ <value> <string>text/html</string> </value>
+ </item>
+ <item>
+ <key> <string>expand</string> </key>
+ <value> <int>0</int> </value>
+ </item>
+ <item>
+ <key> <string>id</string> </key>
+ <value> <string>WebSection_viewSubjectIndex</string> </value>
+ </item>
+ <item>
+ <key> <string>title</string> </key>
+ <value> <string>Subject Index</string> </value>
+ </item>
+ </dictionary>
+ </pickle>
+ </record>
+</ZopeData>
Added: erp5/trunk/bt5/erp5_web/SkinTemplateItem/portal_skins/erp5_web_widget_library/WebSection_viewSubjectIndexRenderer.xml
URL: http://svn.erp5.org/erp5/trunk/bt5/erp5_web/SkinTemplateItem/portal_skins/erp5_web_widget_library/WebSection_viewSubjectIndexRenderer.xml?rev=28308&view=auto
==============================================================================
--- erp5/trunk/bt5/erp5_web/SkinTemplateItem/portal_skins/erp5_web_widget_library/WebSection_viewSubjectIndexRenderer.xml (added)
+++ erp5/trunk/bt5/erp5_web/SkinTemplateItem/portal_skins/erp5_web_widget_library/WebSection_viewSubjectIndexRenderer.xml [utf8] Thu Aug 6 20:02:27 2009
@@ -1,0 +1,196 @@
+<?xml version="1.0"?>
+<ZopeData>
+ <record id="1" aka="AAAAAAAAAAE=">
+ <pickle>
+ <tuple>
+ <global name="PythonScript" module="Products.PythonScripts.PythonScript"/>
+ <tuple/>
+ </tuple>
+ </pickle>
+ <pickle>
+ <dictionary>
+ <item>
+ <key> <string>Script_magic</string> </key>
+ <value> <int>3</int> </value>
+ </item>
+ <item>
+ <key> <string>_bind_names</string> </key>
+ <value>
+ <object>
+ <klass>
+ <global name="NameAssignments" module="Shared.DC.Scripts.Bindings"/>
+ </klass>
+ <tuple/>
+ <state>
+ <dictionary>
+ <item>
+ <key> <string>_asgns</string> </key>
+ <value>
+ <dictionary>
+ <item>
+ <key> <string>name_container</string> </key>
+ <value> <string>container</string> </value>
+ </item>
+ <item>
+ <key> <string>name_context</string> </key>
+ <value> <string>context</string> </value>
+ </item>
+ <item>
+ <key> <string>name_m_self</string> </key>
+ <value> <string>script</string> </value>
+ </item>
+ <item>
+ <key> <string>name_subpath</string> </key>
+ <value> <string>traverse_subpath</string> </value>
+ </item>
+ </dictionary>
+ </value>
+ </item>
+ </dictionary>
+ </state>
+ </object>
+ </value>
+ </item>
+ <item>
+ <key> <string>_body</string> </key>
+ <value> <string encoding="cdata"><![CDATA[
+
+"""\n
+ This Widget lists all documents of the current section\n
+ by subject. For each subject, it creates a title (<h1>)\n
+ then lists all documents which meet the section predicate\n
+ and provides a permanent URL to them.\n
+\n
+ Result is cached for high performance.\n
+"""\n
+\n
+web_site_value = context.getWebSiteValue()\n
+web_site_url = web_site_value.absolute_url()\n
+web_section_value = context.getWebSectionValue()\n
+web_section_url = web_section_value.absolute_url()\n
+context = web_section_value\n
+\n
+def buildIndex(language=None):\n
+ from Products.ZSQLCatalog.SQLCatalog import NegatedQuery, Query\n
+ # Retrieve the different subjects in the catalog\n
+ if language is not None:\n
+ subject_list = context.searchResults(\n
+ select_expression=\'subject, reference\',\n
+ query=NegatedQuery(Query(subject=None)),\n
+ language=language,\n
+ sort_on=((\'subject\', \'descending\'), (\'title\', \'ascending\')),\n
+ #src__=1,\n
+ )\n
+ else:\n
+ subject_list = context.searchResults(\n
+ select_expression=\'subject, reference\',\n
+ query=NegatedQuery(Query(subject=None)),\n
+ sort_on=((\'subject\', \'descending\'), (\'title\', \'ascending\')),\n
+ #src__=1,\n
+ )\n
+ #return subject_list\n
+ #return map(lambda x:(x.subject, x.reference), subject_list)\n
+ # Convert the result into list\n
+ # This is not the fastest approach but should be OK for\n
+ # moderate size\n
+ subject_list = list(subject_list)\n
+ subject_count = len(subject_list) # Not the fastest (use countResults instead)\n
+\n
+ # Return immediately if empty\n
+ if not subject_count:\n
+ return \'<p></p>\'\n
+\n
+ # Now build the page\n
+ result = []\n
+ last_subject = None\n
+ for subject in subject_list:\n
+ if last_subject != subject.subject:\n
+ subject_title = subject.subject\n
+ subject_title = subject_title[0].upper() + subject_title[1:]\n
+ result.append("<h1>%s</h1>" % subject_title)\n
+ result.append("""<p><a href="%s/%s/view">%s</a></p>""" % (web_section_url, subject.reference, subject.title))\n
+\n
+ return \'\\n\'.join(result)\n
+\n
+from Products.ERP5Type.Cache import CachingMethod\n
+buildIndex = CachingMethod(buildIndex, \n
+ id=(\'WebSection_viewSubjectIndexRenderer\', web_section_url))\n
+language = context.Localizer.get_selected_language()\n
+return buildIndex(language=language)\n
+
+
+]]></string> </value>
+ </item>
+ <item>
+ <key> <string>_code</string> </key>
+ <value>
+ <none/>
+ </value>
+ </item>
+ <item>
+ <key> <string>_params</string> </key>
+ <value> <string></string> </value>
+ </item>
+ <item>
+ <key> <string>errors</string> </key>
+ <value>
+ <tuple/>
+ </value>
+ </item>
+ <item>
+ <key> <string>func_code</string> </key>
+ <value>
+ <object>
+ <klass>
+ <global name="FuncCode" module="Shared.DC.Scripts.Signature"/>
+ </klass>
+ <tuple/>
+ <state>
+ <dictionary>
+ <item>
+ <key> <string>co_argcount</string> </key>
+ <value> <int>0</int> </value>
+ </item>
+ <item>
+ <key> <string>co_varnames</string> </key>
+ <value>
+ <tuple>
+ <string>_getattr_</string>
+ <string>context</string>
+ <string>web_site_value</string>
+ <string>web_site_url</string>
+ <string>web_section_value</string>
+ <string>web_section_url</string>
+ <string>None</string>
+ <string>buildIndex</string>
+ <string>Products.ERP5Type.Cache</string>
+ <string>CachingMethod</string>
+ <string>language</string>
+ </tuple>
+ </value>
+ </item>
+ </dictionary>
+ </state>
+ </object>
+ </value>
+ </item>
+ <item>
+ <key> <string>func_defaults</string> </key>
+ <value>
+ <none/>
+ </value>
+ </item>
+ <item>
+ <key> <string>id</string> </key>
+ <value> <string>WebSection_viewSubjectIndexRenderer</string> </value>
+ </item>
+ <item>
+ <key> <string>warnings</string> </key>
+ <value>
+ <tuple/>
+ </value>
+ </item>
+ </dictionary>
+ </pickle>
+ </record>
+</ZopeData>
More information about the Erp5-report
mailing list