Commit 19fab2e5 authored by Ivan Tyagov's avatar Ivan Tyagov

This overides of ListBox_asHTML are now replaced by unified listbox list_style.

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@38203 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent 96576e3e
<?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>_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 metal:define-macro="main"\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
tal:define="listbox_max_lines python: int(here.getMaxLineNumber());\n
total_line python: int(here.total_size);\n
current_page python: int(here.current_page) + 1;\n
current_page_max python: listbox_max_lines * current_page;\n
current_page_start python: (listbox_max_lines * (current_page - 1)) + 1;\n
current_page_stop python: (total_line < current_page_max) and total_line or current_page_max;\n
your_search_text python:here.getParamDict().get(\'your_search_text\', None)">\n
\n
<!-- ListBox (search mode) starts here. -->\n
<input type="hidden" \n
name="list_selection_name" \n
value="default" \n
tal:attributes="value selection_name" />\n
<input tal:condition="md5_string" \n
type="hidden" \n
name="md5_object_uid_list" \n
value="checksum" \n
tal:attributes="value md5_string" />\n
<input type="hidden" name="listbox_uid" value="1"/>\n
\n
<input tal:condition="python:form_id and is_gadget_mode" type="hidden" name="gadget_form_id" tal:attributes="value form_id" />\n
\n
<tal:block tal:define="expand python: 1;\n
date_renderer python: context.getContext().ERP5Site_viewSearchResult.listbox_modification_date.render_pdf;">\n
<tal:block metal:use-macro="template/macros/ListBoxContainer">\n
<tal:block metal:fill-slot="ListBoxBody">\n
\n
<div class="search result">\n
\n
<!-- Advanced Search header -->\n
<div class="centeredInner searchBar extendedSearchBar"\n
tal:define="search_default_text python:context.getContext().Base_translateString(\'Search\')"\n
tal:condition="python:not is_gadget_mode and show_search_line">\n
<input name="top_your_search_text" size="40" value="" type="text"\n
value="Search" tal:attributes="value your_search_text | search_default_text;\n
onfocus string:if (this.value==\'${search_default_text}\') this.value=\'\';"\n
\n
onfocus="this.value=\'\';"\n
onkeypress="submitFormOnEnter(event, this.form, \'ERP5Site_processAdvancedSearch\');"/>\n
<input class="button" i18n:domain="ui" i18n:attributes="value"\n
value="Search" name="ERP5Site_processAdvancedSearch:method" type="submit" />\n
</div>\n
\n
<!-- Result Header -->\n
<div class="resultList">\n
<div class="searchResultHeader" >\n
\n
<span class="left" \n
tal:define="table_form_id request/current_form_id | form_id">\n
\n
<a tal:condition="not:is_gadget_mode"\n
tal:attributes="href string:${context_url}/${table_form_id}?list_style=table">\n
<img id="style_toggle_icon" \n
tal:attributes="src string:${portal_url_string}/images/search_style_icon.png" \n
alt="Search Icon"\n
height="16"\n
title="Table mode"\n
i18n:domain="ui" i18n:attributes="title"/>\n
</a>\n
\n
<input tal:condition="python:not is_gadget_mode and (is_domain_tree_supported or is_report_tree_supported)"\n
type="image" src="text_block.png" id="listbox_flat_list_mode"\n
title="Flat List" name="setFlatListMode:method"\n
value="1" alt="Flat List"\n
tal:attributes="src string:${portal_url_string}/images/text_block.png;\n
id string:${field_id}_flat_list_mode"\n
i18n:domain="ui" i18n:attributes="title" />\n
<input tal:condition="python: not is_gadget_mode and is_report_tree_supported"\n
type="image" src="view_tree.png" id="listbox_report_tree_mode"\n
title="Report Tree" name="setReportTreeMode:method"\n
value="1" alt="Report Tree"\n
tal:attributes="src string:${portal_url_string}/images/view_tree.png;\n
id string:${field_id}_report_tree_mode"\n
i18n:domain="ui" i18n:attributes="title" />\n
<input tal:condition="python: not is_gadget_mode and is_domain_tree_supported"\n
type="image" src="view_choose.png" id="listbox_domain_tree_mode"\n
title="Domain Tree" name="setDomainTreeMode:method"\n
value="1" alt="Domain Tree"\n
tal:attributes="src string:${portal_url_string}/images/view_choose.png;\n
id string:${field_id}_domain_tree_mode"\n
i18n:domain="ui" i18n:attributes="title" />\n
\n
<input tal:condition="python:not is_gadget_mode and (is_domain_tree_supported or is_report_tree_supported)"\n
type="image" src="images/showall.png" id="listbox_reset_selection"\n
title="Show All" name="Folder_show:method"\n
id="listbox_reset_selection"\n
value="1" alt="Flat List"\n
tal:attributes="src string:${portal_url_string}/images/showall.png;"\n
i18n:domain="ui" i18n:attributes="title" />\n
\n
<!-- supporting table mode for gadget mode -->\n
<button tal:condition="is_gadget_mode"\n
tal:define = "params python: {\'list_style\':\'table\'}"\n
title="Table mode"\n
type="button"\n
tal:attributes="onclick python: real_context.KnowledgePad_generateAjaxCall(context_url+\'/\'+table_form_id,box,box_id,params);"\n
i18n:domain="ui" i18n:attributes="title">\n
<img id="style_toggle_icon"\n
alt="Table Mode Icon"\n
tal:attributes="src string:${portal_url_string}/images/search_style_icon.png" \n
height="16"/>\n
</button>\n
\n
<a tal:attributes="id string:${field_id}_title; href here/getListActionUrl"\n
tal:condition="python: here.field.get_value(\'list_action\')">\n
<em i18n:translate="" \n
i18n:domain="ui" tal:content="here/getTitle" />\n
</a>\n
<tal:block tal:condition="python: not here.field.get_value(\'list_action\')">\n
<em i18n:translate="" \n
i18n:domain="ui" tal:content="here/getTitle" />\n
</tal:block>\n
\n
<!-- supporting domain tree mode for gadget mode (disabled)-->\n
<!--\n
<br tal:condition="is_gadget_mode"/>\n
<button tal:condition="python: is_gadget_mode and (is_domain_tree_supported or is_report_tree_supported)"\n
tal:define = "params python: {\'setFlatListMode:method\':1}"\n
id="listbox_flat_list_mode"\n
type="button"\n
title="Flat List"\n
alt="Flat List"\n
tal:attributes="id string:${field_id}_flat_list_mode;\n
onclick python: real_context.KnowledgePad_generateAjaxCall(context_url+\'/\'+form_id,box,box_id,params);"\n
i18n:domain="ui" i18n:attributes="title">\n
<img src="text_block.png"\n
tal:attributes="src string:${portal_url_string}/images/text_block.png;"/></button>\n
\n
<button tal:condition="python: is_gadget_mode and is_report_tree_supported"\n
tal:define = "params python: {\'setReportTreeMode:method\':1}"\n
style="cursor:pointer;" id="listbox_report_tree_mode"\n
type="button"\n
title="Report Tree"\n
alt="Report Tree"\n
tal:attributes="id string:${field_id}_report_tree_mode;\n
onclick python: real_context.KnowledgePad_generateAjaxCall(context_url+\'/\'+form_id,box,box_id,params);"\n
i18n:domain="ui" i18n:attributes="title">\n
<img src="view_tree.png"\n
tal:attributes="src string:${portal_url_string}/images/view_tree.png;"/></button>\n
\n
<button tal:condition="python: is_gadget_mode and is_domain_tree_supported"\n
tal:define = "params python: {\'setDomainTreeMode:method\':\'1\'}"\n
style="cursor:pointer;" id="listbox_domain_tree_mode"\n
type="button"\n
title="Domain Tree"\n
alt="Domain Tree"\n
tal:attributes="id string:${field_id}_domain_tree_mode;\n
onclick python: real_context.KnowledgePad_generateAjaxCall(context_url+\'/\'+form_id,box,box_id,params);"\n
i18n:domain="ui" i18n:attributes="title">\n
<img src="view_choose.png"\n
tal:attributes="src string:${portal_url_string}/images/view_choose.png;"/></button>\n
-->\n
</span>\n
\n
<span class="right">\n
<tal:block tal:condition="python: total_line > 0"\n
tal:replace="structure python: real_context.Base_translateString(\'Results <em>${start} - ${stop}</em> of <em>${total}</em>.\', mapping=dict(start=current_page_start, stop=current_page_stop, total=total_line))"/>\n
\n
<span tal:condition="python: total_line == 0" \n
class="warning" \n
i18n:translate="" \n
i18n:domain="ui">No result !</span>\n
</span>\n
<div class="clear"></div>\n
</div>\n
\n
<!-- Found results -->\n
<tal:block \n
tal:condition="is_web_mode">\n
<tal:block tal:define="global website python: real_context.getWebSiteValue()" />\n
</tal:block>\n
<table cellpadding="0" cellspacing="0" class="listbox search">\n
<tal:block tal:repeat="line line_list">\n
<tr tal:define="css python: test(repeat[\'line\'].index % 2, \'DataB\', \'DataA\');\n
obj line/getObject;\n
url obj/absolute_url;\n
portal_type obj/getPortalType;\n
is_document python:portal_type in\n
real_context.getPortalDocumentTypeList() and portal_type != \'Web Page\';\n
hidden_pop_dom_id string:dom_popup_${field_id}_${repeat/line/index};\n
details_dom_id string:${field_id}_search_details_${repeat/line/index};"\n
tal:attributes="id string:${field_id}_data_line_${repeat/line/index}; \n
class python: \'%s tbody\' % css;">\n
\n
<td class="icon">\n
<a tal:condition="is_document"\n
tal:attributes="href string: ${url}/Base_download"\n
i18n:translate="" \n
i18n:domain="ui" \n
title="Download Document">\n
<img tal:attributes="src obj/getIcon"\n
alt="Document Icon"/>\n
</a>\n
<img tal:condition="not: is_document"\n
tal:attributes="src obj/getIcon"\n
alt="Object Icon"\n
/>\n
</td>\n
\n
<td>\n
<div class="item_nohighlight"\n
tal:attributes="onmouseover python: is_web_mode and \'showPopik(\\\'%s\\\', true)\' % hidden_pop_dom_id or None;\n
onmouseout python: is_web_mode and \'showPopik(\\\'%s\\\', false)\' % hidden_pop_dom_id or None;">\n
\n
<div class="search_popup" \n
style="z-index:100;"\n
tal:condition="is_web_mode" \n
tal:attributes="id hidden_pop_dom_id">\n
<span tal:replace="structure python: obj.Document_getPopupInfo(website)"/>\n
</div>\n
\n
<div>\n
<a tal:attributes="href string:${url}/view">\n
<span class="search_result_title" tal:content="python: obj.getTitle() or (hasattr(obj, \'getReference\') and obj.getReference()) or obj.getId()" />\n
<span class="search_result_portal_type" tal:condition="python:portal_type != \'Web Page\'" tal:content="obj/getTranslatedPortalType" />\n
</a>\n
</div>\n
\n
<span class="searchDetails found" \n
tal:content="structure python: obj.Base_showFoundText(selection=selection)"/>\n
\n
<div tal:condition="is_web_mode"\n
class="searchDetails coordinates">\n
<tal:block tal:condition="obj/getReference|nothing">\n
<a tal:attributes="href python: \'%s/view\' % website.getPermanentURL(obj)"\n
tal:content="obj/getReference|nothing"/>&nbsp;-&nbsp;\n
</tal:block>\n
\n
<tal:block tal:repeat="section python: website.getWebSectionValueList(obj)">\n
<a href="#" \n
tal:content="section/getCompactTranslatedTitle"\n
tal:attributes="href python: \'%s/view\' %section.absolute_url()"/>\n
&nbsp;-&nbsp;\n
</tal:block>\n
\n
\n
<tal:block tal:repeat="owner obj/Base_getOwnerInfoList">\n
<a tal:content="owner/title" \n
tal:attributes="href owner/url"/>\n
&nbsp;-&nbsp;\n
</tal:block>\n
<a tal:content="python: date_renderer(obj.getModificationDate())" \n
tal:attributes="href string: ${url}/Base_viewHistory"/>\n
</div>\n
<div tal:condition="not: is_web_mode"\n
class="searchDetails coordinates">\n
<tal:block tal:condition="obj/getReference|nothing">\n
<a tal:attributes="href string: ${url}/view"\n
tal:content="obj/getReference|nothing"/>&nbsp;-&nbsp;\n
</tal:block>\n
<a tal:content="python: date_renderer(obj.getModificationDate())" \n
tal:attributes="href string: ${url}/Base_viewHistory"/>\n
</div>\n
</div>\n
</td>\n
</tr>\n
</tal:block>\n
<tr>\n
<td class="pageNavigation" colspan="2" style="white-space: nowrap; vertical-align: middle; text-align: right;">\n
<tal:block metal:use-macro="real_context/page_navigation_render/macros/page_navigation" />\n
</td>\n
</tr>\n
</table>\n
</div>\n
\n
<!-- Advanced Search footer -->\n
<div class="centeredInner searchBar extendedSearchBar" \n
tal:condition="python: not is_gadget_mode and show_search_line">\n
<input name="bottom_your_search_text" size="40" value="" type="text"\n
onkeypress="submitFormOnEnter(event, this.form, \'ERP5Site_processAdvancedSearchBottom\');"\n
tal:attributes="value your_search_text" />\n
<input class="button" i18n:domain="ui" i18n:attributes="value"\n
value="Search" name="ERP5Site_processAdvancedSearchBottom:method" type="submit" />\n
</div>\n
\n
<!-- Advanced Search footer for gadgets -->\n
<div class="centeredInner searchBar extendedSearchBar" \n
tal:condition="python: is_gadget_mode and show_search_line">\n
<input tal:define ="params python: {\'ERP5Site_processAdvancedSearchBottom:method\':\'\',\'bottom_your_search_text\':\'this.value\'};"\n
name="bottom_your_search_text" size="25" value="" type="text"\n
tal:attributes=\'value your_search_text;\n
onkeypress python:"if(event.keyCode==13){" + real_context.KnowledgePad_generateAjaxCall(context_url+"/"+form_id,box,box_id,params).replace("\\"this.value\\"","this.value")+ "return false;;}"\'/>\n
</div>\n
\n
</div>\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
<!-- ListBox ends here. -->\n
\n
</tal:block>\n
]]></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>ListBox_asSearchStyleHTML</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Listboxes in search engine style</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?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>_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 metal:define-macro="main"\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
<tal:block tal:define="expand python: 1">\n
<tal:block metal:use-macro="template/macros/ListBoxContainer">\n
<tal:block metal:fill-slot="ListBoxBody">\n
<div class="ListSummary">\n
<table cellpadding="0" cellspacing="0"\n
summary="This table contains the listbox headers">\n
<tr>\n
<td style="height: 10px">\n
<img src="Left.png" alt="left"\n
tal:attributes="src string:${portal_url_string}/images/Left.png" />\n
</td>\n
<td class="Top" colspan="2" style="height: 10px">\n
<img src="spacer.png" style="width: 5px; height: 10px;" alt="spacer"\n
tal:attributes="src string:${portal_url_string}/images/spacer.png" />\n
</td>\n
<td class="Top" colspan="3" style="height: 10px">\n
<img src="spacer.png" style="width: 5px; height: 10px" alt="spacer"\n
tal:attributes="src string:${portal_url_string}/images/spacer.png" />\n
</td>\n
</tr>\n
<tr id="listbox_title_line" class="listbox_title_line" \n
tal:attributes="id string:${field_id}_title_line">\n
<td class="Left" style="width: 17px">\n
<img src="spacer.png" style="width: 5px; height: 5px" alt="spacer"\n
tal:attributes="src string:${portal_url_string}/images/spacer.png" />\n
</td>\n
\t <td style="white-space: nowrap; vertical-align: middle"\n
tal:condition="not: is_gadget_mode">\n
<input tal:condition="python: is_domain_tree_supported or is_report_tree_supported"\n
type="image" src="text_block.png" id="listbox_flat_list_mode"\n
class="listbox_flat_list_mode"\n
title="Flat List" name="setFlatListMode:method"\n
value="1" alt="Flat List"\n
tal:attributes="src string:${portal_url_string}/images/text_block.png;\n
id string:${field_id}_flat_list_mode"\n
i18n:domain="ui" i18n:attributes="title" />\n
<input tal:condition="is_report_tree_supported"\n
type="image" src="view_tree.png" id="listbox_report_tree_mode"\n
title="Report Tree" name="setReportTreeMode:method"\n
value="1" alt="Report Tree" class="listbox_report_tree_mode"\n
tal:attributes="src string:${portal_url_string}/images/view_tree.png;\n
id string:${field_id}_report_tree_mode"\n
i18n:domain="ui" i18n:attributes="title" />\n
<input tal:condition="is_domain_tree_supported"\n
type="image" src="view_choose.png" id="listbox_domain_tree_mode"\n
title="Domain Tree" name="setDomainTreeMode:method"\n
value="1" alt="Domain Tree" class="listbox_domain_tree_mode"\n
tal:attributes="src string:${portal_url_string}/images/view_choose.png;\n
id string:${field_id}_domain_tree_mode"\n
i18n:domain="ui" i18n:attributes="title" />\n
</td>\n
<td style="width: 100%; vertical-align: middle">\n
&nbsp;\n
<a class="listbox_title"\n
tal:attributes="id string:${field_id}_title; href here/getListActionUrl"\n
tal:condition="python: here.field.get_value(\'list_action\')">\n
<tal:block i18n:translate="" \n
i18n:domain="ui" tal:content="here/getTitle" />:\n
</a>\n
<tal:block tal:condition="python: not here.field.get_value(\'list_action\')">\n
<span class="listbox_title" i18n:translate="" \n
i18n:domain="ui" tal:content="here/getTitle" />:\n
</tal:block>\n
<span id="listbox_record_number" class="listbox_record_number"\n
tal:attributes="id string:${field_id}_record_number"\n
i18n:translate="" i18n:domain="ui"><tal:block tal:replace="here/total_size" i18n:name="number">0</tal:block> records</span>\n
<span id="listbox_item_number" class="listbox_item_number"\n
tal:attributes="id string:${field_id}_item_number"\n
tal:condition="show_select_column"\n
i18n:translate="" i18n:domain="ui"> - <tal:block tal:replace="python: len(here.getCheckedUidList())" i18n:name="number">0</tal:block> items selected</span>\n
</td>\n
\n
<td class="pageNavigation" style="white-space: nowrap; vertical-align: middle; text-align: center;">\n
<tal:block metal:use-macro="real_context/page_navigation_render/macros/page_navigation" />\n
</td>\n
</tr>\n
</table>\n
</div>\n
<div class="listbox">\n
<table cellpadding="0" cellspacing="0"\n
summary="This table contains the listbox content">\n
<tr id="listbox_label_line" class="listbox_label_line"\n
tal:attributes="id string:${field_id}_label_line">\n
<td tal:condition="is_report_tree_mode"\n
class="Data" style="width: 50px; text-align: left; vertical-align: middle">\n
<select name="report_root_url"\n
tal:attributes="onChange string:submitAction(this.form, \'${context_url}/setReportRoot\')">\n
<tal:block tal:repeat="c here/getReportRootList">\n
<option value="base_domain"\n
tal:define="path python: c[0]; title python: c[1]"\n
tal:attributes="selected python: path == here.getSelectedReportPath(); value path"\n
tal:content="title" i18n:domain="ui" i18n:translate="">Domain</option>\n
</tal:block>\n
</select>\n
</td>\n
<td class="AnchorColumn Data" tal:condition="show_anchor_column">&nbsp;</td>\n
<td tal:condition="show_select_column"\n
class="Data" style="width: 50px; text-align: center; vertical-align: middle">\n
<input id="listbox_check_all" type="image"\n
name="checkAll:method" value="1"\n
src="checkall.png" alt="Check All" title="Check All"\n
class="listbox_check_all"\n
tal:attributes="id string:${field_id}_check_all;\n
name string:${field_id}_checkAll:method;\n
src string:${portal_url_string}/images/checkall.png"\n
i18n:domain="ui" i18n:attributes="title" />&nbsp;<input id="listbox_uncheck_all" type="image" name="uncheckAll:method" value="1"\n
src="%(portal_url_string)s/images/decheckall.png" style="border: 0" alt="Uncheck All" title="Uncheck All" class="listbox_uncheck_all"\n
tal:attributes="id string:${field_id}_uncheck_all;\n
name string:${field_id}_uncheckAll:method;\n
src string:${portal_url_string}/images/decheckall.png"\n
i18n:domain="ui" i18n:attributes="title" />\n
</td>\n
<tal:block tal:repeat="value here/getLabelValueList">\n
<tal:block tal:define="sql python: value[0];\n
title python: value[1];\n
sort_order python: value[2]">\n
<td tal:condition="sql" class="Data">\n
<button type="submit" class="sort_button"\n
tal:condition="not: is_gadget_mode"\n
name="setSelectionQuickSortOrder:method"\n
tal:attributes="title string:${title}; \n
value string:${field_id}.${sql}"\n
i18n:domain="ui" i18n:attributes="title">\n
<span tal:content="title" i18n:domain="ui" i18n:translate="">ID</span>\n
</button>\n
<button tal:condition="is_gadget_mode" \n
tal:define ="params python: {\'setSelectionQuickSortOrder:method\':field_id+\'.\'+sql};"\n
type="button" class="sort_button"\n
tal:attributes="title string:${title}; \n
onclick python: real_context.KnowledgePad_generateAjaxCall(context_url+\'/\'+form_id,box_relative_url,box_id,params);"\n
i18n:domain="ui" i18n:attributes="title">\n
<span tal:content="title" i18n:domain="ui" i18n:translate="">ID</span>\n
</button>\n
<img tal:condition="python: sort_order == \'ascending\'"\n
src="1bottomarrow.png" alt="Ascending Display" title="Ascending Display"\n
tal:attributes="src string:${portal_url_string}/images/1bottomarrow.png"\n
i18n:domain="ui" i18n:attributes="title" />\n
<img tal:condition="python: sort_order == \'descending\'"\n
src="1toparrow.png" alt="Descending Display" title="Descending Display"\n
tal:attributes="src string:${portal_url_string}/images/1toparrow.png"\n
i18n:domain="ui" i18n:attributes="title" />\n
</td>\n
<td tal:condition="not: sql" class="Data" tal:content="title"\n
i18n:domain="ui" i18n:translate="">\n
ID\n
</td>\n
</tal:block>\n
</tal:block>\n
</tr>\n
\n
<tr tal:condition="python: show_search_line or is_report_tree_mode"\n
id="listbox_search_line" class="listbox_search_line"\n
tal:attributes="id python: show_search_line and (\'%s_search_line\' % field_id) or (\'%s_report_depth_line\' % field_id)">\n
<tal:block tal:condition="is_report_tree_mode">\n
<td class="Data" style="width: 50px; text-align: left; vertical-align: middle" colspan="1"\n
tal:attributes="colspan python: show_search_line and 1 or (len(here.getSelectedColumnList()) + show_select_column + show_anchor_column + 1)"\n
tal:define="selection_index here/getSelectionIndex;\n
index python: selection_index is not None and \'&amp;selection_index=%s\' % selection_index or \'\';\n
is_report_opened python: int(not here.getSelection().isReportOpened());\n
requested_selection_name here/getRequestedSelectionName;\n
url here/getUrl"><tal:block tal:repeat="i python: range(0, 6)">&nbsp;<a href="?selection_name=default&amp;selection_index=0&amp;report_depth:int=0"\n
tal:attributes="href string:${url}?selection_name=${requested_selection_name}${index}&amp;report_depth:int=${i}"\n
tal:content="i">0</a></tal:block>&nbsp;-&nbsp;<a href="?selection_name=default&amp;selection_index=0&amp;is_report_opened:int=0"\n
tal:attributes="href string:${url}?selection_name=${requested_selection_name}${index}&amp;is_report_opened:int=${is_report_opened}"\n
tal:content="python: is_report_opened and \'Show\' or \'Hide\'"\n
i18n:domain="ui" i18n:translate="">Show</a>\n
</td>\n
</tal:block>\n
<td class="AnchorColumn" tal:condition="show_anchor_column">&nbsp;</td>\n
<td tal:condition="python: show_select_column and show_search_line"\n
class="Data" style="width: 50px; text-align: center; vertical-align: middle">\n
<input id="listbox_select" type="image" src="exec16.png"\n
title="Action" alt="Action" name="Base_doSelect:method"\n
class="listbox_select"\n
tal:attributes="id string:${field_id}_select;\n
src string:${portal_url_string}/images/exec16.png"\n
i18n:domain="ui" i18n:attributes="title" />\n
</td>\n
<tal:block tal:condition="show_search_line"\n
tal:repeat="value here/getSearchValueList">\n
<td class="DataB" style="padding-right: 5px"\n
tal:define="alias python: value[0];\n
param python: value[1];\n
search_field python: value[2]">\n
<span tal:condition="alias" style="font-size: -3">\n
<tal:block tal:condition="python: search_field is not None"\n
tal:replace="structure python: search_field.render(value = param, key = alias)" />\n
<tal:block tal:condition="python: search_field is None">\n
<input tal:condition="not: is_gadget_mode" name="id" size="8" value=""\n
tal:attributes="name alias; value param" style="width: 100%"\n
onkeypress="submitFormOnEnter(event, this.form, \'Base_doSelect\');" />\n
<input tal:condition="is_gadget_mode" \n
tal:define ="params python: {alias:\'this.value\'};"\n
size="8" type="textarea" \n
tal:attributes=\'value python: selection.getParams().get(alias,"");\n
onkeypress python:"if(event.keyCode==13){" + real_context.KnowledgePad_generateAjaxCall(context_url+"/"+form_id,box_relative_url,box_id,params).replace("\\"this.value\\"","this.value")+ "return false;;}"\'/>\n
</tal:block>\n
</span>\n
</td>\n
</tal:block>\n
</tr>\n
<tal:block tal:repeat="line line_list" tal:define="checked_uid_set here/getCheckedUidSet">\n
\n
<tr id="listbox_data_line_0" class="DataA"\n
tal:define="css python: line.getRowCSSClassName() or test(repeat[\'line\'].index % 2, \'DataB\', \'DataA\');\n
render_result line/render;"\n
tal:attributes="id string:${field_id}_data_line_${repeat/line/index}; class css">\n
<td tal:condition="is_report_tree_mode" class="DataA" align="left" valign="middle"\n
tal:attributes="class css"\n
tal:define="section_name python: line.getDomainTitle()">\n
<a tal:condition="section_name"\n
tal:define="method_id python: line.isOpen() and \'foldReport\' or \'unfoldReport\'"\n
tal:attributes="href string:${method_id}?report_url=${line/getDomainUrl}&amp;form_id=${form_id}&amp;list_selection_name=${selection_name};\n
class python:test(line.isOpen(), \'tree_open\', \'tree_closed\');\n
style python:\'white-space: nowrap;; margin-left: %spx\' % (line.getDepth() * 15)"\n
tal:content="section_name"/>\n
</td>\n
<td class="AnchorColumn Data" tal:condition="python:show_anchor_column and len(render_result)" style="width: 20px;">\n
<a href="#" tal:attributes="href python:render_result[0][4]"><img src="document_icon.gif" alt="document" tal:attributes="src string:${portal_url_string}/images/line_clickable.png" /></a>\n
</td>\n
<td tal:condition="show_select_column"\n
class="DataA" style="width: 50px; text-align: center; vertical-align: middle"\n
tal:attributes="class css">\n
<input tal:condition="python: not line.isSummary() and line.getObject() is not None"\n
type="checkbox" value="checked" name="uids:list"\n
tal:attributes="checked python: line.getUid() in checked_uid_set;\n
value line/getUid;" />\n
<tal:block tal:condition="python: line.isSummary() or line.getObject() is None"></tal:block>\n
</td>\n
<tal:block tal:repeat="value render_result">\n
<td tal:define="html python: value[0];\n
original_value python: value[1];\n
error python: value[2]"\n
class="DataA" align="left"\n
tal:attributes="class python: error and (css + \'Error\') or css;\n
align python: isinstance(original_value, (float, int, long)) and \'right\' or \'left\'">\n
<input tal:condition="not: repeat/value/index"\n
type="hidden" value="1" name="listbox_uid:list"\n
tal:attributes="value python: line.getUid() or \'\';\n
name string:${field_id}_uid:list" />\n
<span tal:replace="structure html">value</span>\n
</td>\n
</tal:block>\n
</tr>\n
</tal:block>\n
\n
<tr tal:condition="hide_rows_on_no_search_criterion"\n
class="listbox_missing_search_criterion">\n
<td tal:attributes="colspan python: len(here.getSearchValueList()) + 1">\n
<span i18n:translate="" \n
i18n:domain="ui">\n
To display actual content, please fill in one or more search criterion.\n
</span>\n
</td>\n
</tr>\n
\n
<tr tal:condition="python:here.showStat() and not hide_rows_on_no_search_criterion" id="listbox_stat_line"\n
class="listbox_stat_line"\n
tal:attributes="id string:${field_id}_stat_line">\n
<td tal:condition="is_report_tree_mode" class="Data">&nbsp;</td>\n
<td class="AnchorColumn Data" tal:condition="show_anchor_column">&nbsp;</td>\n
<td tal:condition="show_select_column" class="Data">&nbsp;</td>\n
<tal:block tal:repeat="value here/getStatValueList">\n
<td class="Data" align="left"\n
tal:define="original_value python: value[0]; processed_value python: value[1]"\n
tal:attributes="align python: isinstance(original_value, (float, int, long)) and \'right\' or \'left\'"\n
tal:content="structure processed_value" />\n
</tal:block>\n
</tr>\n
\n
</table>\n
</div>\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
<!-- ListBox ends here. -->\n
</tal:block>\n
]]></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>ListBox_asStandardHTML</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string></string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
<?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>_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 metal:define-macro="main"\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
<!-- ListBox (table mode) starts here -->\n
\n
<input tal:replace="nothing" type="hidden" name="form_id" tal:attributes="value form_id" tal:condition="form_id"/>\n
\n
<!--<input type="hidden" name="selection_name" tal:attributes="value selection_name" tal:condition="selection_name"/>\n
<input type="hidden" name="selection_index" tal:attributes="value selection_index" tal:condition="selection_index"/>-->\n
\n
<!--<input type="hidden" name="listbox_uid:list" value="" tal:attributes="name string:${field_id}_uid:list"/>\n
<input type="hidden" name="total_size" value="" tal:attributes="value here/total_size"/> -->\n
<input id="listbox_select" tal:attributes="id string:${field_id}_select"\n
title="Filter" alt="Filter" name="Base_doSelect:method"\n
type="submit" style="display: none"/>\n
\n
<tal:block tal:define="expand python: 1;\n
table_form_id request/current_form_id | form_id;\n
your_search_text python:here.getParamDict().get(\'your_search_text\', None)">\n
<tal:block metal:use-macro="template/macros/ListBoxContainer">\n
<tal:block metal:fill-slot="ListBoxBody">\n
\n
<input tal:condition="python:is_gadget_mode" type="hidden" name="dom_id" tal:attributes="value dom_id" />\n
\n
<table class="listbox table">\n
\n
<caption>\n
<span class="left">\n
\n
<a tal:condition="not:is_gadget_mode" tal:attributes="href string:${context_url}/${table_form_id}?list_style=search">\n
<img id="style_toggle_icon"\n
tal:attributes="src string:${context_url}/images/table_style_icon.png"\n
height="16"\n
title="Search mode"\n
alt="Search mode"\n
i18n:domain="ui" i18n:attributes="title"/>\n
</a>\n
\n
<input tal:condition="python:not is_gadget_mode and (is_domain_tree_supported or is_report_tree_supported)"\n
type="image" src="text_block.png" id="listbox_flat_list_mode"\n
title="Flat List" name="setFlatListMode:method"\n
value="1" alt="Flat List"\n
tal:attributes="src string:${portal_url_string}/images/text_block.png;\n
id string:${field_id}_flat_list_mode"\n
i18n:domain="ui" i18n:attributes="title" />\n
<input tal:condition="python: not is_gadget_mode and is_report_tree_supported"\n
type="image" src="view_tree.png" id="listbox_report_tree_mode"\n
title="Report Tree" name="setReportTreeMode:method"\n
value="1" alt="Report Tree"\n
tal:attributes="src string:${portal_url_string}/images/view_tree.png;\n
id string:${field_id}_report_tree_mode"\n
i18n:domain="ui" i18n:attributes="title" />\n
<input tal:condition="python: not is_gadget_mode and is_domain_tree_supported"\n
type="image" src="view_choose.png" id="listbox_domain_tree_mode"\n
title="Domain Tree" name="setDomainTreeMode:method"\n
value="1" alt="Domain Tree"\n
tal:attributes="src string:${portal_url_string}/images/view_choose.png;\n
id string:${field_id}_domain_tree_mode"\n
i18n:domain="ui" i18n:attributes="title" />\n
\n
<input tal:condition="python:not is_gadget_mode and (is_domain_tree_supported or is_report_tree_supported)"\n
type="image" id="listbox_reset_selection"\n
title="Show All" name="Folder_show:method"\n
id="listbox_reset_selection"\n
value="1" alt="Flat List"\n
tal:attributes="src string:${portal_url_string}/images/showall.png;"\n
i18n:domain="ui" i18n:attributes="title" />\n
\n
<!-- supporting search mode for gadget mode -->\n
\n
<button tal:condition="is_gadget_mode"\n
tal:define = "params python: {\'list_style\':\'search\'}"\n
type="button"\n
title="Search mode"\n
tal:attributes="onclick python: real_context.KnowledgePad_generateAjaxCall(context_url+\'/\'+form_id,box,dom_id,params);"\n
i18n:domain="ui" i18n:attributes="title">\n
<img id="style_toggle_icon"\n
alt="Search mode"\n
tal:attributes="src string:${context_url}/images/table_style_icon.png"\n
height="16"/></button>\n
<a tal:attributes="id string:${field_id}_title; href here/getListActionUrl"\n
tal:condition="python: here.field.get_value(\'list_action\')">\n
<em i18n:translate="" \n
i18n:domain="ui" tal:content="here/getTitle" />\n
</a>\n
<tal:block tal:condition="python: not here.field.get_value(\'list_action\')">\n
<em i18n:translate="" \n
i18n:domain="ui" tal:content="here/getTitle" />\n
</tal:block>\n
<!-- supporting domain tree mode for gadget mode (disabled)-->\n
<!--\n
<br tal:condition="is_gadget_mode"/>\n
<button tal:condition="python: is_gadget_mode and (is_domain_tree_supported or is_report_tree_supported)"\n
tal:define = "params python: {\'setFlatListMode:method\':1}"\n
id="listbox_flat_list_mode"\n
type="button"\n
title="Flat List"\n
alt="Flat List"\n
tal:attributes="id string:${field_id}_flat_list_mode;\n
onclick python: real_context.KnowledgePad_generateAjaxCall(context_url+\'/\'+form_id,box,dom_id,params);"\n
i18n:domain="ui" i18n:attributes="title">\n
<img tal:attributes="src string:${portal_url_string}/images/text_block.png;"/></button>\n
\n
<button tal:condition="python: is_gadget_mode and is_report_tree_supported"\n
tal:define = "params python: {\'setReportTreeMode:method\':1}"\n
style="cursor:pointer;" id="listbox_report_tree_mode"\n
type="button"\n
title="Report Tree"\n
alt="Report Tree"\n
tal:attributes="id string:${field_id}_report_tree_mode;\n
onclick python: real_context.KnowledgePad_generateAjaxCall(context_url+\'/\'+form_id,box,dom_id,params);"\n
i18n:domain="ui" i18n:attributes="title">\n
<img src="view_tree.png"\n
tal:attributes="src string:${portal_url_string}/images/view_tree.png;"/></button>\n
\n
<button tal:condition="python: is_gadget_mode and is_domain_tree_supported"\n
tal:define = "params python: {\'setDomainTreeMode:method\':\'1\'}"\n
style="cursor:pointer;" id="listbox_domain_tree_mode"\n
type="button"\n
title="Domain Tree"\n
alt="Domain Tree"\n
tal:attributes="id string:${field_id}_domain_tree_mode;\n
onclick python: real_context.KnowledgePad_generateAjaxCall(context_url+\'/\'+form_id,box,dom_id,params);"\n
i18n:domain="ui" i18n:attributes="title">\n
<img tal:attributes="src string:${portal_url_string}/images/view_choose.png;"/></button>\n
-->\n
</span>\n
\n
<span class="right"\n
tal:define="listbox_max_lines python: int(here.getMaxLineNumber());\n
total_line python: int(here.total_size);\n
current_page python: int(here.current_page) + 1;\n
current_page_max python: listbox_max_lines * current_page;\n
current_page_start python: (listbox_max_lines * (current_page - 1)) + 1;\n
current_page_stop python: (total_line < current_page_max) and total_line or current_page_max;">\n
<tal:block condition="python: total_line > 0"\n
tal:replace="structure python: real_context.Base_translateString(\'Results <em>${start} - ${stop}</em> of <em>${total}</em>.\', mapping=dict(start=current_page_start, stop=current_page_stop, total=total_line))"/>\n
<span tal:condition="python: total_line == 0" class="warning" i18n:translate="" i18n:domain="ui">No result !</span>\n
</span>\n
</caption>\n
\n
<tr class ="thead listbox_search_line">\n
<td tal:condition="python:not is_gadget_mode and show_select_column"\n
class="Data" style="width: 50px; text-align: center; vertical-align: middle; white-space: nowrap;">\n
<input id="listbox_check_all" type="image"\n
name="checkAll:method" value="1"\n
alt="Check All" title="Check All"\n
tal:attributes="id string:${field_id}_check_all;\n
name string:${field_id}_checkAll:method;\n
src string:${portal_url_string}/images/checkall.png"\n
i18n:domain="ui" i18n:attributes="title" />&nbsp;<input id="listbox_uncheck_all"\n
type="image" name="uncheckAll:method" value="1"\n
style="border: 0" alt="Uncheck All" title="Uncheck All"\n
tal:attributes="id string:${field_id}_uncheck_all;\n
src string:${portal_url_string}/images/decheckall.png;\n
name string:${field_id}_uncheckAll:method;"\n
i18n:domain="ui" i18n:attributes="title" />\n
</td>\n
\n
<tal:block tal:repeat="value here/getLabelValueList">\n
<tal:block tal:define="sql python: value[0];\n
title python: value[1];\n
sort_order python: value[2]">\n
<th tal:condition="sql">\n
\n
<button tal:condition="not:is_gadget_mode" type="submit" class="sort_button"\n
name="setSelectionQuickSortOrder:method"\n
tal:attributes="title string:${title}; \n
value string:${field_id}.${sql}"\n
i18n:domain="ui" i18n:attributes="title">\n
<span tal:content="title" i18n:domain="ui" i18n:translate="">ID</span>\n
</button>\n
\n
<!-- Sort for gadget mode -->\n
<button tal:condition="is_gadget_mode" \n
tal:define ="params python: {\'setSelectionQuickSortOrder:method\':field_id+\'.\'+sql};"\n
type="button" \n
class="sort_button"\n
tal:attributes="title string:${title}; \n
onclick python: real_context.KnowledgePad_generateAjaxCall(context_url+\'/\'+form_id,box,dom_id,params);"\n
i18n:domain="ui" i18n:attributes="title">\n
<span tal:content="title" i18n:domain="ui" i18n:translate="">ID</span>\n
</button>\n
\n
<img tal:condition="python: sort_order == \'ascending\'"\n
alt="Ascending Display" title="Ascending Display"\n
tal:attributes="src string:${portal_url_string}/images/1bottomarrow.png"\n
style="float:left"\n
i18n:domain="ui" i18n:attributes="title"/>\n
<img tal:condition="python: sort_order == \'descending\'"\n
alt="Descending Display" title="Descending Display"\n
tal:attributes="src string:${portal_url_string}/images/1toparrow.png"\n
style="float:left"\n
i18n:domain="ui" i18n:attributes="title"/>\n
</th>\n
<th tal:condition="not: sql" tal:content="title" i18n:domain="ui" i18n:translate=""/>\n
</tal:block>\n
</tal:block>\n
</tr>\n
<tr class="thead listbox_search_line" tal:condition="show_search_line">\n
<td tal:condition="python: show_select_column and show_search_line and not is_gadget_mode"\n
class="Data" style="width: 50px; text-align: center; vertical-align: middle">\n
<input id="listbox_select" type="image"\n
title="Action" alt="Action" name="Base_doSelect:method"\n
tal:attributes="id string:${field_id}_select;\n
src string:${portal_url_string}/images/exec16.png"\n
i18n:domain="ui" i18n:attributes="title" />\n
\n
</td>\n
<td tal:repeat="value here/getSearchValueList">\n
<tal:block tal:define="alias python: value[0];\n
param python: value[1];\n
search_field python: value[2]"\n
tal:condition="alias">\n
<tal:block\n
tal:condition="python: search_field is not None"\n
tal:replace="structure python: search_field.render(value=param, key=alias)"/>\n
\n
<input tal:condition="python: not is_gadget_mode and search_field is None" \n
name="id" size="5" value=""\n
type="text" tal:attributes="name alias; value param"/>\n
\n
<!-- Search for gadget mode -->\n
<input tal:condition="python: is_gadget_mode and search_field is None" \n
tal:define ="params python: {alias:\'this.value\'};"\n
size="8"\n
type="textarea" \n
tal:attributes=\'value python: selection.getParams().get(alias,"");\n
onkeypress python:"if(event.keyCode==13){" + real_context.KnowledgePad_generateAjaxCall(context_url+"/"+form_id,box,dom_id,params).replace("\\"this.value\\"","this.value")+ "return false;;}"\'/>\n
\n
</tal:block>\n
</td>\n
</tr>\n
\n
<tal:replace tal:content="nothing">\n
TODO: Move pagination pre-calcultion higher in that code.\n
</tal:replace>\n
<tr class="tbody" tal:condition="line_list"\n
tal:repeat="line line_list" tal:define="checked_uid_set here/getCheckedUidSet">\n
<td tal:condition="python: show_select_column and not is_gadget_mode"\n
class="DataA" style="width: 50px; text-align: center; vertical-align: middle"\n
>\n
<input tal:condition="python: not line.isSummary() and line.getObject() is not None"\n
type="checkbox" value="checked" id="listbox_cb_1" name="uids:list"\n
tal:attributes="checked python: line.getUid() in checked_uid_set;\n
value line/getUid;\n
id string:${field_id}_cb_${line/getUid}" />\n
<tal:block tal:condition="python: line.isSummary() or line.getObject() is None"></tal:block>\n
</td>\n
\n
<tal:block tal:repeat="value line/render">\n
<td tal:define="html python: value[0];\n
original_value python: value[1];\n
error python: value[2];\n
editable_field python: value[3];\n
editable_field_css python: editable_field != None and editable_field.get_value(\'css_class\')">\n
<input tal:condition="not: repeat/value/index"\n
type="hidden" value="1" name="listbox_uid:list"\n
tal:attributes="value python: line.getUid() or \'\';\n
name string:${field_id}_uid:list" />\n
<tal:block tal:replace="structure html">value</tal:block>\n
</td>\n
</tal:block>\n
</tr>\n
<tr tal:condition="python: int(here.total_size) > int(here.getMaxLineNumber())"\n
class="tfoot">\n
<td class="pageNavigation" style="white-space: nowrap; vertical-align: middle; text-align: right;"\n
tal:attributes="colspan python: len(here.getSelectedColumnList()) + bool(show_select_column)">\n
<tal:block metal:use-macro="real_context/page_navigation_render/macros/page_navigation" />\n
</td>\n
</tr>\n
\n
<tr tal:condition="hide_rows_on_no_search_criterion"\n
class="listbox_missing_search_criterion">\n
<td tal:attributes="colspan python: len(here.getSearchValueList()) + 1">\n
<span i18n:translate="" \n
i18n:domain="ui">\n
To display actual content, please fill in one or more search criterion.\n
</span>\n
</td>\n
</tr>\n
\n
</table>\n
\n
<!-- Advanced Search footer -->\n
<div class="centeredInner extendedSearchBar"\n
tal:condition="python:not is_gadget_mode and show_search_line and your_search_text is not None">\n
<input name="bottom_your_search_text" size="40" value=""\n
type="text" tal:attributes="value your_search_text"\n
onkeypress="submitFormOnEnter(event, this.form, \'ERP5Site_processAdvancedSearchBottom\');"/>\n
<input class="button" value="Search" name="ERP5Site_processAdvancedSearchBottom:method" type="submit" />\n
</div>\n
\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
<!-- ListBox ends here -->\n
\n
</tal:block>\n
]]></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>ListBox_asTableStyleHTML</string> </value>
</item>
<item>
<key> <string>title</string> </key>
<value> <string>Listbox as tables renderer</string> </value>
</item>
</dictionary>
</pickle>
</record>
</ZopeData>
995
\ No newline at end of file
997
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment