Commit d0fcdcda authored by Kazuhiko Shiozaki's avatar Kazuhiko Shiozaki

* Make Page Templates themselves valid XML (except DOCTYPE definition).


git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@17734 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent 0a1f2563
......@@ -3,11 +3,8 @@
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.PageTemplates.ZopePageTemplate</string>
<string>ZopePageTemplate</string>
</tuple>
<none/>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
<tuple/>
</tuple>
</pickle>
<pickle>
......@@ -54,83 +51,30 @@
<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
<tal:block 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@nexedi.com>\n
Christophe Dumez <christophe@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
XXX: uses hardcoded indices values to access fields\n
-->\n
</tal:block>\n
<tal:block metal:define-macro="master">\n
<tal:block metal:use-macro="here/dialog_main/macros/master">\n
<tal:block metal:fill-slot="main">\n
<div class="dialog_box">\n
<tal:block tal:condition="preferred_html_style_developper_mode">\n
<tal:block metal:use-macro="developper_shortcut_render/macros/form"/>\n
</tal:block>\n
<table tal:define="selection_name request/selection_name;\n
base_form python: getattr(here, request[\'form_id\']);\n
groups base_form/get_groups;\n
listbox python: base_form.Form_getListbox();\n
default_columns python: listbox.get_value(\'columns\');\n
columns python: here.portal_selections.getSelectionColumns(selection_name, REQUEST=request, columns=default_columns);\n
selected_stats python: here.portal_selections.getSelectionStats(selection_name, REQUEST=request);\n
global row_index python: 0;\n
global row_keys python: [\'None\'];\n
global stats python: [\' \',\'count\',\'sum\',\'max\',\'min\',\'avg\'];\n
all_columns python: listbox.get_value(\'all_columns\')">\n
<tal:block tal:repeat="item columns">\n
<tr tal:define="global row_index python:row_index+1;\n
dummy python:row_keys.append(item[0])"\n
tal:attributes="id string:column_${row_index}">\n
<td>\n
<tal:block i18n:translate="" i18n:domain="ui">Column</tal:block>\n
<tal:block tal:replace="row_index" />\n
</td>\n
<td>\n
<select name="field_columns">\n
<tal:block tal:repeat="option python: [(\'None\',\'None\')] + all_columns">\n
<option tal:content="python: option[1]"\n
tal:attributes="value python:option[0];\n
selected python: option[0]==item[0] and \'selected\' or nothing"\n
i18n:translate="" i18n:domain="ui" />\n
</tal:block>\n
</select>\n
</td>\n
<td>\n
<select name="stat_columns">\n
<tal:block tal:repeat="stat stats">\n
<option tal:content="stat"\n
tal:attributes="value stat;\n
selected python: (len(selected_stats) >= row_index and stat == selected_stats[row_index - 1]) and \'selected\' or nothing"\n
i18n:translate="" i18n:domain="ui" />\n
</tal:block>\n
</select>\n
</td>\n
</tr>\n
<tal:block metal:define-macro="master">\n
<tal:block metal:use-macro="here/dialog_main/macros/master">\n
<tal:block metal:fill-slot="main">\n
<div class="dialog_box">\n
<tal:block tal:condition="preferred_html_style_developper_mode">\n
<tal:block metal:use-macro="developper_shortcut_render/macros/form" />\n
</tal:block>\n
<tal:block tal:repeat="item all_columns">\n
<tal:block tal:condition="python: item[0] not in row_keys">\n
<tr tal:define="global row_index python:row_index+1"\n
<table tal:define="selection_name request/selection_name;\n
base_form python: getattr(here, request[\'form_id\']);\n
groups base_form/get_groups;\n
listbox python: base_form.Form_getListbox();\n
default_columns python: listbox.get_value(\'columns\');\n
columns python: here.portal_selections.getSelectionColumns(selection_name, REQUEST=request, columns=default_columns);\n
selected_stats python: here.portal_selections.getSelectionStats(selection_name, REQUEST=request);\n
global row_index python: 0;\n
global row_keys python: [\'None\'];\n
global stats python: [\' \',\'count\',\'sum\',\'max\',\'min\',\'avg\'];\n
all_columns python: listbox.get_value(\'all_columns\')">\n
<tal:block tal:repeat="item columns">\n
<tr tal:define="global row_index python:row_index+1;\n
dummy python:row_keys.append(item[0])"\n
tal:attributes="id string:column_${row_index}">\n
<td>\n
<tal:block i18n:translate="" i18n:domain="ui">Column</tal:block>\n
......@@ -138,15 +82,12 @@ XXX: uses hardcoded indices values to access fields\n
</td>\n
<td>\n
<select name="field_columns">\n
<option selected="selected"\n
value="None"\n
i18n:translate="" i18n:domain="ui">\n
None\n
</option>\n
<option tal:repeat="option all_columns"\n
tal:content="python:option[1]"\n
tal:attributes="value python:option[0]"\n
i18n:translate="" i18n:domain="ui" />\n
<tal:block tal:repeat="option python: [(\'None\',\'None\')] + all_columns">\n
<option tal:content="python: option[1]"\n
tal:attributes="value python:option[0];\n
selected python: option[0]==item[0] and \'selected\' or nothing"\n
i18n:translate="" i18n:domain="ui" />\n
</tal:block>\n
</select>\n
</td>\n
<td>\n
......@@ -154,19 +95,54 @@ XXX: uses hardcoded indices values to access fields\n
<tal:block tal:repeat="stat stats">\n
<option tal:content="stat"\n
tal:attributes="value stat;\n
selected python: len(selected_stats) >= row_index and stat == selected_stats[row_index - 1] and \'selected or nothing\'"\n
i18n:translate="" i18n:domain="ui" />\n
selected python: (len(selected_stats) >= row_index and stat == selected_stats[row_index - 1]) and \'selected\' or nothing"\n
i18n:translate="" i18n:domain="ui" />\n
</tal:block>\n
</select>\n
</td>\n
</tr>\n
</tal:block>\n
</tal:block>\n
</table>\n
</div>\n
<tal:block tal:repeat="item all_columns">\n
<tal:block tal:condition="python: item[0] not in row_keys">\n
<tr tal:define="global row_index python:row_index+1"\n
tal:attributes="id string:column_${row_index}">\n
<td>\n
<tal:block i18n:translate="" i18n:domain="ui">Column</tal:block>\n
<tal:block tal:replace="row_index" />\n
</td>\n
<td>\n
<select name="field_columns">\n
<option selected="selected"\n
value="None"\n
i18n:translate="" i18n:domain="ui">\n
None\n
</option>\n
<option tal:repeat="option all_columns"\n
tal:content="python:option[1]"\n
tal:attributes="value python:option[0]"\n
i18n:translate="" i18n:domain="ui" />\n
</select>\n
</td>\n
<td>\n
<select name="stat_columns">\n
<tal:block tal:repeat="stat stats">\n
<option tal:content="stat"\n
tal:attributes="value stat;\n
selected python: len(selected_stats) >= row_index and stat == selected_stats[row_index - 1] and \'selected or nothing\'"\n
i18n:translate="" i18n:domain="ui" />\n
</tal:block>\n
</select>\n
</td>\n
</tr>\n
</tal:block>\n
</tal:block>\n
</table>\n
</div>\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
</tal:block>
</tal:block>\n
]]></string> </value>
</item>
......
......@@ -51,307 +51,288 @@
<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
<tal:block 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@nexedi.com>\n
Christophe Dumez <christophe@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
<span id="jump" metal:define-macro="jump">\n
<select name="select_jump"\n
tal:attributes="onChange string:submitAction(this.form,\'Base_doJump\')">\n
<option selected="selected" value=""\n
i18n:translate="" i18n:domain="ui">Jump...</option>\n
<tal:block tal:repeat="jump actions/object_jump | nothing">\n
<option tal:attributes="value jump/url"\n
tal:content="jump/name" i18n:translate="" i18n:domain="ui"/>\n
</tal:block>\n
<tal:block tal:condition="preferred_html_style_developper_mode">\n
<tal:block tal:condition="python: here.getPortalTypeName() in here.portal_types.objectIds() and here.portal_types.getTypeInfo(here).Base_getSourceVisibility()">\n
<option value="1" disabled="disabled" i18n:translate="" i18n:domain="ui">-- Developper Mode --</option>\n
<option tal:attributes="value python: \'%s/manage_workspace\' % (here.portal_types.getTypeInfo(here).absolute_url(),)"\n
i18n:translate="" i18n:domain="ui">\n
Edit Portal Type \'<tal:block tal:content="python: here.getPortalTypeName()"\n
i18n:name="portal_type" i18n:translate="" i18n:domain="ui"/>\'\n
</option>\n
<tal:block metal:define-macro="master">\n
<span id="jump" metal:define-macro="jump">\n
<select name="select_jump"\n
tal:attributes="onChange string:submitAction(this.form,\'Base_doJump\')">\n
<option selected="selected" value=""\n
i18n:translate="" i18n:domain="ui">Jump...</option>\n
<tal:block tal:repeat="jump actions/object_jump | nothing">\n
<option tal:attributes="value jump/url"\n
tal:content="jump/name" i18n:translate="" i18n:domain="ui" />\n
</tal:block>\n
<tal:block tal:condition="here/portal_workflow/Base_getSourceVisibility">\n
<option value="1" disabled="disabled" i18n:translate="" i18n:domain="ui">-- Workflows --</option>\n
<tal:block tal:repeat="workflow python: here.portal_workflow.getWorkflowsFor(here)">\n
<option tal:attributes="value python: \'%s/manage_properties\' % (workflow.absolute_url(), )" tal:content="workflow/title"/>\n
<tal:block tal:condition="preferred_html_style_developper_mode">\n
<tal:block tal:condition="python: here.getPortalTypeName() in here.portal_types.objectIds() and here.portal_types.getTypeInfo(here).Base_getSourceVisibility()">\n
<option value="1" disabled="disabled" i18n:translate="" i18n:domain="ui">-- Developper Mode --</option>\n
<option tal:attributes="value python: \'%s/manage_workspace\' % (here.portal_types.getTypeInfo(here).absolute_url(),)"\n
i18n:translate="" i18n:domain="ui">\n
Edit Portal Type \'<tal:block tal:content="python: here.getPortalTypeName()"\n
i18n:name="portal_type" i18n:translate="" i18n:domain="ui" />\'\n
</option>\n
</tal:block>\n
<tal:block tal:condition="here/portal_workflow/Base_getSourceVisibility">\n
<option value="1" disabled="disabled" i18n:translate="" i18n:domain="ui">-- Workflows --</option>\n
<tal:block tal:repeat="workflow python: here.portal_workflow.getWorkflowsFor(here)">\n
<option tal:attributes="value python: \'%s/manage_properties\' % (workflow.absolute_url(), )" tal:content="workflow/title" />\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
</select>\n
<button type="submit" name="Base_doJump:method" title="Jump"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description"\n
i18n:translate="" i18n:domain="ui">Jump</span>\n
</button>\n
</span>\n
</select>\n
<button type="submit" name="Base_doJump:method" title="Jump"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description"\n
i18n:translate="" i18n:domain="ui">Jump</span>\n
</button>\n
</span>\n
\n
<span class="separator"></span>\n
<span class="separator"></span>\n
\n
<span id="action" metal:define-macro="action">\n
<select name="select_action"\n
onChange="submitAction(this.form,\'Base_doAction\')">\n
<option selected="selected" value=""\n
i18n:translate="" i18n:domain="ui">Action...</option>\n
<tal:block tal:define="allowed_content_type_list here/getVisibleAllowedContentTypeList | python:[]">\n
<tal:block tal:repeat="content_id allowed_content_type_list">\n
<option tal:attributes="value python: \'add %s\' % (content_id, )"\n
i18n:translate="" i18n:domain="ui">\n
Add <tal:block tal:content="content_id"\n
i18n:name="portal_type" i18n:translate="" i18n:domain="ui"/>\n
</option>\n
<span id="action" metal:define-macro="action">\n
<select name="select_action"\n
onChange="submitAction(this.form,\'Base_doAction\')">\n
<option selected="selected" value=""\n
i18n:translate="" i18n:domain="ui">Action...</option>\n
<tal:block tal:define="allowed_content_type_list here/getVisibleAllowedContentTypeList | python:[]">\n
<tal:block tal:repeat="content_id allowed_content_type_list">\n
<option tal:attributes="value python: \'add %s\' % (content_id, )"\n
i18n:translate="" i18n:domain="ui">\n
Add <tal:block tal:content="content_id"\n
i18n:name="portal_type" i18n:translate="" i18n:domain="ui" />\n
</option>\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
<tal:block tal:repeat="action actions/object_add | nothing">\n
<option tal:attributes="value string:object ${action/url}"\n
i18n:translate="" i18n:domain="ui">\n
Add <tal:block tal:content="action/name" i18n:name="portal_type" i18n:translate=""/>\n
</option>\n
</tal:block>\n
<tal:block tal:define="document_template_list here/getDocumentTemplateList | nothing"\n
tal:condition="document_template_list">\n
<option disabled="disabled">-- <tal:block i18n:translate="" i18n:domain="ui">Templates</tal:block> --</option>\n
<tal:block tal:repeat="document_template document_template_list">\n
<option tal:attributes="value python:\'template %s\' % (document_template.getRelativeUrl(), )"\n
<tal:block tal:repeat="action actions/object_add | nothing">\n
<option tal:attributes="value string:object ${action/url}"\n
i18n:translate="" i18n:domain="ui">\n
Add <tal:block tal:content="document_template/getTitle"\n
i18n:name="document_template"/>\n
Add <tal:block tal:content="action/name" i18n:name="portal_type" i18n:translate="" />\n
</option>\n
</tal:block>\n
</tal:block>\n
<option disabled="disabled">-- <tal:block i18n:translate="" i18n:domain="ui">Workflows</tal:block> --</option>\n
<tal:block tal:repeat="action actions/workflow">\n
<option tal:content="action/name"\n
tal:attributes="value python: \'workflow %s\' % (action[\'url\'], )"\n
i18n:translate="" i18n:domain="ui"/>\n
</tal:block>\n
<option disabled="disabled">-- <tal:block i18n:translate="" i18n:domain="ui">Object</tal:block> --</option>\n
<tal:block tal:repeat="action actions/object_action | nothing">\n
<option tal:content="action/name"\n
tal:attributes="value python: \'object %s\' % (action[\'url\'], )"\n
i18n:translate="" i18n:domain="ui"/>\n
</tal:block>\n
<tal:block tal:define="object_view_list actions/object_view|nothing;\n
module_view_list python:[i for i in object_view_list if i[\'id\']==\'module_view\']"\n
tal:condition="module_view_list">\n
<tal:block tal:repeat="action module_view_list">\n
<option tal:content="action/name"\n
tal:attributes="value python: \'object %s\' % (action[\'url\'],)"\n
i18n:translate="" i18n:domain="ui"/>\n
<tal:block tal:define="document_template_list here/getDocumentTemplateList | nothing"\n
tal:condition="document_template_list">\n
<option disabled="disabled">-- <tal:block i18n:translate="" i18n:domain="ui">Templates</tal:block> --</option>\n
<tal:block tal:repeat="document_template document_template_list">\n
<option tal:attributes="value python:\'template %s\' % (document_template.getRelativeUrl(), )"\n
i18n:translate="" i18n:domain="ui">\n
Add <tal:block tal:content="document_template/getTitle"\n
i18n:name="document_template" />\n
</option>\n
</tal:block>\n
</tal:block>\n
<option disabled="disabled">-- <tal:block i18n:translate="" i18n:domain="ui">Workflows</tal:block> --</option>\n
<tal:block tal:repeat="action actions/workflow">\n
<option tal:content="action/name"\n
tal:attributes="value python: \'workflow %s\' % (action[\'url\'], )"\n
i18n:translate="" i18n:domain="ui" />\n
</tal:block>\n
</tal:block>\n
<tal:block tal:replace=\'nothing\'>\n
<!-- XXX folder actions is inherited from CMF, but not used in ERP5 (for now) -->\n
<option disabled="disabled">-- <tal:block i18n:translate="" i18n:domain="ui">folder</tal:block> --</option>\n
<tal:block tal:repeat="action actions/folder">\n
<option disabled="disabled">-- <tal:block i18n:translate="" i18n:domain="ui">Object</tal:block> --</option>\n
<tal:block tal:repeat="action actions/object_action | nothing">\n
<option tal:content="action/name"\n
tal:attributes="value python: \'folder %s\' % (action[\'url\'], )"\n
i18n:translate="" i18n:domain="ui"/>\n
tal:attributes="value python: \'object %s\' % (action[\'url\'], )"\n
i18n:translate="" i18n:domain="ui" />\n
</tal:block>\n
<tal:block tal:define="object_view_list actions/object_view|nothing;\n
module_view_list python:[i for i in object_view_list if i[\'id\']==\'module_view\']"\n
tal:condition="module_view_list">\n
<tal:block tal:repeat="action module_view_list">\n
<option tal:content="action/name"\n
tal:attributes="value python: \'object %s\' % (action[\'url\'],)"\n
i18n:translate="" i18n:domain="ui" />\n
</tal:block>\n
</tal:block>\n
<tal:block tal:replace=\'nothing\'>\n
<!-- XXX folder actions is inherited from CMF, but not used in ERP5 (for now) -->\n
<option disabled="disabled">-- <tal:block i18n:translate="" i18n:domain="ui">folder</tal:block> --</option>\n
<tal:block tal:repeat="action actions/folder">\n
<option tal:content="action/name"\n
tal:attributes="value python: \'folder %s\' % (action[\'url\'], )"\n
i18n:translate="" i18n:domain="ui" />\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
</select>\n
<button type="submit" name="Base_doAction:method" title="Action"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description">Action</span>\n
</button>\n
</span>\n
</select>\n
<button type="submit" name="Base_doAction:method" title="Action"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description">Action</span>\n
</button>\n
</span>\n
\n
\n
<span class="tool_buttons" metal:define-macro="tool_buttons">\n
<span class="tool_buttons" metal:define-macro="tool_buttons">\n
\n
<!-- XXX: exchange_actions seems to be bad condition -->\n
<span class="first"\n
tal:define="search_actions actions/object_search | nothing;\n
exchange_actions actions/object_exchange | nothing;\n
report_actions actions/object_report | nothing;\n
button_actions actions/object_button | nothing;\n
sort_actions actions/object_sort | nothing;\n
ui_actions actions/object_ui | nothing;\n
print_actions actions/object_print | nothing;\n
list_mode list_mode | nothing">\n
<span class="separator"></span>\n
<tal:block tal:condition="list_mode | nothing">\n
<button class="cut" type="submit" name="Folder_cut:method" title="Cut"\n
<!-- XXX: exchange_actions seems to be bad condition -->\n
<span class="first"\n
tal:define="search_actions actions/object_search | nothing;\n
exchange_actions actions/object_exchange | nothing;\n
report_actions actions/object_report | nothing;\n
button_actions actions/object_button | nothing;\n
sort_actions actions/object_sort | nothing;\n
ui_actions actions/object_ui | nothing;\n
print_actions actions/object_print | nothing;\n
list_mode list_mode | nothing">\n
<span class="separator"></span>\n
<tal:block tal:condition="list_mode | nothing">\n
<button class="cut" type="submit" name="Folder_cut:method" title="Cut"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Cut</span>\n
</button>\n
<button class="copy" type="submit" name="Folder_copy:method" title="Copy"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Copy</span>\n
</button>\n
<button class="paste" type="submit" name="Folder_paste:method" title="Paste"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Paste</span>\n
</button>\n
<span class="separator"></span>\n
</tal:block>\n
<button tal:condition="print_actions" class="print" type="submit" name="Folder_print:method" title="Print"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Cut</span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Print</span>\n
</button>\n
<button class="copy" type="submit" name="Folder_copy:method" title="Copy"\n
<button class="new" type="submit" title="New"\n
tal:attributes="name python: list_mode and \'Folder_create:method\' or \'Base_createNewDocument:method\'"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Copy</span>\n
<span class="description" i18n:translate="" i18n:domain="ui">New</span>\n
</button>\n
<button class="paste" type="submit" name="Folder_paste:method" title="Paste"\n
<button tal:condition="list_mode" class="delete" type="submit" name="Folder_deleteObjectList:method" title="Delete"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Paste</span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Delete</span>\n
</button>\n
<span class="separator"></span>\n
</tal:block>\n
<button tal:condition="print_actions" class="print" type="submit" name="Folder_print:method" title="Print"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Print</span>\n
</button>\n
<button class="new" type="submit" title="New"\n
tal:attributes="name python: list_mode and \'Folder_create:method\' or \'Base_createNewDocument:method\'"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">New</span>\n
</button>\n
<button tal:condition="list_mode" class="delete" type="submit" name="Folder_deleteObjectList:method" title="Delete"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Delete</span>\n
</button>\n
<tal:block tal:condition="not: list_mode">\n
<tal:block tal:condition="request/selection_index | nothing">\n
<tal:block tal:condition="not: list_mode">\n
<tal:block tal:condition="request/selection_index | nothing">\n
<span class="separator"></span>\n
<a class="jump_first" title="First"\n
tal:attributes="href python: \'portal_selections/viewFirst?%s\' % (http_parameters, )"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">First</span>\n
</a>\n
<a class="jump_previous" title="Previous"\n
tal:attributes="href python: \'portal_selections/viewPrevious?%s\' % (http_parameters, )"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Previous</span>\n
</a>\n
<a class="list_mode" title="List Mode" tal:attributes="href python: here.portal_selections.getSelectionListUrlFor(request[\'selection_name\'])"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">List Mode</span>\n
</a>\n
<a class="jump_next" title="Next"\n
tal:attributes="href python: \'portal_selections/viewNext?%s\' % (http_parameters, )"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Next</span>\n
</a>\n
<a class="jump_last" title="Last"\n
tal:attributes="href python: \'portal_selections/viewLast?%s\' % (http_parameters, )"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Last</span>\n
</a>\n
</tal:block>\n
</tal:block>\n
<tal:block tal:condition="list_mode">\n
<span class="separator"></span>\n
<a class="jump_first" title="First"\n
tal:attributes="href python: \'portal_selections/viewFirst?%s\' % (http_parameters, )"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">First</span>\n
</a>\n
<a class="jump_previous" title="Previous"\n
tal:attributes="href python: \'portal_selections/viewPrevious?%s\' % (http_parameters, )"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Previous</span>\n
</a>\n
<a class="list_mode" title="List Mode" tal:attributes="href python: here.portal_selections.getSelectionListUrlFor(request[\'selection_name\'])"\n
<a tal:condition="search_actions" class="find" title="Find"\n
tal:attributes="href python: here.ERP5Site_renderCustomLink(search_actions[0][\'url\'], http_parameter_list, dialog_category=\'object_search\')"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">List Mode</span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Find</span>\n
</a>\n
<a class="jump_next" title="Next"\n
tal:attributes="href python: \'portal_selections/viewNext?%s\' % (http_parameters, )"\n
i18n:attributes="title" i18n:domain="ui">\n
<button class="show_all" type="submit" name="Folder_show:method" title="Show All"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Next</span>\n
</a>\n
<a class="jump_last" title="Last"\n
tal:attributes="href python: \'portal_selections/viewLast?%s\' % (http_parameters, )"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="description" i18n:translate="" i18n:domain="ui">Show All</span>\n
</button>\n
<button type="submit" name="Folder_filter:method" title="Filter"\n
tal:attributes="class python: here.portal_selections.getSelectionInvertModeFor(request[\'selection_name\']) and \'filter_on\' or \'filter\';"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Filter</span>\n
</button>\n
<a tal:condition="sort_actions" class="sort" title="Sort"\n
tal:attributes="href python: here.ERP5Site_renderCustomLink(sort_actions[0][\'url\'], http_parameter_list, dialog_category=\'object_sort\')"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Last</span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Sort</span>\n
</a>\n
</tal:block>\n
</tal:block>\n
<tal:block tal:condition="list_mode">\n
<span class="separator"></span>\n
<a tal:condition="search_actions" class="find" title="Find"\n
tal:attributes="href python: here.ERP5Site_renderCustomLink(search_actions[0][\'url\'], http_parameter_list, dialog_category=\'object_search\')"\n
<span tal:condition="exchange_actions | report_actions"\n
class="separator"></span>\n
<a tal:condition="exchange_actions" class="import_export" title="Import / Export"\n
tal:attributes="href python: here.ERP5Site_renderCustomLink(exchange_actions[0][\'url\'], http_parameter_list, dialog_category=\'object_exchange\')"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Find</span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Import / Export</span>\n
</a>\n
<button class="show_all" type="submit" name="Folder_show:method" title="Show All"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Show All</span>\n
</button>\n
<button type="submit" name="Folder_filter:method" title="Filter"\n
tal:attributes="class python: here.portal_selections.getSelectionInvertModeFor(request[\'selection_name\']) and \'filter_on\' or \'filter\';"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Filter</span>\n
</button>\n
<a tal:condition="sort_actions" class="sort" title="Sort"\n
tal:attributes="href python: here.ERP5Site_renderCustomLink(sort_actions[0][\'url\'], http_parameter_list, dialog_category=\'object_sort\')"\n
<a tal:condition="report_actions" class="report" title="Report"\n
tal:attributes="href python: here.ERP5Site_renderCustomLink(report_actions[0][\'url\'], http_parameter_list, dialog_category=\'object_report\')"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Sort</span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Report</span>\n
</a>\n
</tal:block>\n
<span tal:condition="exchange_actions | report_actions"\n
class="separator"></span>\n
<a tal:condition="exchange_actions" class="import_export" title="Import / Export"\n
tal:attributes="href python: here.ERP5Site_renderCustomLink(exchange_actions[0][\'url\'], http_parameter_list, dialog_category=\'object_exchange\')"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Import / Export</span>\n
</a>\n
<a tal:condition="report_actions" class="report" title="Report"\n
tal:attributes="href python: here.ERP5Site_renderCustomLink(report_actions[0][\'url\'], http_parameter_list, dialog_category=\'object_report\')"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Report</span>\n
</a>\n
<tal:block tal:condition="button_actions">\n
<span class="separator"></span>\n
<tal:block tal:repeat="button_action button_actions">\n
<a tal:attributes="href python: \'%s%s%s\' % (button_action[\'url\'], \'?\' in button_action[\'url\'] and \'&amp;\' or \'?\', http_parameters)">\n
<img i18n:attributes="title" i18n:domain="ui"\n
tal:attributes="src python:button_action[\'icon\'];\n
title python:button_action[\'name\'];\n
alt python:button_action[\'name\']"/>\n
</a>\n
</tal:block>\n
</tal:block>\n
<tal:block tal:condition="list_mode">\n
<tal:block tal:condition="ui_actions">\n
<tal:block tal:condition="button_actions">\n
<span class="separator"></span>\n
<a class="configure" title="Configure"\n
tal:attributes="href python: here.ERP5Site_renderCustomLink(ui_actions[0][\'url\'], http_parameter_list, dialog_category=\'object_ui\')"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Configure</span>\n
</a>\n
<tal:block tal:repeat="button_action button_actions">\n
<a tal:attributes="href python: \'%s%s%s\' % (button_action[\'url\'], \'?\' in button_action[\'url\'] and \'&amp;\' or \'?\', http_parameters)">\n
<img i18n:attributes="title" i18n:domain="ui"\n
tal:attributes="src python:button_action[\'icon\'];\n
title python:button_action[\'name\'];\n
alt python:button_action[\'name\']" />\n
</a>\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
</span>\n
<tal:block tal:condition="list_mode">\n
<tal:block tal:condition="ui_actions">\n
<span class="separator"></span>\n
<a class="configure" title="Configure"\n
tal:attributes="href python: here.ERP5Site_renderCustomLink(ui_actions[0][\'url\'], http_parameter_list, dialog_category=\'object_ui\')"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Configure</span>\n
</a>\n
</tal:block>\n
</tal:block>\n
</span>\n
\n
<span class="second">\n
<a tal:condition="preferred_html_style_contextual_help"\n
class="jump_help" title="Help"\n
tal:attributes="href python: here.ERP5Site_getHelpUrl(current_action=current_action, current_form_id=current_form_id, workflow_action=request.get(\'workflow_action\'))"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Help</span>\n
</a>\n
<a tal:condition="preferred_html_style_developper_mode"\n
class="inspect_object" title="Inspect object" href="Base_viewInspectionReport"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Inspect object</span>\n
</a>\n
<a tal:condition="here/hasActivity | nothing" class="activity_pending"\n
title="Activity Pending"\n
tal:attributes="href python: here.portal_membership.checkPermission(\'View management screens\', here.portal_activities) and \'%s%s/manageActivities\' % (here.REQUEST[\'SERVER_URL\'],here.portal_activities.getUrl(), ) or \'#\'"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Activity Pending</span>\n
</a>\n
<span class="second">\n
<a tal:condition="preferred_html_style_contextual_help"\n
class="jump_help" title="Help"\n
tal:attributes="href python: here.ERP5Site_getHelpUrl(current_action=current_action, current_form_id=current_form_id, workflow_action=request.get(\'workflow_action\'))"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Help</span>\n
</a>\n
<a tal:condition="preferred_html_style_developper_mode"\n
class="inspect_object" title="Inspect object" href="Base_viewInspectionReport"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Inspect object</span>\n
</a>\n
<a tal:condition="here/hasActivity | nothing" class="activity_pending"\n
title="Activity Pending"\n
tal:attributes="href python: here.portal_membership.checkPermission(\'View management screens\', here.portal_activities) and \'%s%s/manageActivities\' % (here.REQUEST[\'SERVER_URL\'],here.portal_activities.getUrl(), ) or \'#\'"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Activity Pending</span>\n
</a>\n
</span>\n
</span>\n
</span>\n
<p class="clear"></p>\n
</tal:block>
<p class="clear"></p>\n
</tal:block>\n
</tal:block>\n
]]></string> </value>
</item>
......
......@@ -3,11 +3,8 @@
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.PageTemplates.ZopePageTemplate</string>
<string>ZopePageTemplate</string>
</tuple>
<none/>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
<tuple/>
</tuple>
</pickle>
<pickle>
......@@ -54,84 +51,57 @@
<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
<tal:block 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) 2007 Nexedi SA and Contributors. All Rights Reserved.\n
Vincent Pelletier <vincent@nexedi.com>\n
Christophe Dumez <christophe@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
\n
\n
<tal:block metal:define-macro="edit_link">\n
<a disabled="disabled" tal:condition="python: hasattr(object, \'meta_type\')"\n
tal:attributes="href python: \'%s/manage_main\' % (\'/\'.join(object.getPhysicalPath()[len(object.getPortalObject().getPhysicalPath()):])) # XXX: quick hack to get path;\n
title info;"><img tal:attributes="src python: \'%s/images/%s\' % (portal_path, image);\n
alt info;"/></a>\n
</tal:block>\n
\n
\n
<tal:block metal:define-macro="translate_link">\n
<a disabled="disabled" tal:define="image image | python: \'translate.png\'"\n
tal:attributes="href python: \'%s/manage_messages?regex=^%s%%24&amp;lang=%s\' % (\'/\'.join(here.Localizer.erp5_ui.getPhysicalPath()[len(here.Localizer.erp5_ui.getPortalObject().getPhysicalPath()):]), message.replace(\'(\', \'\\(\').replace(\')\', \'\\)\'), selected_language);\n
title info;"><img tal:attributes="src python: \'%s/images/%s\' % (portal_path, image);\n
alt info;"/></a>\n
</tal:block>\n
\n
\n
<tal:block metal:define-macro="form">\n
<tal:block tal:define="image python: \'editform.png\';\n
info python: \'Edit this form\';\n
object nocall: form;">\n
<tal:block metal:use-macro="developper_shortcut_render/macros/edit_link"/>\n
<tal:block metal:define-macro="edit_link">\n
<a disabled="disabled" tal:condition="python: hasattr(object, \'meta_type\')"\n
tal:attributes="href python: \'%s/manage_main\' % (\'/\'.join(object.getPhysicalPath()[len(object.getPortalObject().getPhysicalPath()):])) # XXX: quick hack to get path;\n
title info;"><img tal:attributes="src python: \'%s/images/%s\' % (portal_path, image);\n
alt info;" /></a>\n
</tal:block>\n
<tal:block tal:define="image python: \'editformaction.png\';\n
info python: \'Edit this form\\\'s action\';\n
object python: getattr(here, form.action, None);">\n
<tal:block metal:use-macro="developper_shortcut_render/macros/edit_link"/>\n
<tal:block metal:define-macro="translate_link">\n
<a disabled="disabled" tal:define="image image | python: \'translate.png\'"\n
tal:attributes="href python: \'%s/manage_messages?regex=^%s%%24&amp;lang=%s\' % (\'/\'.join(here.Localizer.erp5_ui.getPhysicalPath()[len(here.Localizer.erp5_ui.getPortalObject().getPhysicalPath()):]), message.replace(\'(\', \'\\(\').replace(\')\', \'\\)\'), selected_language);\n
title info;"><img tal:attributes="src python: \'%s/images/%s\' % (portal_path, image);\n
alt info;" /></a>\n
</tal:block>\n
</tal:block>\n
\n
\n
<tal:block metal:define-macro="field_developper">\n
<tal:block tal:define="image python: \'editfield.png\';\n
info python: \'Edit this field\';\n
object nocall: field;">\n
<tal:block metal:use-macro="developper_shortcut_render/macros/edit_link"/>\n
<tal:block metal:define-macro="form">\n
<tal:block tal:define="image python: \'editform.png\';\n
info python: \'Edit this form\';\n
object nocall: form;">\n
<tal:block metal:use-macro="developper_shortcut_render/macros/edit_link" />\n
</tal:block>\n
<tal:block tal:define="image python: \'editformaction.png\';\n
info python: \'Edit this form\\\'s action\';\n
object python: getattr(here, form.action, None);">\n
<tal:block metal:use-macro="developper_shortcut_render/macros/edit_link" />\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
<tal:block metal:define-macro="field_translator">\n
<tal:block tal:define="info python: \'Translate this field title\';\n
message python: field[\'title\'];\n
image python: \'translate.png\'">\n
<tal:block metal:use-macro="developper_shortcut_render/macros/translate_link"/>\n
<tal:block metal:define-macro="field_developper">\n
<tal:block tal:define="image python: \'editfield.png\';\n
info python: \'Edit this field\';\n
object nocall: field;">\n
<tal:block metal:use-macro="developper_shortcut_render/macros/edit_link" />\n
</tal:block>\n
</tal:block>\n
<tal:block tal:condition="field_description | nothing">\n
<tal:block tal:define="message field_description;\n
info python: \'Translate this field description\';\n
image python: \'translate_tooltip.png\'"\n
tal:condition="python: message not in (None, \'\')">\n
<tal:block metal:use-macro="developper_shortcut_render/macros/translate_link"/>\n
<tal:block metal:define-macro="field_translator">\n
<tal:block tal:define="info python: \'Translate this field title\';\n
message python: field[\'title\'];\n
image python: \'translate.png\'">\n
<tal:block metal:use-macro="developper_shortcut_render/macros/translate_link" />\n
</tal:block>\n
<tal:block tal:condition="field_description | nothing">\n
<tal:block tal:define="message field_description;\n
info python: \'Translate this field description\';\n
image python: \'translate_tooltip.png\'"\n
tal:condition="python: message not in (None, \'\')">\n
<tal:block metal:use-macro="developper_shortcut_render/macros/translate_link" />\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
</tal:block>
</tal:block>\n
]]></string> </value>
</item>
......
......@@ -3,11 +3,8 @@
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.PageTemplates.ZopePageTemplate</string>
<string>ZopePageTemplate</string>
</tuple>
<none/>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
<tuple/>
</tuple>
</pickle>
<pickle>
......@@ -54,58 +51,38 @@
<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
<tal:block 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@nexedi.com>\n
Christophe Dumez <christophe@nexedi.com>\n
<tal:block metal:define-macro="master">\n
<tal:block tal:define="form_action string:Base_callDialogMethod;\n
dialog_id form/id | template/id;\n
form_id request/form_id | string:view;\n
dialog_method form/action | dialog_id;\n
update_action form/update_action;\n
global dialog_category request/dialog_category | nothing;\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 tal:define="form_action string:Base_callDialogMethod;\n
dialog_id form/id | template/id;\n
form_id request/form_id | string:view;\n
dialog_method form/action | dialog_id;\n
update_action form/update_action;\n
global dialog_category request/dialog_category | nothing;\n
\n
local_parameter_list local_parameter_list | python: {};\n
dummy python: local_parameter_list.update({\'dialog_id\': dialog_id, \'dialog_method\': dialog_method, \'update_method\': update_action, \'dialog_category\': dialog_category, \'cancel_url\': request.get(\'cancel_url\'), \'form_id\': form_id});\n
title python: here.Base_translateString(here.Base_getFormViewDialogActionButtonTitle(form))">\n
<tal:block metal:use-macro="here/main_template/macros/master">\n
<tal:block metal:fill-slot="main">\n
<div class="list_dialog">\n
<tal:block metal:define-slot="main" />\n
<tal:block metal:define-slot="bottom" />\n
</div>\n
<input tal:condition="cancel_url|request/cancel_url|nothing"\n
i18n:attributes="value" i18n:domain="ui" value="Cancel Action"\n
id="dialog_cancel_button" name="Base_cancel:method" type="submit" />\n
<input i18n:attributes="value" i18n:domain="ui" value="Update"\n
tal:condition="python: form.update_action!=\'\'"\n
id="dialog_update_button"\n
name="Base_showUpdateDialog:method" type="submit" />\n
<input tal:attributes="value python: here.Base_getFormViewDialogActionButtonTitle(form);\n
name string:${form_action}:method"\n
i18n:attributes="value" i18n:domain="ui" accesskey="V"\n
id="dialog_submit_button" type="submit" />\n
local_parameter_list local_parameter_list | python: {};\n
dummy python: local_parameter_list.update({\'dialog_id\': dialog_id, \'dialog_method\': dialog_method, \'update_method\': update_action, \'dialog_category\': dialog_category, \'cancel_url\': request.get(\'cancel_url\'), \'form_id\': form_id});\n
title python: here.Base_translateString(here.Base_getFormViewDialogActionButtonTitle(form))">\n
<tal:block metal:use-macro="here/main_template/macros/master">\n
<tal:block metal:fill-slot="main">\n
<div class="list_dialog">\n
<tal:block metal:define-slot="main" />\n
<tal:block metal:define-slot="bottom" />\n
</div>\n
<input tal:condition="cancel_url|request/cancel_url|nothing"\n
i18n:attributes="value" i18n:domain="ui" value="Cancel Action"\n
id="dialog_cancel_button" name="Base_cancel:method" type="submit" />\n
<input i18n:attributes="value" i18n:domain="ui" value="Update"\n
tal:condition="python: form.update_action!=\'\'"\n
id="dialog_update_button"\n
name="Base_showUpdateDialog:method" type="submit" />\n
<input tal:attributes="value python: here.Base_getFormViewDialogActionButtonTitle(form);\n
name string:${form_action}:method"\n
i18n:attributes="value" i18n:domain="ui" accesskey="V"\n
id="dialog_submit_button" type="submit" />\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
......
......@@ -3,11 +3,8 @@
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.PageTemplates.ZopePageTemplate</string>
<string>ZopePageTemplate</string>
</tuple>
<none/>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
<tuple/>
</tuple>
</pickle>
<pickle>
......@@ -48,84 +45,66 @@
<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
<tal:block 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:block tal:replace="nothing">\n
<!--\n
Copyright (c) 2006 Nexedi SARL and Contributors. All Rights Reserved.\n
Vincent Pelletier <vincent@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
XXX: for now, curent action is passed as a parameter to the right form, which is gathered from the action.\n
A good way might be to centralize all action in a single page template that would fill itself (metal:use-macro) according to the action id it was given.\n
-->\n
</tal:block>\n
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"\n
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\n
<tal:block metal:define-macro="render_listbox">\n
<tal:block tal:define="field_names field_names | python: ();\n
toggleable_field_name toggleable_field_name | python: nothing;\n
zope_structured_text_field_names zope_structured_text_field_names | python: ();\n
structured_text_field_names structured_text_field_names | python: ();\n
structured_text_field_names python: structured_text_field_names+zope_structured_text_field_names;">\n
<tal:block tal:repeat="field_name field_names">\n
<tal:block tal:condition="python: form.has_field(field_name)">\n
<tal:block tal:define="listbox python: form.get_field(field_name);\n
listboxline_list python: listbox.get_value(\'default\', render_format=\'list\', REQUEST=request);">\n
<div class="frame">\n
<div tal:attributes="class listbox/css_class">\n
<div class="frame_title" tal:content="listbox/title"></div>\n
<div class="listbox_description" tal:content="python: listbox.get_value(\'description\')"></div>\n
<tal:block tal:condition="python: len(listboxline_list) > 1">\n
<tal:block tal:repeat="listboxline python: listboxline_list">\n
<tal:block tal:define="lineid python: \'%s_%s\' % (listbox.id,repeat[\'listboxline\'].index)">\n
<div class="listbox_titleline" tal:condition="python: listboxline.isTitleLine()">\n
<tal:block tal:repeat="column_id python: listboxline.getColumnItemList()">\n
<div tal:content="python: column_id[1]"\n
tal:attributes="class python: column_id[0]"/>\n
</tal:block>\n
</div>\n
<div class="listbox_dataline" tal:condition="python: listboxline.isDataLine()"\n
tal:attributes="onclick python: toggleable_field_name and \'toggle(\\\'%s\\\')\' % (lineid) or nothing;\n
id python: \'toggle_%s_%s\' % (listbox.id, repeat[\'listboxline\'].index);">\n
<tal:block tal:repeat="column_id python: listboxline.getColumnItemList()">\n
<tal:block tal:define="is_structured_text python: column_id[0] in structured_text_field_names;\n
is_toggleable python: column_id[0] == toggleable_field_name;\n
content python: (column_id[1] is None) and (\' \') or (column_id[1]);\n
content python: column_id[0] in zope_structured_text_field_names and modules[\'Products\'].PythonScripts.standard.structured_text(content) or content;">\n
<div tal:attributes="class python: column_id[0]; id python: is_toggleable and lineid or None; name python: is_toggleable and \'toggleable\' or None"><tal:block tal:condition="is_structured_text"><a tal:condition="repeat/column_id/start" class="anchor" tal:content="structure content" tal:attributes="id python: \'a_%s_%s\' % (listbox.id, repeat[\'listboxline\'].index)"></a><tal:block tal:condition="not: repeat/column_id/start" tal:replace="structure content"/></tal:block><tal:block tal:condition="not: is_structured_text"><a tal:condition="repeat/column_id/start" class="anchor" tal:content="content" tal:attributes="id python: \'a_%s_%s\' % (listbox.id, repeat[\'listboxline\'].index)"></a><tal:block tal:condition="not: repeat/column_id/start" tal:replace="content"/></tal:block></div>\n
</tal:block>\n
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\n
<tal:block metal:define-macro="render_listbox">\n
<tal:block tal:define="field_names field_names | python: ();\n
toggleable_field_name toggleable_field_name | python: nothing;\n
zope_structured_text_field_names zope_structured_text_field_names | python: ();\n
structured_text_field_names structured_text_field_names | python: ();\n
structured_text_field_names python: structured_text_field_names+zope_structured_text_field_names;">\n
<tal:block tal:repeat="field_name field_names">\n
<tal:block tal:condition="python: form.has_field(field_name)">\n
<tal:block tal:define="listbox python: form.get_field(field_name);\n
listboxline_list python: listbox.get_value(\'default\', render_format=\'list\', REQUEST=request);">\n
<div class="frame">\n
<div tal:attributes="class listbox/css_class">\n
<div class="frame_title" tal:content="listbox/title"></div>\n
<div class="listbox_description" tal:content="python: listbox.get_value(\'description\')"></div>\n
<tal:block tal:condition="python: len(listboxline_list) &gt; 1">\n
<tal:block tal:repeat="listboxline python: listboxline_list">\n
<tal:block tal:define="lineid python: \'%s_%s\' % (listbox.id,repeat[\'listboxline\'].index)">\n
<div class="listbox_titleline" tal:condition="python: listboxline.isTitleLine()">\n
<tal:block tal:repeat="column_id python: listboxline.getColumnItemList()">\n
<div tal:content="python: column_id[1]"\n
tal:attributes="class python: column_id[0]" />\n
</tal:block>\n
</tal:block>\n
</div>\n
</div>\n
<div class="listbox_dataline" tal:condition="python: listboxline.isDataLine()"\n
tal:attributes="onclick python: toggleable_field_name and \'toggle(\\\'%s\\\')\' % (lineid) or nothing;\n
id python: \'toggle_%s_%s\' % (listbox.id, repeat[\'listboxline\'].index);">\n
<tal:block tal:repeat="column_id python: listboxline.getColumnItemList()">\n
<tal:block tal:define="is_structured_text python: column_id[0] in structured_text_field_names;\n
is_toggleable python: column_id[0] == toggleable_field_name;\n
content python: (column_id[1] is None) and (\' \') or (column_id[1]);\n
content python: column_id[0] in zope_structured_text_field_names and modules[\'Products\'].PythonScripts.standard.structured_text(content) or content;">\n
<div tal:attributes="class python: column_id[0]; id python: is_toggleable and lineid or None; name python: is_toggleable and \'toggleable\' or None"><tal:block tal:condition="is_structured_text"><a tal:condition="repeat/column_id/start" class="anchor" tal:content="structure content" tal:attributes="id python: \'a_%s_%s\' % (listbox.id, repeat[\'listboxline\'].index)"></a><tal:block tal:condition="not: repeat/column_id/start" tal:replace="structure content" /></tal:block><tal:block tal:condition="not: is_structured_text"><a tal:condition="repeat/column_id/start" class="anchor" tal:content="content" tal:attributes="id python: \'a_%s_%s\' % (listbox.id, repeat[\'listboxline\'].index)"></a><tal:block tal:condition="not: repeat/column_id/start" tal:replace="content" /></tal:block></div>\n
</tal:block>\n
</tal:block>\n
</div>\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
</div>\n
</div>\n
</div>\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
<html>\n
<tal:block metal:use-macro="here/global_definitions/macros/header_definitions" />\n
<head>\n
<title></title>\n
<style type="text/css">\n
<html>\n
<tal:block metal:use-macro="here/global_definitions/macros/header_definitions" />\n
<head>\n
<title></title>\n
<style type="text/css">\n
a img {\n
border: none;\n
}\n
......@@ -273,94 +252,96 @@ div.listbox_dataline:hover {\n
border-color: #999;\n
}\n
</style>\n
</head>\n
<body onload="toggle_all()">\n
<script type="text/javascript">\n
function toggle_all() {\n
my_elements = document.getElementsByName("toggleable");\n
for(i=0; i<my_elements.length; i++) {\n
toggle(my_elements[i].id);\n
</head>\n
<body onload="toggle_all()">\n
<script type="text/javascript"><!--\n
function toggle_all() {\n
my_elements = document.getElementsByName("toggleable");\n
for(i=0; i<my_elements.length; i++) {\n
toggle(my_elements[i].id);\n
}\n
}\n
}\n
function toggle(id) {\n
with(document.getElementById(id).style) {\n
if (display == "") {\n
display = "none";\n
with(document.getElementById("toggle_"+id).style) {\n
backgroundColor = "";\n
borderColor = "";\n
}\n
} else {\n
display = "";\n
with(document.getElementById("toggle_"+id).style) {\n
backgroundColor = "#EEE";\n
borderColor = "#999";\n
function toggle(id) {\n
with(document.getElementById(id).style) {\n
if (display == "") {\n
display = "none";\n
with(document.getElementById("toggle_"+id).style) {\n
backgroundColor = "";\n
borderColor = "";\n
}\n
} else {\n
display = "";\n
with(document.getElementById("toggle_"+id).style) {\n
backgroundColor = "#EEE";\n
borderColor = "#999";\n
}\n
}\n
}\n
}\n
}\n
</script>\n
<span class="toggle" onclick="toggle_all()">Toggle all</span>\n
<tal:block tal:define="field_errors python: request.get(\'field_errors\',{});\n
dummy python: request.set(\'here\',here)">\n
<div class="frame">\n
<div class="frame_title">General information</div>\n
<table>\n
<tal:block tal:repeat="field_name python: (\'my_title\', \'argument_list\', \'inheritance_list\', \'my_type\', \'my_source_path\', \'my_description\')">\n
<tal:block tal:condition="python: form.has_field(field_name)">\n
<tal:block tal:define="field python: form.get_field(field_name)">\n
<tal:block metal:use-macro="here/field_render/macros/field_render"/>\n
//--></script>\n
<span class="toggle" onclick="toggle_all()">Toggle all</span>\n
<tal:block tal:define="field_errors python: request.get(\'field_errors\',{});\n
dummy python: request.set(\'here\',here)">\n
<div class="frame">\n
<div class="frame_title">General information</div>\n
<table>\n
<tal:block tal:repeat="field_name python: (\'my_title\', \'argument_list\', \'inheritance_list\', \'my_type\', \'my_source_path\', \'my_description\')">\n
<tal:block tal:condition="python: form.has_field(field_name)">\n
<tal:block tal:define="field python: form.get_field(field_name)">\n
<tal:block metal:use-macro="here/field_render/macros/field_render" />\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
</table>\n
</div>\n
<div class="frame">\n
<div class="frame_title">Quick links</div>\n
<tal:block tal:repeat="field_name python: (\'my_static_property_list\', \'my_dynamic_property_list\', \'my_dynamic_category_list\', \'my_static_method_list\', \'my_dynamic_method_list\', \'my_dynamic_accessor_list\')">\n
<tal:block tal:condition="python: form.has_field(field_name)">\n
<div class="quick_links_group" tal:define="field python: form.get_field(field_name)">\n
<div tal:content="field/title"></div>\n
<ul>\n
<li tal:repeat="item python: field.get_value(\'list_method\')()">\n
<a tal:attributes="href python: \'#a_%s_%s\' % (field_name,repeat[\'item\'].index+1)"\n
tal:content="item/getTitle"></a>\n
</li>\n
</ul>\n
</div>\n
</tal:block>\n
</tal:block>\n
</table>\n
</div>\n
<div class="frame">\n
<div class="frame_title">Quick links</div>\n
<tal:block tal:repeat="field_name python: (\'my_static_property_list\', \'my_dynamic_property_list\', \'my_dynamic_category_list\', \'my_static_method_list\', \'my_dynamic_method_list\', \'my_dynamic_accessor_list\')">\n
<tal:block tal:condition="python: form.has_field(field_name)">\n
<div class="quick_links_group" tal:define="field python: form.get_field(field_name)">\n
<div tal:content="field/title"></div>\n
<ul>\n
<li tal:repeat="item python: field.get_value(\'list_method\')()">\n
<a tal:attributes="href python: \'#a_%s_%s\' % (field_name,repeat[\'item\'].index+1)"\n
tal:content="item/getTitle"></a>\n
</li>\n
</ul>\n
</div>\n
</tal:block>\n
</div>\n
<tal:block tal:define="field_names python: (\'my_static_property_list\',);\n
structured_text_field_names python: (\'title\',);">\n
<tal:block metal:use-macro="here/documentation_template/macros/render_listbox" />\n
</tal:block>\n
<tal:block tal:define="field_names python: (\'my_dynamic_property_list\',);\n
structured_text_field_names python: (\'title\',);">\n
<tal:block metal:use-macro="here/documentation_template/macros/render_listbox" />\n
</tal:block>\n
<tal:block tal:define="field_names python: (\'my_dynamic_category_list\',)">\n
<tal:block metal:use-macro="here/documentation_template/macros/render_listbox" />\n
</tal:block>\n
<tal:block tal:define="field_names python: (\'my_static_method_list\',);\n
structured_text_field_names python: (\'title\',);\n
zope_structured_text_field_names python: (\'description\',);\n
toggleable_field_name python: \'source_code\';">\n
<tal:block metal:use-macro="here/documentation_template/macros/render_listbox" />\n
</tal:block>\n
<tal:block tal:define="field_names python: (\'my_dynamic_method_list\',);\n
structured_text_field_names python: (\'title\',);\n
zope_structured_text_field_names python: (\'description\',);">\n
<tal:block metal:use-macro="here/documentation_template/macros/render_listbox" />\n
</tal:block>\n
<tal:block tal:define="field_names python: (\'my_dynamic_accessor_list\',);\n
structured_text_field_names python: (\'accessors\',);\n
toggleable_field_name python: \'accessors\';">\n
<tal:block metal:use-macro="here/documentation_template/macros/render_listbox" />\n
</tal:block>\n
</div>\n
<tal:block tal:define="field_names python: (\'my_static_property_list\',);\n
structured_text_field_names python: (\'title\',);">\n
<tal:block metal:use-macro="here/documentation_template/macros/render_listbox"/>\n
</tal:block>\n
<tal:block tal:define="field_names python: (\'my_dynamic_property_list\',);\n
structured_text_field_names python: (\'title\',);">\n
<tal:block metal:use-macro="here/documentation_template/macros/render_listbox"/>\n
</tal:block>\n
<tal:block tal:define="field_names python: (\'my_dynamic_category_list\',)">\n
<tal:block metal:use-macro="here/documentation_template/macros/render_listbox"/>\n
</tal:block>\n
<tal:block tal:define="field_names python: (\'my_static_method_list\',);\n
structured_text_field_names python: (\'title\',);\n
zope_structured_text_field_names python: (\'description\',);\n
toggleable_field_name python: \'source_code\';">\n
<tal:block metal:use-macro="here/documentation_template/macros/render_listbox"/>\n
</tal:block>\n
<tal:block tal:define="field_names python: (\'my_dynamic_method_list\',);\n
structured_text_field_names python: (\'title\',);\n
zope_structured_text_field_names python: (\'description\',);">\n
<tal:block metal:use-macro="here/documentation_template/macros/render_listbox"/>\n
</tal:block>\n
<tal:block tal:define="field_names python: (\'my_dynamic_accessor_list\',);\n
structured_text_field_names python: (\'accessors\',);\n
toggleable_field_name python: \'accessors\';">\n
<tal:block metal:use-macro="here/documentation_template/macros/render_listbox"/>\n
</tal:block>\n
</tal:block>\n
</body>\n
</html>
</body>\n
</html>\n
</tal:block>\n
]]></string> </value>
</item>
......
......@@ -51,64 +51,45 @@
<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
<tal:block 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@nexedi.com>\n
Christophe Dumez <christophe@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
--></tal:block>\n
\n
<tal:block metal:define-macro="field_render">\n
<tal:block tal:condition="python: field.meta_type != \'HiddenStringField\'"\n
tal:define="field_id field/id;\n
value python: request.get(field_id, None);\n
field_errors python: request.get(\'field_errors\', {});\n
field_has_error python: field_errors.has_key(field_id);\n
global form_id form_id | form/id | nothing;\n
field_description field/Field_getDescription;\n
is_web_mode is_web_mode | nothing">\n
<div tal:define="html_render python: field.render_htmlgrid(value, request)"\n
tal:attributes="title field_description;\n
class python: \' \'.join([x for x in [\'field\', field.is_required() and \'required\' or None, field_has_error and \'error\' or None, field.get_value(\'css_class\') or None] if x is not None])"\n
i18n:attributes="title" i18n:domain="ui">\n
<tal:block tal:repeat="html_tuple html_render">\n
<label>\n
<tal:block tal:content="structure python: html_tuple[0]"\n
i18n:translate="" i18n:domain="ui"/>\n
<tal:block tal:condition="preferred_html_style_developper_mode">\n
<tal:block metal:use-macro="developper_shortcut_render/macros/field_developper"/>\n
</tal:block>\n
<tal:block tal:condition="preferred_html_style_translator_mode">\n
<tal:block metal:use-macro="developper_shortcut_render/macros/field_translator"/>\n
</tal:block>\n
</label>\n
<div class="input" tal:content="structure python: html_tuple[1]"/>\n
<span tal:condition="python: field_has_error"\n
class="error"\n
tal:content="python: field_errors[field_id].error_text"\n
i18n:translate="" i18n:domain="ui"/>\n
<p class="clear" tal:condition="not:is_web_mode"></p>\n
</tal:block>\n
</div>\n
<tal:block metal:define-macro="field_render">\n
<tal:block tal:condition="python: field.meta_type != \'HiddenStringField\'"\n
tal:define="field_id field/id;\n
value python: request.get(field_id, None);\n
field_errors python: request.get(\'field_errors\', {});\n
field_has_error python: field_errors.has_key(field_id);\n
global form_id form_id | form/id | nothing;\n
field_description field/Field_getDescription;\n
is_web_mode is_web_mode | nothing">\n
<div tal:define="html_render python: field.render_htmlgrid(value, request)"\n
tal:attributes="title field_description;\n
class python: \' \'.join([x for x in [\'field\', field.is_required() and \'required\' or None, field_has_error and \'error\' or None, field.get_value(\'css_class\') or None] if x is not None])"\n
i18n:attributes="title" i18n:domain="ui">\n
<tal:block tal:repeat="html_tuple html_render">\n
<label>\n
<tal:block tal:content="structure python: html_tuple[0]"\n
i18n:translate="" i18n:domain="ui" />\n
<tal:block tal:condition="preferred_html_style_developper_mode">\n
<tal:block metal:use-macro="developper_shortcut_render/macros/field_developper" />\n
</tal:block>\n
<tal:block tal:condition="preferred_html_style_translator_mode">\n
<tal:block metal:use-macro="developper_shortcut_render/macros/field_translator" />\n
</tal:block>\n
</label>\n
<div class="input" tal:content="structure python: html_tuple[1]" />\n
<span tal:condition="python: field_has_error"\n
class="error"\n
tal:content="python: field_errors[field_id].error_text"\n
i18n:translate="" i18n:domain="ui" />\n
<p class="clear" tal:condition="not:is_web_mode"></p>\n
</tal:block>\n
</div>\n
</tal:block>\n
</tal:block>\n
</tal:block>
</tal:block>\n
]]></string> </value>
</item>
......
......@@ -3,11 +3,8 @@
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.PageTemplates.ZopePageTemplate</string>
<string>ZopePageTemplate</string>
</tuple>
<none/>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
<tuple/>
</tuple>
</pickle>
<pickle>
......@@ -54,110 +51,90 @@
<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
<tal:block 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@nexedi.com>\n
Christophe Dumez <christophe@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:define="editable_mode python: True;\n
dialog_mode python: True;\n
dummy python: request.set(\'editable_mode\', editable_mode)">\n
<tal:block metal:use-macro="here/dialog_main/macros/master">\n
<tal:block metal:fill-slot="main">\n
<tal:block tal:define="field_errors python: request.get(\'field_errors\',{});\n
dummy python: request.set(\'here\', here);\n
left_group python: form.get_fields_in_group(\'left\');\n
right_group python: form.get_fields_in_group(\'right\');\n
center_group python: form.get_fields_in_group(\'center\');\n
dialog_actions python: actions.get(dialog_category, []);\n
field_render here/field_render/macros/field_render;">\n
<tal:block tal:condition="preferred_html_style_developper_mode">\n
<tal:block metal:use-macro="developper_shortcut_render/macros/form" />\n
</tal:block>\n
<div tal:condition="python: len(left_group) or len(right_group) or len(center_group) or len(dialog_actions)>1"\n
class="dialog_box">\n
<div tal:condition="python: len(dialog_actions) > 1"\n
<tal:block metal:define-macro="master"\n
tal:define="editable_mode python: True;\n
dialog_mode python: True;\n
dummy python: request.set(\'editable_mode\', editable_mode)">\n
<tal:block metal:use-macro="here/dialog_main/macros/master">\n
<tal:block metal:fill-slot="main">\n
<tal:block tal:define="field_errors python: request.get(\'field_errors\',{});\n
dummy python: request.set(\'here\', here);\n
left_group python: form.get_fields_in_group(\'left\');\n
right_group python: form.get_fields_in_group(\'right\');\n
center_group python: form.get_fields_in_group(\'center\');\n
dialog_actions python: actions.get(dialog_category, []);\n
field_render here/field_render/macros/field_render;">\n
<tal:block tal:condition="preferred_html_style_developper_mode">\n
<tal:block metal:use-macro="developper_shortcut_render/macros/form" />\n
</tal:block>\n
<div tal:condition="python: len(left_group) or len(right_group) or len(center_group) or len(dialog_actions)>1"\n
class="dialog_box">\n
<div tal:condition="python: len(dialog_actions) > 1"\n
class="dialog_selector">\n
<label for="dialog_selector"\n
tal:content="python: { \'object_exchange\': \'Select Exchange\'\n
, \'object_print\' : \'Select Print\'\n
, \'object_search\' : \'Select Search\'\n
, \'object_report\' : \'Select Report\'\n
}.get(dialog_category, \'Select\')"\n
i18n:translate="" i18n:domain="ui"></label>\n
<select name="select_dialog" id="dialog_selector"\n
tal:attributes="onChange string:submitAction(this.form,\'Base_doDialog\')">\n
<tal:block tal:repeat="action dialog_actions">\n
<option tal:attributes="value action/url;\n
selected python: action is current_action and \'selected\' or None"\n
tal:content="action/name"\n
i18n:translate="" i18n:domain="ui"></option>\n
<label for="dialog_selector"\n
tal:content="python: { \'object_exchange\': \'Select Exchange\'\n
, \'object_print\' : \'Select Print\'\n
, \'object_search\' : \'Select Search\'\n
, \'object_report\' : \'Select Report\'\n
}.get(dialog_category, \'Select\')"\n
i18n:translate="" i18n:domain="ui"></label>\n
<select name="select_dialog" id="dialog_selector"\n
tal:attributes="onChange string:submitAction(this.form,\'Base_doDialog\')">\n
<tal:block tal:repeat="action dialog_actions">\n
<option tal:attributes="value action/url;\n
selected python: action is current_action and \'selected\' or None"\n
tal:content="action/name"\n
i18n:translate="" i18n:domain="ui"></option>\n
</tal:block>\n
</select>\n
<button type="submit" name="Base_doDialog:method">\n
<span class="image"></span>\n
<span class="description"\n
i18n:translate="" i18n:domain="ui">Go</span>\n
</button>\n
</div>\n
<div class="content"\n
tal:define="group_list python: form.Form_getGroupTitleAndId();\n
gid_list python: \' \'.join([x[\'gid\'] for x in group_list if x not in (\'bottom\', \'hidden\')]);">\n
<tal:block tal:repeat="group group_list">\n
<tal:block tal:define="gid group/gid">\n
<fieldset tal:condition="python: \'hidden\' not in gid and \'bottom\' not in gid"\n
tal:attributes="class gid;\n
id python: \'fieldset_\' + gid.replace(\' \', \'_\');">\n
<legend tal:content="group/gtitle" class="group_title" />\n
<tal:block tal:repeat="field python: form.get_fields_in_group(group[\'goid\'])">\n
<tal:block metal:use-macro="field_render" />\n
</tal:block>\n
</fieldset>\n
</tal:block>\n
</tal:block>\n
</select>\n
<button type="submit" name="Base_doDialog:method">\n
<span class="image"></span>\n
<span class="description"\n
i18n:translate="" i18n:domain="ui">Go</span>\n
</button>\n
<p class="clear"></p>\n
</div>\n
</div>\n
<div class="content"\n
tal:define="group_list python: form.Form_getGroupTitleAndId();\n
gid_list python: \' \'.join([x[\'gid\'] for x in group_list if x not in (\'bottom\', \'hidden\')]);">\n
<tal:block tal:repeat="group group_list">\n
<tal:block tal:define="gid group/gid">\n
<fieldset tal:condition="python: \'hidden\' not in gid and \'bottom\' not in gid"\n
tal:attributes="class gid;\n
id python: \'fieldset_\' + gid.replace(\' \', \'_\');">\n
<legend tal:content="group/gtitle" class="group_title"/>\n
<tal:block tal:repeat="field python: form.get_fields_in_group(group[\'goid\'])">\n
<tal:block metal:use-macro="field_render"/>\n
</tal:block>\n
</fieldset>\n
</tal:block>\n
</tal:block>\n
<tal:block metal:fill-slot="bottom">\n
<tal:block tal:define="field_errors python: request.get(\'field_errors\',{});\n
dummy python: request.set(\'here\', here);\n
bottom_group python: form.get_fields_in_group(\'bottom\')">\n
<div tal:condition="python: len(bottom_group) > 0"\n
class="bottom">\n
<tal:block tal:repeat="field bottom_group">\n
<tal:block tal:condition="preferred_html_style_developper_mode">\n
<tal:block metal:use-macro="developper_shortcut_render/macros/field_developper" />\n
</tal:block>\n
<tal:block tal:define="field_description field/Field_getDescription"\n
tal:condition="preferred_html_style_translator_mode">\n
<tal:block metal:use-macro="developper_shortcut_render/macros/field_translator" />\n
</tal:block>\n
<tal:block tal:define="value python:request.get(field.id, None)"\n
tal:replace="structure python:field.render(value, request)" />\n
</tal:block>\n
<p class="clear"></p>\n
</div>\n
</div>\n
</tal:block>\n
</tal:block>\n
<tal:block metal:fill-slot="bottom">\n
<tal:block tal:define="field_errors python: request.get(\'field_errors\',{});\n
dummy python: request.set(\'here\', here);\n
bottom_group python: form.get_fields_in_group(\'bottom\')">\n
<div tal:condition="python: len(bottom_group) > 0"\n
class="bottom">\n
<tal:block tal:repeat="field bottom_group">\n
<tal:block tal:condition="preferred_html_style_developper_mode">\n
<tal:block metal:use-macro="developper_shortcut_render/macros/field_developper"/>\n
</tal:block>\n
<tal:block tal:define="field_description field/Field_getDescription"\n
tal:condition="preferred_html_style_translator_mode">\n
<tal:block metal:use-macro="developper_shortcut_render/macros/field_translator"/>\n
</tal:block>\n
<tal:block tal:define="value python:request.get(field.id, None)"\n
tal:replace="structure python:field.render(value, request)" />\n
</tal:block>\n
</div>\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
......
......@@ -3,11 +3,8 @@
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.PageTemplates.ZopePageTemplate</string>
<string>ZopePageTemplate</string>
</tuple>
<none/>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
<tuple/>
</tuple>
</pickle>
<pickle>
......@@ -48,35 +45,16 @@
<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
<tal:block 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@nexedi.com>\n
Christophe Dumez <christophe@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:use-macro="here/list_main/macros/master">\n
<tal:block metal:fill-slot="main">\n
<tal:block metal:use-macro="here/form_render/macros/master" />\n
<tal:block metal:use-macro="here/list_main/macros/master">\n
<tal:block metal:fill-slot="main">\n
<tal:block metal:use-macro="here/form_render/macros/master" />\n
</tal:block>\n
</tal:block>\n
</tal:block>
</tal:block>\n
]]></string> </value>
</item>
......
......@@ -3,11 +3,8 @@
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.PageTemplates.ZopePageTemplate</string>
<string>ZopePageTemplate</string>
</tuple>
<none/>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
<tuple/>
</tuple>
</pickle>
<pickle>
......@@ -54,29 +51,11 @@
<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
<tal:block 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:block tal:replace="nothing">\n
<!--\n
Copyright (c) 2006 Nexedi SARL and Contributors. All Rights Reserved.\n
Vincent Pelletier <vincent@nexedi.com>\n
Christophe Dumez <christophe@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
XXX: each case must be handled separatelly in this precise representation :\n
- both top fields must be in the same div, so they must be identified\n
strictly by their name.\n
......@@ -98,36 +77,36 @@ It is possible to specify a group id and a group title by naming a group followi
class and as tag id. The group title will be used as a legend for the fieldset. If no group\n
title is found, we use group id as title.\n
-->\n
</tal:block>\n
\n
\n
<tal:block metal:define-macro="master">\n
<tal:block\n
tal:define="field_errors python: request.get(\'field_errors\', {});\n
dummy python: request.set(\'here\', here);\n
group_list python: form.Form_getGroupTitleAndId();\n
gid_list python: \' \'.join([x[\'gid\'] for x in group_list if x!=\'hidden\']);\n
field_render nocall: here/field_render/macros/field_render">\n
</tal:block>\n
\n
<tal:block tal:condition="preferred_html_style_developper_mode">\n
<tal:block metal:use-macro="developper_shortcut_render/macros/form"/>\n
</tal:block>\n
<tal:block metal:define-macro="master">\n
<tal:block\n
tal:define="field_errors python: request.get(\'field_errors\', {});\n
dummy python: request.set(\'here\', here);\n
group_list python: form.Form_getGroupTitleAndId();\n
gid_list python: \' \'.join([x[\'gid\'] for x in group_list if x!=\'hidden\']);\n
field_render nocall: here/field_render/macros/field_render">\n
<tal:block tal:condition="preferred_html_style_developper_mode">\n
<tal:block metal:use-macro="developper_shortcut_render/macros/form" />\n
</tal:block>\n
\n
<tal:block tal:repeat="group group_list">\n
<tal:block tal:define="gid group/gid;">\n
<fieldset tal:condition="python: gid.find(\'hidden\') < 0"\n
tal:attributes="class gid;\n
id python: \'fieldset_%s\' % (gid.replace(\' \', \'_\'), );">\n
<legend tal:condition="group/gtitle" tal:content="group/gtitle" class="group_title"/>\n
<tal:block tal:repeat="field python: form.get_fields_in_group(group[\'goid\'])">\n
<tal:block metal:use-macro="field_render"/>\n
</tal:block>\n
</fieldset>\n
<tal:block tal:repeat="group group_list">\n
<tal:block tal:define="gid group/gid;">\n
<fieldset tal:condition="python: gid.find(\'hidden\') &lt; 0"\n
tal:attributes="class gid;\n
id python: \'fieldset_%s\' % (gid.replace(\' \', \'_\'), );">\n
<legend tal:condition="group/gtitle" tal:content="group/gtitle" class="group_title"></legend>\n
<tal:block tal:repeat="field python: form.get_fields_in_group(group[\'goid\'])">\n
<tal:block metal:use-macro="field_render" />\n
</tal:block>\n
</fieldset>\n
</tal:block>\n
</tal:block>\n
<p class="clear"></p>\n
</tal:block>\n
<p class="clear"></p>\n
</tal:block>\n
</tal:block>
</tal:block>\n
]]></string> </value>
</item>
......
......@@ -3,11 +3,8 @@
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.PageTemplates.ZopePageTemplate</string>
<string>ZopePageTemplate</string>
</tuple>
<none/>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
<tuple/>
</tuple>
</pickle>
<pickle>
......@@ -54,31 +51,13 @@
<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
<tal:block 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) 2007 Nexedi SARL and Contributors. All Rights Reserved.\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:use-macro="here/list_report/macros/master">\n
<tal:block metal:fill-slot="main">\n
<tal:block metal:use-macro="here/form_render/macros/master" />\n
<tal:block metal:use-macro="here/list_report/macros/master">\n
<tal:block metal:fill-slot="main">\n
<tal:block metal:use-macro="here/form_render/macros/master" />\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
......
......@@ -3,11 +3,8 @@
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.PageTemplates.ZopePageTemplate</string>
<string>ZopePageTemplate</string>
</tuple>
<none/>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
<tuple/>
</tuple>
</pickle>
<pickle>
......@@ -48,37 +45,18 @@
<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
<tal:block 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@nexedi.com>\n
Christophe Dumez <christophe@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
<tal:block metal:use-macro="here/form_render/macros/master" />\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
<tal:block metal:use-macro="here/form_render/macros/master" />\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
</tal:block>
</tal:block>\n
]]></string> </value>
</item>
......
......@@ -51,48 +51,46 @@
<key> <string>_text</string> </key>
<value> <string encoding="cdata"><![CDATA[
<tal:block metal:define-macro="header_definitions">\n
<tal:block tal:define="\n
global portal here/portal_url/getPortalObject;\n
global portal_path portal/absolute_url;\n
local_parameter_list local_parameter_list | python: {};\n
\n
global actions python: here.Base_filterDuplicateActions(portal.portal_actions.listFilteredActionsFor(here));\n
global url here/absolute_url;\n
global current_form_id python: local_parameter_list.get(\'dialog_id\', local_parameter_list.get(\'form_id\', \'view\'));\n
<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
<tal:block metal:define-macro="header_definitions">\n
<tal:block tal:define="\n
global portal here/portal_url/getPortalObject;\n
global portal_path portal/absolute_url;\n
local_parameter_list local_parameter_list | python: {};\n
global actions python: here.Base_filterDuplicateActions(portal.portal_actions.listFilteredActionsFor(here));\n
global url here/absolute_url;\n
global current_form_id python: local_parameter_list.get(\'dialog_id\', local_parameter_list.get(\'form_id\', \'view\'));\n
dummy python: request.set(\'current_form_id\', current_form_id);\n
global current_url python: \'%s/%s\' % (url, current_form_id);\n
global current_action python: portal.ERP5Site_getCurrentAction(current_url, actions);\n
global current_url python: \'%s/%s\' % (url, current_form_id);\n
global current_action python: portal.ERP5Site_getCurrentAction(current_url, actions);\n
cancel_url request/cancel_url | current_url;\n
dummy python: local_parameter_list.update({\'cancel_url\': cancel_url});\n
\n
dummy python: request.RESPONSE.setHeader(\'Content-Type\', \'text/html;; charset=utf-8\');\n
dummy python: request.set(\'here\', here);\n
\n
global css_list css_list | python: [];\n
global css_list css_list | python: [];\n
css_list_template css_list_template | python: [\'%s/erp5.css\' % (portal_path, )];\n
dummy python: css_list.extend(css_list_template);\n
global js_list js_list | python: [\'%s/erp5_xhtml_appearance.js\' % portal_path,];\n
global js_list python:[\'%s/MochiKit/MochiKit.js\' % portal_path,\n
\'%s/erp5.js\' % portal_path, ] + js_list;\n
\n
global http_parameter_list python: portal.ERP5Site_filterParameterList(request.form);\n
global js_list js_list | python: [\'%s/erp5_xhtml_appearance.js\' % portal_path,];\n
global js_list python:[\'%s/MochiKit/MochiKit.js\' % portal_path,\n
\'%s/erp5.js\' % portal_path, ] + js_list;\n
global http_parameter_list python: portal.ERP5Site_filterParameterList(request.form);\n
dummy python: http_parameter_list.update(local_parameter_list);\n
global http_parameters python: portal.ERP5Site_renderHTTPParameterList(http_parameter_list);\n
global form nocall:form | nothing;\n
global http_parameters python: portal.ERP5Site_renderHTTPParameterList(http_parameter_list);\n
global form nocall:form | nothing;\n
portal_preferences python: portal.portal_preferences;\n
global preferred_html_style_developper_mode portal_preferences/getPreferredHtmlStyleDevelopperMode;\n
global preferred_html_style_translator_mode portal_preferences/getPreferredHtmlStyleTranslatorMode;\n
global preferred_html_style_contextual_help portal_preferences/getPreferredHtmlStyleContextualHelp;\n
global developper_shortcut_render python: (preferred_html_style_developper_mode or preferred_html_style_translator_mode) and portal.developper_shortcut_render;\n
global selected_language portal/Localizer/get_selected_language;\n
"/>\n
</tal:block>\n
\n
<!-- ============================================================== -->\n
\n
<tal:block metal:define-macro="http_definitions">\n
<tal:block tal:replace="structure python: modules[\'ZTUtils\'].make_hidden_input(**http_parameter_list).replace(\'>\', \' />\')"/>\n
global preferred_html_style_developper_mode portal_preferences/getPreferredHtmlStyleDevelopperMode;\n
global preferred_html_style_translator_mode portal_preferences/getPreferredHtmlStyleTranslatorMode;\n
global preferred_html_style_contextual_help portal_preferences/getPreferredHtmlStyleContextualHelp;\n
global developper_shortcut_render python: (preferred_html_style_developper_mode or preferred_html_style_translator_mode) and portal.developper_shortcut_render;\n
global selected_language portal/Localizer/get_selected_language;\n
" />\n
</tal:block>\n
<tal:block metal:define-macro="http_definitions">\n
<tal:block tal:replace="structure python: modules[\'ZTUtils\'].make_hidden_input(**http_parameter_list).replace(\'>\', \' />\')" />\n
</tal:block>\n
</tal:block>\n
......
......@@ -3,11 +3,8 @@
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.PageTemplates.ZopePageTemplate</string>
<string>ZopePageTemplate</string>
</tuple>
<none/>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
<tuple/>
</tuple>
</pickle>
<pickle>
......@@ -48,58 +45,38 @@
<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
<tal:block 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@nexedi.com>\n
Christophe Dumez <christophe@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 tal:define="title here/Title">\n
<tal:block metal:use-macro="here/main_template/macros/master">\n
<tal:block metal:fill-slot="main">\n
<tal:block tal:condition="here/portal_membership/isAnonymousUser">\n
<tal:block tal:define="dummy python: request.RESPONSE.redirect(\'%s/login_form\' % url)" />\n
</tal:block>\n
<div tal:condition="python: not here.portal_membership.isAnonymousUser()"\n
class="index_html">\n
<h2 i18n:translate="" i18n:domain="ui">Welcome to ERP5</h2>\n
<table border="1">\n
<tr tal:define="module_list here/ERP5Site_getModuleItemList;\n
module_len python: len(module_list);\n
col_size python: 12;\n
col_len python: module_len % col_size and (module_len + col_size) / col_size or (module_len) / col_size">\n
<td><a href="http://www.erp5.org/"><img src="images/erp5_logo.png" alt="ERP5 Logo" /></a></td>\n
<tal:block tal:repeat="col_no python:range(col_len)">\n
<td valign="top" class="ModuleShortcut">\n
<tal:block tal:repeat="module python:module_list[col_size*col_no:min(col_size*(col_no+1),module_len)] ">\n
<div><a tal:content="python: module[0]"\n
tal:attributes="href python: module[1] + \'/view\'"></a></div>\n
<tal:block tal:define="title here/Title">\n
<tal:block metal:use-macro="here/main_template/macros/master">\n
<tal:block metal:fill-slot="main">\n
<tal:block tal:condition="here/portal_membership/isAnonymousUser">\n
<tal:block tal:define="dummy python: request.RESPONSE.redirect(\'%s/login_form\' % url)" />\n
</tal:block>\n
<div tal:condition="python: not here.portal_membership.isAnonymousUser()"\n
class="index_html">\n
<h2 i18n:translate="" i18n:domain="ui">Welcome to ERP5</h2>\n
<table border="1">\n
<tr tal:define="module_list here/ERP5Site_getModuleItemList;\n
module_len python: len(module_list);\n
col_size python: 12;\n
col_len python: module_len % col_size and (module_len + col_size) / col_size or (module_len) / col_size">\n
<td><a href="http://www.erp5.org/"><img src="images/erp5_logo.png" alt="ERP5 Logo" /></a></td>\n
<tal:block tal:repeat="col_no python:range(col_len)">\n
<td valign="top" class="ModuleShortcut">\n
<tal:block tal:repeat="module python:module_list[col_size*col_no:min(col_size*(col_no+1),module_len)] ">\n
<div><a tal:content="python: module[0]"\n
tal:attributes="href python: module[1] + \'/view\'"></a></div>\n
</tal:block>\n
</td>\n
</tal:block>\n
</td>\n
</tal:block>\n
</tr>\n
</table>\n
</div>\n
</tr>\n
</table>\n
</div>\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
</tal:block>
]]></string> </value>
......
......@@ -3,11 +3,8 @@
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.PageTemplates.ZopePageTemplate</string>
<string>ZopePageTemplate</string>
</tuple>
<none/>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
<tuple/>
</tuple>
</pickle>
<pickle>
......@@ -54,19 +51,23 @@
<key> <string>_text</string> </key>
<value> <string encoding="cdata"><![CDATA[
<tal:block metal:define-macro="master">\n
<tal:block tal:define="form_id form/id;\n
list_mode python: True;\n
listmode_default_listbox python: form.Form_getListbox();\n
selection_name listmode_default_listbox/selection_name;\n
selection_index request/selection_index | python:0;\n
dummy python: selection_name and request.set(\'selection_name\', selection_name);\n
\n
local_parameter_list local_parameter_list | python: {};\n
dummy python: local_parameter_list.update({\'selection_name\': selection_name, \'selection_index\': selection_index, \'form_id\': form_id});">\n
<tal:block metal:use-macro="here/form_dialog/macros/master"/>\n
<tal:block 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:block metal:define-macro="master">\n
<tal:block tal:define="form_id form/id;\n
list_mode python: True;\n
listmode_default_listbox python: form.Form_getListbox();\n
selection_name listmode_default_listbox/selection_name;\n
selection_index request/selection_index | python:0;\n
dummy python: selection_name and request.set(\'selection_name\', selection_name);\n
local_parameter_list local_parameter_list | python: {};\n
dummy python: local_parameter_list.update({\'selection_name\': selection_name, \'selection_index\': selection_index, \'form_id\': form_id});">\n
<tal:block metal:use-macro="here/form_dialog/macros/master" />\n
</tal:block>\n
</tal:block>\n
</tal:block>
</tal:block>\n
]]></string> </value>
</item>
......
......@@ -3,11 +3,8 @@
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.PageTemplates.ZopePageTemplate</string>
<string>ZopePageTemplate</string>
</tuple>
<none/>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
<tuple/>
</tuple>
</pickle>
<pickle>
......@@ -54,48 +51,27 @@
<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
<tal:block 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@nexedi.com>\n
Christophe Dumez <christophe@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 tal:define="form_action string:Base_doSelect;\n
form_id form/id;\n
list_mode python: True;\n
listmode_default_listbox python:form.listbox;\n
selection_name listmode_default_listbox/selection_name;\n
selection_index request/selection_index | python:0;\n
dummy python: selection_name and request.set(\'selection_name\', selection_name);\n
\n
local_parameter_list local_parameter_list | python: {};\n
dummy python: local_parameter_list.update({\'selection_name\': selection_name, \'selection_index\': selection_index, \'form_id\': form_id});\n
title here/getTranslatedTitle | here/Title">\n
<tal:block metal:use-macro="here/main_template/macros/master">\n
<tal:block metal:fill-slot="context_bar">\n
<tal:block metal:use-macro="here/context_box_render/macros/master" />\n
</tal:block>\n
<tal:block metal:fill-slot="main">\n
<tal:block metal:define-slot="main" />\n
<tal:block metal:define-macro="master">\n
<tal:block tal:define="form_action string:Base_doSelect;\n
form_id form/id;\n
list_mode python: True;\n
listmode_default_listbox python:form.listbox;\n
selection_name listmode_default_listbox/selection_name;\n
selection_index request/selection_index | python:0;\n
dummy python: selection_name and request.set(\'selection_name\', selection_name);\n
local_parameter_list local_parameter_list | python: {};\n
dummy python: local_parameter_list.update({\'selection_name\': selection_name, \'selection_index\': selection_index, \'form_id\': form_id});\n
title here/getTranslatedTitle | here/Title">\n
<tal:block metal:use-macro="here/main_template/macros/master">\n
<tal:block metal:fill-slot="context_bar">\n
<tal:block metal:use-macro="here/context_box_render/macros/master" />\n
</tal:block>\n
<tal:block metal:fill-slot="main">\n
<tal:block metal:define-slot="main" />\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
......
......@@ -3,11 +3,8 @@
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.PageTemplates.ZopePageTemplate</string>
<string>ZopePageTemplate</string>
</tuple>
<none/>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
<tuple/>
</tuple>
</pickle>
<pickle>
......@@ -54,62 +51,44 @@
<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
<tal:block 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) 2007 Nexedi SARL and Contributors. All Rights Reserved.\n
<tal:block metal:define-macro="master">\n
<tal:block tal:define="form_id form/id;\n
local_parameter_list python: {\'form_id\': form_id};\n
form_action python: form and form.action not in (\'\', None) and form.action or nothing;\n
title here/getTranslatedTitle | here/Title">\n
<tal:block metal:use-macro="here/main_template/macros/master">\n
<tal:block metal:fill-slot="context_bar">\n
<tal:block metal:use-macro="here/context_box_render/macros/master" />\n
</tal:block>\n
<tal:block metal:fill-slot="main">\n
<div class="document" tal:define="actions python: []">\n
<div class="actions"\n
tal:condition="python: (not is_web_mode or editable_mode)">\n
<button tal:condition="python: not is_web_mode and form_action"\n
type="submit" class="save" title="Save"\n
tal:attributes="name string:${form_action}:method;\n
onClick string:javascript:clickSaveButton(\'${form_action}\');"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Save</span>\n
</button>\n
<ul>\n
<li tal:repeat="action actions"\n
tal:attributes="class python: action == current_action and \'selected\' or \'not_selected\'">\n
<a tal:attributes="href python: \'%s%s%s\' % (action[\'url\'], \'?\' in action[\'url\'] and \'&amp;\' or \'?\', http_parameters)"\n
tal:content="action/name"\n
i18n:translate="" i18n:domain="ui" />\n
</li>\n
</ul>\n
</div>\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 tal:define="form_id form/id;\n
local_parameter_list python: {\'form_id\': form_id};\n
form_action python: form and form.action not in (\'\', None) and form.action or nothing;\n
title here/getTranslatedTitle | here/Title">\n
<tal:block metal:use-macro="here/main_template/macros/master">\n
<tal:block metal:fill-slot="context_bar">\n
<tal:block metal:use-macro="here/context_box_render/macros/master" />\n
</tal:block>\n
<tal:block metal:fill-slot="main">\n
<div class="document" tal:define="actions python: []">\n
<div class="actions"\n
tal:condition="python: (not is_web_mode or editable_mode)">\n
<button tal:condition="python: not is_web_mode and form_action"\n
type="submit" class="save" title="Save"\n
tal:attributes="name string:${form_action}:method;\n
onClick string:javascript:clickSaveButton(\'${form_action}\');"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Save</span>\n
</button>\n
<ul>\n
<li tal:repeat="action actions"\n
tal:attributes="class python: action == current_action and \'selected\' or \'not_selected\'">\n
<a tal:attributes="href python: \'%s%s%s\' % (action[\'url\'], \'?\' in action[\'url\'] and \'&amp;\' or \'?\', http_parameters)"\n
tal:content="action/name"\n
i18n:translate="" i18n:domain="ui"/>\n
</li>\n
</ul>\n
<tal:block metal:define-slot="main" />\n
</div>\n
\n
\n
<tal:block metal:define-slot="main" />\n
</div>\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
......
......@@ -3,11 +3,8 @@
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.PageTemplates.ZopePageTemplate</string>
<string>ZopePageTemplate</string>
</tuple>
<none/>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
<tuple/>
</tuple>
</pickle>
<pickle>
......@@ -54,22 +51,27 @@
<key> <string>_text</string> </key>
<value> <string encoding="cdata"><![CDATA[
<tal:block tal:condition="here/portal_skins/updateSkinCookie | nothing"\n
tal:define="dummy here/setupCurrentSkin;" />\n
<tal:block tal:define="response request/RESPONSE;\n
mtool here/portal_membership;\n
isAnon mtool/isAnonymousUser|nothing;">\n
<tal:block tal:condition="isAnon">\n
<tal:block tal:define="dummy python: response.expireCookie(\'__ac\', path=\'/\');\n
url python: \'%s/login_form?portal_status_message=%s\' % (here.absolute_url(), here.getPortalObject().Localizer.translate(\'ui\', \'Login+and/or+password+is+incorrect.\'));\n
url python: request.get(\'came_from\') and \'%s&came_from=%s\' % (url, request[\'came_from\']) or url;\n
dummy python: response.redirect(url);"/>\n
<tal:block 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:block tal:condition="here/portal_skins/updateSkinCookie | nothing"\n
tal:define="dummy here/setupCurrentSkin;" />\n
<tal:block tal:define="response request/RESPONSE;\n
mtool here/portal_membership;\n
isAnon mtool/isAnonymousUser|nothing;">\n
<tal:block tal:condition="isAnon">\n
<tal:block tal:define="dummy python: response.expireCookie(\'__ac\', path=\'/\');\n
url python: \'%s/login_form?portal_status_message=%s\' % (here.absolute_url(), here.getPortalObject().Localizer.translate(\'ui\', \'Login+and/or+password+is+incorrect.\'));\n
url python: request.get(\'came_from\') and \'%s&amp;came_from=%s\' % (url, request[\'came_from\']) or url;\n
dummy python: response.redirect(url);" />\n
</tal:block>\n
<tal:block tal:condition="not: isAnon">\n
<tal:block tal:define="came_from python: request.get(\'came_from\') or here.absolute_url() + \'/view\';\n
dummy python: response.redirect(came_from);" />\n
</tal:block>\n
</tal:block>\n
<tal:block tal:condition="not: isAnon">\n
<tal:block tal:define="came_from python: request.get(\'came_from\') or here.absolute_url() + \'/view\';\n
dummy python: response.redirect(came_from);" />\n
</tal:block>\n
</tal:block>
</tal:block>\n
]]></string> </value>
</item>
......
......@@ -3,11 +3,8 @@
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.PageTemplates.ZopePageTemplate</string>
<string>ZopePageTemplate</string>
</tuple>
<none/>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
<tuple/>
</tuple>
</pickle>
<pickle>
......@@ -48,37 +45,21 @@
<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
<tal:block 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:block replace="nothing">\n
<!--\n
Copyright (c) 2006 Nexedi SARL and Contributors. All Rights Reserved.\n
Vincent Pelletier <vincent@nexedi.com>\n
Christophe Dumez <christophe@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
XXX: this page is just for backward compatibility. The log_out action sould lead to the login page with the correct transition message.\n
-->\n
</tal:block>\n
<tal:block metal:use-macro="here/main_template/macros/master">\n
<tal:block metal:fill-slot="main">\n
<tal:block tal:define="dummy python:request.RESPONSE.redirect(\'%s/login_form?portal_status_message=%s\' % (url, here.Base_translateString(\'You have been logged out.\')))" />\n
</tal:block>\n
</tal:block>
<tal:block metal:use-macro="here/main_template/macros/master">\n
<tal:block metal:fill-slot="main">\n
<tal:block tal:define="dummy python:request.RESPONSE.redirect(\'%s/login_form?portal_status_message=%s\' % (url, here.Base_translateString(\'You have been logged out.\')))" />\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
]]></string> </value>
</item>
......
......@@ -57,92 +57,66 @@
<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
<tal:block 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@nexedi.com>\n
Christophe Dumez <christophe@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 tal:define="form_action string:logged_in;\n
global form_id string:login_form;\n
js_list python: [\'%s/login_form.js\' % (here.portal_url(), )]">\n
<tal:block metal:use-macro="here/main_template/macros/master">\n
<tal:block metal:fill-slot="main">\n
<div class="content login">\n
\n
<tal:block tal:condition="python: request.get(\'came_from\', None) is None">\n
<h1 i18n:translate="" i18n:domain="ui">Log in</h1>\n
</tal:block>\n
\n
<tal:block tal:condition="python: request.get(\'came_from\', None) is not None">\n
<h1 i18n:translate="" i18n:domain="ui">You don\'t have enough permissions to access this page</h1>\n
<p i18n:translate="" i18n:domain="ui">You can log in with another user name or\n
<a href="javascript:history.back();">go back</a>.\n
</p>\n
</tal:block>\n
\n
<input tal:condition="exists: request/came_from"\n
type="hidden" name="came_from"\n
tal:attributes="value request/came_from" />\n
\n
<fieldset id="fieldset_left" class="left">\n
<div class="field">\n
<label for="name" class="required" i18n:translate="" i18n:domain="ui">Name</label>\n
<div class="input"><input type="text" name="__ac_name" id="name" tal:attributes="value python: request.get(\'__ac_name\') or \'\'"/></div>\n
</div>\n
<div class="field">\n
<label for="password" i18n:translate="" i18n:domain="ui">Password</label>\n
<div class="input"><input type="password" name="__ac_password" id="password"/></div>\n
</div>\n
<div class="field">\n
<label for="cb_remember" i18n:translate="" i18n:domain="ui">Remember my name</label>\n
<div class="input"><input type="checkbox" name="__ac_persistent" value="1" checked="checked" id="cb_remember"/></div>\n
<tal:block tal:define="form_action string:logged_in;\n
global form_id string:login_form;\n
js_list python: [\'%s/login_form.js\' % (here.portal_url(), )]">\n
<tal:block metal:use-macro="here/main_template/macros/master">\n
<tal:block metal:fill-slot="main">\n
<div class="content login">\n
<tal:block tal:condition="python: request.get(\'came_from\', None) is None">\n
<h1 i18n:translate="" i18n:domain="ui">Log in</h1>\n
</tal:block>\n
<tal:block tal:condition="python: request.get(\'came_from\', None) is not None">\n
<h1 i18n:translate="" i18n:domain="ui">You don\'t have enough permissions to access this page</h1>\n
<p i18n:translate="" i18n:domain="ui">You can log in with another user name or\n
<a href="javascript:history.back();">go back</a>.\n
</p>\n
</tal:block>\n
<input tal:condition="exists: request/came_from"\n
type="hidden" name="came_from"\n
tal:attributes="value request/came_from" />\n
<fieldset id="fieldset_left" class="left">\n
<div class="field">\n
<label for="name" class="required" i18n:translate="" i18n:domain="ui">Name</label>\n
<div class="input"><input type="text" name="__ac_name" id="name" tal:attributes="value python: request.get(\'__ac_name\') or \'\'" /></div>\n
</div>\n
<div class="field">\n
<label for="password" i18n:translate="" i18n:domain="ui">Password</label>\n
<div class="input"><input type="password" name="__ac_password" id="password" /></div>\n
</div>\n
<div class="field">\n
<label for="cb_remember" i18n:translate="" i18n:domain="ui">Remember my name</label>\n
<div class="input"><input type="checkbox" name="__ac_persistent" value="1" checked="checked" id="cb_remember" /></div>\n
</div>\n
<div class="field">\n
<label>&nbsp;</label>\n
<div class="input">\n
<input type="submit" value="Login" class="submit"\n
tal:attributes="name python: \'%s:method\' % (form_action, )"\n
i18n:attributes="value" i18n:domain="ui" />\n
</div>\n
</div>\n
<div class="field">\n
<label>&nbsp;</label>\n
<div class="input">\n
<a tal:attributes="href string:${here/portal_url}/mail_password_form"\n
i18n:translate="" i18n:domain="ui">I forgot my password!</a>\n
</div>\n
</div>\n
</fieldset>\n
<script type="text/javascript">setFocus()</script>\n
<p i18n:translate="" i18n:domain="ui">Having trouble logging in? Make sure to enable cookies in your web browser.</p>\n
<p i18n:translate="" i18n:domain="ui">Don\'t forget to logout or exit your browser when you\'re done.</p>\n
<p i18n:translate="" i18n:domain="ui">Setting the \'Remember my name\' option will set a cookie with your username, so that when you next log in, your user name will already be filled in for you.</p>\n
</div>\n
<div class="field">\n
<label>&nbsp;</label>\n
<div class="input">\n
<input type="submit" value="Login" class="submit"\n
tal:attributes="name python: \'%s:method\' % (form_action, )"\n
i18n:attributes="value" i18n:domain="ui"/>\n
</div>\n
</div>\n
<div class="field">\n
<label>&nbsp;</label>\n
<div class="input">\n
<a tal:attributes="href string:${here/portal_url}/mail_password_form"\n
i18n:translate="" i18n:domain="ui">I forgot my password!</a>\n
</div>\n
</div>\n
</fieldset>\n
\n
<script type="text/javascript">setFocus()</script>\n
\n
<p i18n:translate="" i18n:domain="ui">Having trouble logging in? Make sure to enable cookies in your web browser.</p>\n
<p i18n:translate="" i18n:domain="ui">Don\'t forget to logout or exit your browser when you\'re done.</p>\n
<p i18n:translate="" i18n:domain="ui">Setting the \'Remember my name\' option will set a cookie with your username, so that when you next log in, your user name will already be filled in for you.</p>\n
\n
</div>\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
</tal:block>
]]></string> </value>
</item>
......
......@@ -3,11 +3,8 @@
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.PageTemplates.ZopePageTemplate</string>
<string>ZopePageTemplate</string>
</tuple>
<none/>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
<tuple/>
</tuple>
</pickle>
<pickle>
......@@ -54,56 +51,40 @@
<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
<tal:block 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:block tal:replace="nothing">\n
<!--\n
Copyright (c) 2006 Nexedi SARL and Contributors. All Rights Reserved.\n
Vincent Pelletier <vincent@nexedi.com>\n
Christophe Dumez <christophe@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
IDEAS:\n
- Add callbacks to ERP5Form object (selection ?) to gather needed fields -> put them in http_parameter_list.\n
-->\n
</tal:block>\n
<tal:block metal:define-macro="master">\n
<tal:block\n
tal:define="ignore_layout request/ignore_layout | nothing;\n
layout_form_id request/layout_form_id | here/getApplicableLayout | nothing;\n
layout_form python: layout_form_id and getattr(here, layout_form_id, None) or None;\n
is_web_mode python: (layout_form is not None) and (not ignore_layout);\n
editable_mode python: (not is_web_mode) or request.get(\'editable_mode\', False);\n
editable_mode_backup editable_mode;\n
dummy python: request.set(\'editable_mode\', editable_mode);\n
dummy python: request.set(\'is_web_mode\', is_web_mode);\n
page_template python: is_web_mode and ((layout_form.meta_type==\'Page Template\' and layout_form.id) or getattr(layout_form, \'pt\', None)) or \'template_erp5_xhtml_style\';">\n
<tal:block metal:use-macro="python: getattr(here, page_template).macros[\'master\']">\n
<tal:block metal:fill-slot="context_bar">\n
<tal:block metal:define-slot="context_bar"/>\n
</tal:block>\n
<tal:block metal:fill-slot="main"\n
tal:define="editable_mode editable_mode_backup;\n
dummy python: request.set(\'editable_mode\', editable_mode);">\n
<tal:block metal:define-slot="main"/>\n
</tal:block>\n
<tal:block metal:define-macro="master">\n
<tal:block\n
tal:define="ignore_layout request/ignore_layout | nothing;\n
layout_form_id request/layout_form_id | here/getApplicableLayout | nothing;\n
layout_form python: layout_form_id and getattr(here, layout_form_id, None) or None;\n
is_web_mode python: (layout_form is not None) and (not ignore_layout);\n
editable_mode python: (not is_web_mode) or request.get(\'editable_mode\', False);\n
editable_mode_backup editable_mode;\n
dummy python: request.set(\'editable_mode\', editable_mode);\n
dummy python: request.set(\'is_web_mode\', is_web_mode);\n
page_template python: is_web_mode and ((layout_form.meta_type==\'Page Template\' and layout_form.id) or getattr(layout_form, \'pt\', None)) or \'template_erp5_xhtml_style\';">\n
<tal:block metal:use-macro="python: getattr(here, page_template).macros[\'master\']">\n
<tal:block metal:fill-slot="context_bar">\n
<tal:block metal:define-slot="context_bar" />\n
</tal:block>\n
<tal:block metal:fill-slot="main"\n
tal:define="editable_mode editable_mode_backup;\n
dummy python: request.set(\'editable_mode\', editable_mode);">\n
<tal:block metal:define-slot="main" />\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
</tal:block>
</tal:block>\n
]]></string> </value>
</item>
......
......@@ -3,11 +3,8 @@
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.PageTemplates.ZopePageTemplate</string>
<string>ZopePageTemplate</string>
</tuple>
<none/>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
<tuple/>
</tuple>
</pickle>
<pickle>
......@@ -54,95 +51,100 @@
<key> <string>_text</string> </key>
<value> <string encoding="cdata"><![CDATA[
<tal:block tal:define="actions python: here.getPortalObject().portal_actions.listFilteredActionsFor(here)">\n
<span class="first">\n
<span id="favourites">\n
<select name="select_favorite"\n
tal:define="ordered_global_actions python:here.getOrderedGlobalActionList(actions[\'global\']);\n
user_actions actions/user;"\n
tal:attributes="onChange string:submitAction(this.form,\'Base_doFavorite\')">\n
<option selected="selected" value=""\n
i18n:translate="" i18n:domain="ui">My favourites</option>\n
<tal:block tal:repeat="action ordered_global_actions">\n
<option tal:condition="action/disabled"\n
disabled="disabled">-- <tal:block tal:content="action/title" i18n:translate="" i18n:domain="ui" /> --</option>\n
<tal:block tal:condition="not:action/disabled"\n
tal:define="name python: action.get(\'name\', \'\');\n
index python: name.find(\' (\');">\n
<option tal:condition="python: index >= 0"\n
tal:attributes="value action/url"><tal:block tal:content="python: name[:index]" i18n:translate="" i18n:domain="ui"></tal:block><tal:block tal:replace="python: name[index:]" /></option>\n
<option tal:condition="python: index < 0"\n
tal:attributes="value action/url"\n
<tal:block 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:block tal:define="actions python: here.getPortalObject().portal_actions.listFilteredActionsFor(here)">\n
<span class="first">\n
<span id="favourites">\n
<select name="select_favorite"\n
tal:define="ordered_global_actions python:here.getOrderedGlobalActionList(actions[\'global\']);\n
user_actions actions/user;"\n
tal:attributes="onChange string:submitAction(this.form,\'Base_doFavorite\')">\n
<option selected="selected" value=""\n
i18n:translate="" i18n:domain="ui">My favourites</option>\n
<tal:block tal:repeat="action ordered_global_actions">\n
<option tal:condition="action/disabled"\n
disabled="disabled">-- <tal:block tal:content="action/title" i18n:translate="" i18n:domain="ui" /> --</option>\n
<tal:block tal:condition="not:action/disabled"\n
tal:define="name python: action.get(\'name\', \'\');\n
index python: name.find(\' (\');">\n
<option tal:condition="python: index &gt;= 0"\n
tal:attributes="value action/url"><tal:block tal:content="python: name[:index]" i18n:translate="" i18n:domain="ui"></tal:block><tal:block tal:replace="python: name[index:]" /></option>\n
<option tal:condition="python: index &lt; 0"\n
tal:attributes="value action/url"\n
tal:content="action/name"\n
i18n:translate="" i18n:domain="ui"></option>\n
</tal:block>\n
</tal:block>\n
<tal:block tal:condition="user_actions">\n
<option disabled="disabled">-- <tal:block i18n:translate="" i18n:domain="ui">User</tal:block> --</option>\n
<option tal:repeat="action user_actions"\n
tal:content="action/name"\n
tal:attributes="value action/url"\n
i18n:translate="" i18n:domain="ui"></option>\n
</tal:block>\n
</tal:block>\n
<tal:block tal:condition="user_actions">\n
<option disabled="disabled">-- <tal:block i18n:translate="" i18n:domain="ui">User</tal:block> --</option>\n
<option tal:repeat="action user_actions"\n
tal:content="action/name"\n
tal:attributes="value action/url"\n
i18n:translate="" i18n:domain="ui"></option>\n
</tal:block>\n
</select>\n
<button type="submit" name="Base_doFavorite:method" title="Select Favorite"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description"\n
i18n:translate="" i18n:domain="ui">Select Favorite</span>\n
</button>\n
</select>\n
<button type="submit" name="Base_doFavorite:method" title="Select Favorite"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description"\n
i18n:translate="" i18n:domain="ui">Select Favorite</span>\n
</button>\n
</span>\n
<span class="separator"></span>\n
<span id="modules">\n
<select name="select_module"\n
tal:define="module_list here/ERP5Site_getModuleItemList;"\n
tal:attributes="onChange string:submitAction(this.form,\'Base_doModule\')">\n
<option selected="selected" value="" i18n:translate="" i18n:domain="ui">ERP5 Modules</option>\n
<option tal:repeat="module module_list"\n
tal:attributes="value python: module[1]"\n
tal:content="python: module[0]"\n
tal:omit-tag="nothing" />\n
</select>\n
<button type="submit" name="Base_doModule:method" title="Select Module"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description"\n
i18n:translate="" i18n:domain="ui">Select Module</span>\n
</button>\n
</span>\n
</span>\n
<span class="separator"></span>\n
<span id="modules">\n
<select name="select_module"\n
tal:define="module_list here/ERP5Site_getModuleItemList;"\n
tal:attributes="onChange string:submitAction(this.form,\'Base_doModule\')">\n
<option selected="selected" value="" i18n:translate="" i18n:domain="ui">ERP5 Modules</option>\n
<option tal:repeat="module module_list"\n
tal:attributes="value python: module[1]"\n
tal:content="python: module[0]"\n
tal:omit-tag="nothing"/>\n
</select>\n
<button type="submit" name="Base_doModule:method" title="Select Module"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description"\n
i18n:translate="" i18n:domain="ui">Select Module</span>\n
</button>\n
<span class="second">\n
<span id="language">\n
<select name="select_language"\n
tal:attributes="onChange string:submitAction(this.form,\'Base_doLanguage\')">\n
<option value=""\n
i18n:translate="" i18n:domain="ui">My language</option>\n
<option tal:repeat="language python: here.Localizer.get_languages_map()"\n
tal:omit-tag="nothing"\n
tal:attributes="value language/id;\n
selected python: language[\'selected\'] and \'selected\' or nothing;"\n
tal:content="python: here.Localizer.erp5_ui.gettext(language[\'title\'], lang=language[\'id\'])" />\n
</select>\n
<button type="submit" name="Base_doLanguage:method" title="Select Language"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description"\n
i18n:translate="" i18n:domain="ui">Select Language</span>\n
</button>\n
</span>\n
<span class="separator"></span>\n
<span id="search">\n
<input type="text" name="field_your_search_text" />\n
<button type="submit" name="Base_searchResultList:method" title="Search"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description"\n
i18n:translate="" i18n:domain="ui">Search</span>\n
</button>\n
</span>\n
</span>\n
</span>\n
<span class="second">\n
<span id="language">\n
<select name="select_language"\n
tal:attributes="onChange string:submitAction(this.form,\'Base_doLanguage\')">\n
<option value=""\n
i18n:translate="" i18n:domain="ui">My language</option>\n
<option tal:repeat="language python: here.Localizer.get_languages_map()"\n
tal:omit-tag="nothing"\n
tal:attributes="value language/id;\n
selected python: language[\'selected\'] and \'selected\' or nothing;"\n
tal:content="python: here.Localizer.erp5_ui.gettext(language[\'title\'], lang=language[\'id\'])" />\n
</select>\n
<button type="submit" name="Base_doLanguage:method" title="Select Language"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description"\n
i18n:translate="" i18n:domain="ui">Select Language</span>\n
</button>\n
</span>\n
<span class="separator"></span>\n
<span id="search">\n
<input type="text" name="field_your_search_text"/>\n
<button type="submit" name="Base_searchResultList:method" title="Search"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description"\n
i18n:translate="" i18n:domain="ui">Search</span>\n
</button>\n
</span>\n
</span>\n
<p class="clear"></p>\n
</tal:block>
<p class="clear"></p>\n
</tal:block>\n
</tal:block>\n
]]></string> </value>
</item>
......
......@@ -3,11 +3,8 @@
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.PageTemplates.ZopePageTemplate</string>
<string>ZopePageTemplate</string>
</tuple>
<none/>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
<tuple/>
</tuple>
</pickle>
<pickle>
......@@ -54,382 +51,347 @@
<key> <string>_text</string> </key>
<value> <string encoding="cdata"><![CDATA[
<!--\n
Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.\n
Thomas Bernard <thomas@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
\n
<tal:block 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:block tal:replace="nothing">\n
<!--\n
This Page template is aimed to generate the HTML code necessary to display correctly the\n
PlaningBox. The process is based on the strucutre passed in parameter (i.e options/struct)\n
Beware this only generates the HTML code, no CSS generation is done in this script\n
-->\n
</tal:block>\n
<tal:block tal:define=" basic options/basic;\n
planning options/planning;\n
address python:basic.context.getUrl()">\n
<!-- hidden fields holding some usefull data-->\n
<input type="hidden" name="list_selection_name" value="PlanningView" tal:attributes="value python:basic.field.get_value(\'selection_name\')" />\n
<!-- setPage needs \'listbox_uid:list\'-->\n
<input type="hidden" name="listbox_uid:list" />\n
<!-- block_moved_list -->\n
<input type="hidden" name="previous_block_moved" value="None"\n
tal:attributes="value python:basic.REQUEST.get(\'previous_block_moved\',\'\')" />\n
<input type="hidden" name="block_moved" />\n
<!-- Planning\'s header -->\n
<div class="planning_box">\n
<table>\n
<tr>\n
<td>\n
<h3 i18n:translate="" i18n:domain="ui">\n
<tal:block tal:replace="structure python:basic.field.get_value(\'title\')" /> </h3>\n
</td>\n
<b tal:replace="nothing"><!-- report path selection --></b>\n
<td>\n
<select name="report_root_url" onChange="submitAction(this.form,\'/setReportRoot\')"\n
tal:attributes="onChange string:submitAction(this.form,\'${address}/setReportRoot\')">\n
<tal:block tal:condition="python:basic.selection is None"\n
tal:define="global selection_report_path python:basic.report_root_list[0][0]" />\n
<tal:block tal:condition="python:basic.selection is not None"\n
tal:define="global selection_report_path python:basic.selection.report_path" />\n
<tal:block tal:repeat="report_root_element python:basic.report_root_list">\n
<tal:block tal:condition="python:report_root_element[0]==selection_report_path">\n
<b tal:replace="nothing">actual value is selected</b>\n
<option i18n:translate="" i18n:domain="ui" selected="selected" value="None"\n
tal:attributes="value python:report_root_element[0]"\n
tal:content="structure python:report_root_element[1]">_</option>\n
</tal:block>\n
<tal:block tal:condition="python:report_root_element[0]!=selection_report_path">\n
<b tal:replace="nothing">actual value is not selected</b>\n
<option i18n:translate="" i18n:domain="ui" value="None"\n
tal:attributes="value python:report_root_element[0]"\n
tal:content="structure python:report_root_element[1]">_</option>\n
</tal:block>\n
</tal:block>\n
</select>\n
</td>\n
<td>\n
<tal:block tal:repeat="nb python:range(8)">\n
&nbsp;\n
</tal:block>\n
<tal:block tal:condition="python:planning.main_axis == planning.Y">\n
<tal:block i18n:translate="" i18n:domain="ui"> Y Axis </tal:block>\n
</tal:block>\n
<tal:block tal:condition="python:planning.main_axis != planning.Y">\n
<tal:block i18n:translate="" i18n:domain="ui"> X Axis </tal:block>\n
</tal:block>\n
<tal:block tal:repeat="nb python:range(1)">\n
&nbsp;\n
</tal:block>\n
</td>\n
<td>\n
<b tal:replace="nothing">\n
<!-- page selection need to be implemented here\n
for that will use structure.basic-->\n
</b>\n
<tal:block tal:condition="python:basic.main_axis_info[\'bound_start\']!=0">\n
<b tal:replace="nothing"> previous page exists </b>\n
<input type="image" src="/images/1leftarrowv.png" title="Previous Page" name="" border="0"\n
tal:attributes="src string:${address}/images/1leftarrowv.png;\n
name string:${address}/previousPage:method" />\n
</tal:block>\n
<select name="list_start" title="Change Page" size="1"\n
onChange=""\n
tal:condition="python:basic.main_axis_info[\'bound_page_total\'] &gt; 1"\n
tal:attributes="onChange string:submitAction(this.form,\'${address}/setPage\')">\n
<tal:block tal:repeat="current_page_number python:range(basic.main_axis_info[\'bound_page_total\']+1)[1:]">\n
<tal:block tal:condition="python:current_page_number==basic.main_axis_info[\'bound_page_current\']">\n
<b tal:replace="nothing"> actual page is selected </b>\n
<option selected="selected" value="None"\n
tal:attributes="value python:(current_page_number - 1)*basic.main_axis_info[\'bound_axis_groups\']"\n
tal:content="structure python:str(current_page_number) + \' of \' + str(basic.main_axis_info[\'bound_page_total\'])">page</option>\n
</tal:block>\n
<tal:block tal:condition="python:current_page_number!=basic.main_axis_info[\'bound_page_current\']">\n
<b tal:replace="nothing"> actual page is not selected </b>\n
<option value="None"\n
tal:attributes="value python:(current_page_number - 1)*basic.main_axis_info[\'bound_axis_groups\']"\n
tal:content="structure python:str(current_page_number) + \' of \' + str(basic.main_axis_info[\'bound_page_total\'])">page</option>\n
</tal:block>\n
</tal:block>\n
</select>\n
\n
<tal:block tal:define=" basic options/basic;\n
planning options/planning;\n
address python:basic.context.getUrl()">\n
\n
<!-- hidden fields holding some usefull data-->\n
<input type="hidden" name="list_selection_name" value="PlanningView" tal:attributes="value python:basic.field.get_value(\'selection_name\')"/>\n
<!-- setPage needs \'listbox_uid:list\'-->\n
<input type="hidden" name="listbox_uid:list"/>\n
<!-- block_moved_list -->\n
<input type="hidden" name="previous_block_moved" value="None"\n
tal:attributes="value python:basic.REQUEST.get(\'previous_block_moved\',\'\')"/>\n
<input type="hidden" name="block_moved"/>\n
\n
<!-- Planning\'s header -->\n
<div class="planning_box">\n
\n
<table>\n
<tr>\n
<td>\n
<h3 i18n:translate="" i18n:domain="ui">\n
<tal:block tal:replace="structure python:basic.field.get_value(\'title\')"/> </h3>\n
</td>\n
<b tal:replace="nothing"><!-- report path selection --></b>\n
<td>\n
<select name="report_root_url" onChange="submitAction(this.form,\'/setReportRoot\')"\n
tal:attributes="onChange string:submitAction(this.form,\'${address}/setReportRoot\')">\n
<tal:block tal:condition="python:basic.selection is None"\n
tal:define="global selection_report_path python:basic.report_root_list[0][0]"/>\n
<tal:block tal:condition="python:basic.selection is not None"\n
tal:define="global selection_report_path python:basic.selection.report_path"/>\n
<tal:block tal:repeat="report_root_element python:basic.report_root_list">\n
<tal:block tal:condition="python:report_root_element[0]==selection_report_path">\n
<b tal:replace="nothing">actual value is selected</b>\n
<option i18n:translate="" i18n:domain="ui" selected="selected" value="None"\n
tal:attributes="value python:report_root_element[0]"\n
tal:content="structure python:report_root_element[1]">_</option>\n
</tal:block>\n
<tal:block tal:condition="python:report_root_element[0]!=selection_report_path">\n
<b tal:replace="nothing">actual value is not selected</b>\n
<option i18n:translate="" i18n:domain="ui" value="None"\n
tal:attributes="value python:report_root_element[0]"\n
tal:content="structure python:report_root_element[1]">_</option>\n
</tal:block>\n
</tal:block>\n
</select>\n
</td>\n
\n
<td>\n
<tal:block tal:repeat="nb python:range(8)">\n
&nbsp;\n
</tal:block>\n
<tal:block tal:condition="python:planning.main_axis == planning.Y">\n
<tal:block i18n:translate="" i18n:domain="ui"> Y Axis </tal:block>\n
</tal:block>\n
<tal:block tal:condition="python:planning.main_axis != planning.Y">\n
<tal:block i18n:translate="" i18n:domain="ui"> X Axis </tal:block>\n
</tal:block>\n
<tal:block tal:repeat="nb python:range(1)">\n
&nbsp;\n
</tal:block>\n
</td>\n
<tal:block tal:condition="python:basic.main_axis_info[\'bound_stop\']!=basic.main_axis_info[\'bound_end\']">\n
<b tal:replace="nothing"> next page exists </b>\n
<input type="image" src="/images/1rightarrowv.png" title="Next Page" name="" border="0"\n
tal:attributes="src string:${address}/images/1rightarrowv.png;\n
name string:${address}/nextPage:method" />\n
</tal:block>\n
</td>\n
\n
<td>\n
<b tal:replace="nothing">\n
<!-- page selection need to be implemented here\n
for that will use structure.basic-->\n
</b>\n
<tal:block tal:condition="python:basic.main_axis_info[\'bound_start\']!=0">\n
<b tal:replace="nothing"> previous page exists </b>\n
<input type="image" src="/images/1leftarrowv.png" title="Previous Page" name="" border="0"\n
tal:attributes="src string:${address}/images/1leftarrowv.png;\n
name string:${address}/previousPage:method"/>\n
</tal:block>\n
<td>\n
<tal:block tal:repeat="nb python:range(8)">\n
&nbsp;\n
</tal:block>\n
<tal:block tal:condition="python:planning.main_axis == planning.Y">\n
<tal:block i18n:translate="" i18n:domain="ui"> X Axis </tal:block>\n
</tal:block>\n
<tal:block tal:condition="python:planning.main_axis != planning.Y">\n
<tal:block i18n:translate="" i18n:domain="ui"> Y Axis </tal:block>\n
</tal:block>\n
<tal:block tal:repeat="nb python:range(1)">\n
&nbsp;\n
</tal:block>\n
</td>\n
<td>\n
\n
<select name="list_start" title="Change Page" size="1"\n
onChange=""\n
tal:condition="python:basic.main_axis_info[\'bound_page_total\'] > 1"\n
tal:attributes="onChange string:submitAction(this.form,\'${address}/setPage\')">\n
<tal:block tal:repeat="current_page_number python:range(basic.main_axis_info[\'bound_page_total\']+1)[1:]">\n
<tal:block tal:condition="python:current_page_number==basic.main_axis_info[\'bound_page_current\']">\n
<b tal:replace="nothing"> actual page is selected </b>\n
<option selected="selected" value="None"\n
tal:attributes="value python:(current_page_number - 1)*basic.main_axis_info[\'bound_axis_groups\']"\n
tal:content="structure python:str(current_page_number) + \' of \' + str(basic.main_axis_info[\'bound_page_total\'])">page</option>\n
</tal:block>\n
<tal:block tal:condition="python:current_page_number!=basic.main_axis_info[\'bound_page_current\']">\n
<b tal:replace="nothing"> actual page is not selected </b>\n
<option value="None"\n
tal:attributes="value python:(current_page_number - 1)*basic.main_axis_info[\'bound_axis_groups\']"\n
tal:content="structure python:str(current_page_number) + \' of \' + str(basic.main_axis_info[\'bound_page_total\'])">page</option>\n
<!-- processing zoom level select -->\n
<select name="zoom_level" title="Change Zoom Level" size="1"\n
onChange=""\n
tal:attributes="onChange string:submitAction(this.form,\'${address}/setZoomLevel\')">\n
<tal:block tal:condition="python:not basic.field.get_value(\'use_date_zoom\')">\n
<tal:block tal:repeat="current_zoom_level python:[0.1,0.25,0.5,1,2,3,4,8,12,16,32,64]">\n
<tal:block tal:condition="python:current_zoom_level==basic.secondary_axis_info[\'zoom_level\']">\n
<b tal:replace="nothing"> current zoom level is selected </b>\n
<option selected="selected" value="None"\n
tal:attributes="value python:current_zoom_level"\n
tal:content="structure python:\'Zoom %sx\' % current_zoom_level">Zoom level</option>\n
</tal:block>\n
<tal:block tal:condition="python:current_zoom_level!=basic.secondary_axis_info[\'zoom_level\']">\n
<b tal:replace="nothing"> current zoom level is not selected </b>\n
<option value="None"\n
tal:attributes="value python:current_zoom_level"\n
tal:content="structure python:\'Zoom %sx\' % current_zoom_level">Zoom level</option>\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
<tal:block tal:condition="python:basic.field.get_value(\'use_date_zoom\')">\n
<!-- Defining Date Zoom Level -->\n
<!-- XXX This part has to be improved -->\n
<tal:block tal:repeat="current_zoom_level python:[ [i.getTitle() , i.getIntIndex() ] for i in context.portal_categories.zoom.contentValues(sort_on=\'int_index\') ]">\n
<tal:block tal:condition="python:current_zoom_level[1]==basic.secondary_axis_info[\'zoom_level\']">\n
<b tal:replace="nothing"> current zoom level is selected </b>\n
<option selected="selected" value="None"\n
tal:attributes="value python:current_zoom_level[1]"\n
i18n:translate="" i18n:domain="ui"\n
tal:content="structure python:str(current_zoom_level[0])">Zoom level</option>\n
</tal:block>\n
<tal:block tal:condition="python:current_zoom_level[1]!=basic.secondary_axis_info[\'zoom_level\']">\n
<b tal:replace="nothing"> current zoom level is not selected </b>\n
<option value="None"\n
tal:attributes="value python:current_zoom_level[1]"\n
i18n:translate="" i18n:domain="ui"\n
tal:content="structure python:str(current_zoom_level[0])">Zoom level</option>\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
</select>\n
<tal:block tal:condition="python:basic.field.get_value(\'use_date_zoom\')"\n
tal:define="form_id python:\'%s\' % (basic.form.id);\n
selection_name python:basic.field.get_value(\'selection_name\');\n
zoom_level python:basic.secondary_axis_info[\'zoom_level\'];\n
today python:\'%s/%s/%s\' % (str(DateTime().year()), str(DateTime().month()),str(DateTime().day()))">\n
<a tal:attributes="href python: \'%s/setZoomLevel?form_id=%s&amp;list_selection_name=%s&amp;zoom_date_start=%s\'\n
% (context.absolute_url(), form_id,selection_name,today)">\n
<img src="/images/jump.png" title="Jump to Current Day" name="JumpToCurrentDay"\n
tal:attributes="src string:${address}/images/jump.png;" />\n
</a>\n
</tal:block>\n
</td>\n
</tr>\n
</table>\n
<!-- div class="planning_box" -->\n
<!-- planning structure (axis and group representation)-->\n
<div tal:repeat="axis python:(planning.main_axis,planning.secondary_axis)"\n
tal:attributes="id python:axis.name">\n
<!-- groups of the current axis-->\n
<tal:block tal:repeat="axis_group python:axis.axis_group">\n
<div tal:attributes="id python:axis_group.name;\n
title python:axis_group.tooltip">\n
<!-- title of the current group-->\n
<a tal:attributes="href python:axis_group.info_title.link;\n
id python:axis_group.name + \'_info\'">\n
<tal:block tal:content="python:axis_group.info_title.title" />\n
</a>\n
</div>\n
<!-- depth of the current group -->\n
<div tal:repeat="depth python:range(axis_group.depth)"\n
tal:attributes="id python: axis_group.name + \'_depth_\' + str(depth)">\n
</div>\n
</tal:block>\n
</tal:block>\n
</select>\n
\n
<tal:block tal:condition="python:basic.main_axis_info[\'bound_stop\']!=basic.main_axis_info[\'bound_end\']">\n
<b tal:replace="nothing"> next page exists </b>\n
<input type="image" src="/images/1rightarrowv.png" title="Next Page" name="" border="0"\n
tal:attributes="src string:${address}/images/1rightarrowv.png;\n
name string:${address}/nextPage:method"/>\n
</tal:block>\n
</td>\n
\n
<td>\n
<tal:block tal:repeat="nb python:range(8)">\n
&nbsp;\n
</tal:block>\n
<tal:block tal:condition="python:planning.main_axis == planning.Y">\n
<tal:block i18n:translate="" i18n:domain="ui"> X Axis </tal:block>\n
</tal:block>\n
<tal:block tal:condition="python:planning.main_axis != planning.Y">\n
<tal:block i18n:translate="" i18n:domain="ui"> Y Axis </tal:block>\n
</tal:block>\n
<tal:block tal:repeat="nb python:range(1)">\n
&nbsp;\n
</tal:block>\n
</td>\n
<td>\n
\n
<!-- processing zoom level select -->\n
<select name="zoom_level" title="Change Zoom Level" size="1"\n
onChange=""\n
tal:attributes="onChange string:submitAction(this.form,\'${address}/setZoomLevel\')">\n
<tal:block tal:condition="python:not basic.field.get_value(\'use_date_zoom\')">\n
<tal:block tal:repeat="current_zoom_level python:[0.1,0.25,0.5,1,2,3,4,8,12,16,32,64]">\n
<tal:block tal:condition="python:current_zoom_level==basic.secondary_axis_info[\'zoom_level\']">\n
<b tal:replace="nothing"> current zoom level is selected </b>\n
<option selected="selected" value="None"\n
tal:attributes="value python:current_zoom_level"\n
tal:content="structure python:\'Zoom %sx\' % current_zoom_level">Zoom level</option>\n
<tal:condition tal:condition="python:axis==planning.X">\n
<tal:block tal:define="global previous_src string:${address}/images/1leftarrowv.png;\n
global next_src string:${address}/images/1rightarrowv.png">\n
</tal:block>\n
</tal:condition>\n
<tal:condition tal:condition="python:axis==planning.Y">\n
<tal:block tal:define="global previous_src string:${address}/images/1toparrow.png;\n
global next_src string:${address}/images/1bottomarrow.png">\n
</tal:block>\n
</tal:condition>\n
<!-- widgets of the current axis -->\n
<tal:block tal:condition="python:axis==planning.main_axis">\n
<!-- current axis is main axis-->\n
<tal:block tal:condition="python:basic.main_axis_info[\'bound_start\']!=0">\n
<!-- previous page exists -->\n
<input type="image" src="/images/1leftarrowv.png" title="Previous Page" name="" border="0"\n
tal:attributes="src previous_src;\n
name string:${address}/previousPage:method;\n
id python:axis.name + \'_previous\'" />\n
</tal:block>\n
<tal:block tal:condition="python:current_zoom_level!=basic.secondary_axis_info[\'zoom_level\']">\n
<b tal:replace="nothing"> current zoom level is not selected </b>\n
<option value="None"\n
tal:attributes="value python:current_zoom_level"\n
tal:content="structure python:\'Zoom %sx\' % current_zoom_level">Zoom level</option>\n
<tal:block tal:condition="python:basic.main_axis_info[\'bound_stop\']!=basic.main_axis_info[\'bound_end\']">\n
<!-- next page exists -->\n
<input type="image" src="/images/1rightarrowv.png" title="Next Page" name="" border="0"\n
tal:attributes="src next_src;\n
name string:${address}/nextPage:method;\n
id python:axis.name + \'_next\'" />\n
</tal:block>\n
<!-- inserting depth widget -->\n
<div tal:condition= "python:axis==planning.X"\n
tal:define="url python:\'%s/%s\' % (basic.context.absolute_url(),basic.form.id);\n
selection_name python:basic.field.get_value(\'selection_name\')"\n
tal:attributes="id python:axis.name + \'_depth\'">\n
<a tal:repeat="unfold_level python:range(0,4)"\n
tal:attributes="href python:\'%s?selection_index=&amp;selection_name=%s&amp;ignore_layout:int=0&amp;report_depth:int=%s\' % (url,selection_name,unfold_level)"\n
tal:content="structure python:str(unfold_level) + \'&lt;br&gt;\'">\n
0\n
</a>\n
</div>\n
<div tal:condition= "python:axis==planning.Y"\n
tal:define="url python:\'%s/%s\' % (basic.context.absolute_url(),basic.form.id);\n
selection_name python:basic.field.get_value(\'selection_name\')"\n
tal:attributes="id python:axis.name + \'_depth\'">\n
<a tal:repeat="unfold_level python:range(0,4)"\n
tal:attributes="href python:\'%s?selection_index=&amp;selection_name=%s&amp;ignore_layout:int=0&amp;report_depth:int=%s\' % (url,selection_name,unfold_level)"\n
tal:content="structure python:str(unfold_level) + \'&nbsp;\'">\n
0\n
</a>\n
</div>\n
</tal:block>\n
</tal:block>\n
<tal:block tal:condition="python:basic.field.get_value(\'use_date_zoom\')">\n
<!-- Defining Date Zoom Level -->\n
<!-- XXX This part has to be improved -->\n
<tal:block tal:repeat="current_zoom_level python:[ [i.getTitle() , i.getIntIndex() ] for i in context.portal_categories.zoom.contentValues(sort_on=\'int_index\') ]">\n
<tal:block tal:condition="python:current_zoom_level[1]==basic.secondary_axis_info[\'zoom_level\']">\n
<b tal:replace="nothing"> current zoom level is selected </b>\n
<option selected="selected" value="None"\n
tal:attributes="value python:current_zoom_level[1]"\n
i18n:translate="" i18n:domain="ui"\n
tal:content="structure python:str(current_zoom_level[0])">Zoom level</option>\n
</tal:block>\n
<tal:block tal:condition="python:current_zoom_level[1]!=basic.secondary_axis_info[\'zoom_level\']">\n
<b tal:replace="nothing"> current zoom level is not selected </b>\n
<option value="None"\n
tal:attributes="value python:current_zoom_level[1]"\n
i18n:translate="" i18n:domain="ui"\n
tal:content="structure python:str(current_zoom_level[0])">Zoom level</option>\n
</tal:block>\n
<tal:block tal:condition="python:axis==planning.secondary_axis">\n
<!-- Zoom page-->\n
<!-- tal:block tal:condition="python:basic.secondary_axis_info[\'zoom_start\']!=0" -->\n
<!-- previous page exists -->\n
<input type="image" src="/images/1leftarrowv.png" title="Previous Zoom Page" name="" border="0"\n
tal:attributes="src previous_src;\n
name string:${address}/previousZoom:method;\n
id python:axis.name + \'_previous\'" />\n
<!-- /tal:block -->\n
<!-- tal:block tal:condition="python:basic.secondary_axis_info[\'zoom_start\']!=(basic.secondary_axis_info[\'zoom_level\'] - 1) and basic.secondary_axis_info[\'zoom_level\'] > 1" -->\n
<!-- next page exists -->\n
<input type="image" src="/images/1rightarrowv.png" title="Next Zoom Page" name="" border="0"\n
tal:attributes="src next_src;\n
name string:${address}/nextZoom:method;\n
id python:axis.name + \'_next\'" />\n
<!-- /tal:block -->\n
</tal:block>\n
</tal:block>\n
</select>\n
<tal:block tal:condition="python:basic.field.get_value(\'use_date_zoom\')"\n
tal:define="form_id python:\'%s\' % (basic.form.id);\n
selection_name python:basic.field.get_value(\'selection_name\');\n
zoom_level python:basic.secondary_axis_info[\'zoom_level\'];\n
today python:\'%s/%s/%s\' % (str(DateTime().year()), str(DateTime().month()),str(DateTime().day()))">\n
<a tal:attributes="href python: \'%s/setZoomLevel?form_id=%s&list_selection_name=%s&zoom_date_start=%s\'\n
% (context.absolute_url(), form_id,selection_name,today)">\n
<img src="/images/jump.png" title="Jump to Current Day" name="JumpToCurrentDay" \n
tal:attributes="src string:${address}/images/jump.png;" />\n
</a> \n
</tal:block> \n
</td>\n
</tr>\n
</table>\n
\n
<!-- div class="planning_box" -->\n
<!-- planning structure (axis and group representation)-->\n
<div tal:repeat="axis python:(planning.main_axis,planning.secondary_axis)"\n
tal:attributes="id python:axis.name">\n
<!-- groups of the current axis-->\n
<tal:block tal:repeat="axis_group python:axis.axis_group">\n
<div tal:attributes="id python:axis_group.name;\n
title python:axis_group.tooltip">\n
<!-- title of the current group-->\n
<a tal:attributes="href python:axis_group.info_title.link;\n
id python:axis_group.name + \'_info\'">\n
<tal:block tal:content="python:axis_group.info_title.title" />\n
</a>\n
</div>\n
\n
<!-- depth of the current group -->\n
<div tal:repeat="depth python:range(axis_group.depth)"\n
tal:attributes="id python: axis_group.name + \'_depth_\' + str(depth)">\n
</div>\n
</tal:block>\n
\n
<tal:condition tal:condition="python:axis==planning.X">\n
<tal:block tal:define="global previous_src string:${address}/images/1leftarrowv.png;\n
global next_src string:${address}/images/1rightarrowv.png">\n
</tal:block>\n
</tal:condition>\n
<tal:condition tal:condition="python:axis==planning.Y">\n
<tal:block tal:define="global previous_src string:${address}/images/1toparrow.png;\n
global next_src string:${address}/images/1bottomarrow.png">\n
</tal:block>\n
</tal:condition>\n
\n
<!-- widgets of the current axis -->\n
<tal:block tal:condition="python:axis==planning.main_axis">\n
<!-- current axis is main axis-->\n
<tal:block tal:condition="python:basic.main_axis_info[\'bound_start\']!=0">\n
<!-- previous page exists -->\n
<input type="image" src="/images/1leftarrowv.png" title="Previous Page" name="" border="0"\n
tal:attributes="src previous_src;\n
name string:${address}/previousPage:method;\n
id python:axis.name + \'_previous\'"/>\n
</tal:block>\n
<tal:block tal:condition="python:basic.main_axis_info[\'bound_stop\']!=basic.main_axis_info[\'bound_end\']">\n
<!-- next page exists -->\n
<input type="image" src="/images/1rightarrowv.png" title="Next Page" name="" border="0"\n
tal:attributes="src next_src;\n
name string:${address}/nextPage:method;\n
id python:axis.name + \'_next\'"/>\n
</tal:block>\n
\n
<!-- inserting depth widget -->\n
<div tal:condition= "python:axis==planning.X"\n
tal:define="url python:\'%s/%s\' % (basic.context.absolute_url(),basic.form.id);\n
selection_name python:basic.field.get_value(\'selection_name\')"\n
tal:attributes="id python:axis.name + \'_depth\'">\n
<a tal:repeat="unfold_level python:range(0,4)"\n
tal:attributes="href python:\'%s?selection_index=&amp;selection_name=%s&amp;ignore_layout:int=0&amp;report_depth:int=%s\' % (url,selection_name,unfold_level)"\n
tal:content="structure python:str(unfold_level) + \'&lt;br&gt;\'">\n
0\n
</a>\n
</div>\n
\n
<div tal:condition= "python:axis==planning.Y"\n
tal:define="url python:\'%s/%s\' % (basic.context.absolute_url(),basic.form.id);\n
selection_name python:basic.field.get_value(\'selection_name\')"\n
tal:attributes="id python:axis.name + \'_depth\'">\n
<a tal:repeat="unfold_level python:range(0,4)"\n
tal:attributes="href python:\'%s?selection_index=&amp;selection_name=%s&amp;ignore_layout:int=0&amp;report_depth:int=%s\' % (url,selection_name,unfold_level)"\n
tal:content="structure python:str(unfold_level) + \'&nbsp;\'">\n
0\n
</a>\n
</div>\n
\n
</tal:block>\n
<tal:block tal:condition="python:axis==planning.secondary_axis">\n
<!-- Zoom page-->\n
<!-- tal:block tal:condition="python:basic.secondary_axis_info[\'zoom_start\']!=0" -->\n
<!-- previous page exists -->\n
<input type="image" src="/images/1leftarrowv.png" title="Previous Zoom Page" name="" border="0"\n
tal:attributes="src previous_src;\n
name string:${address}/previousZoom:method;\n
id python:axis.name + \'_previous\'"/>\n
<!-- /tal:block -->\n
<!-- tal:block tal:condition="python:basic.secondary_axis_info[\'zoom_start\']!=(basic.secondary_axis_info[\'zoom_level\'] - 1) and basic.secondary_axis_info[\'zoom_level\'] > 1" -->\n
<!-- next page exists -->\n
<input type="image" src="/images/1rightarrowv.png" title="Next Zoom Page" name="" border="0"\n
tal:attributes="src next_src;\n
name string:${address}/nextZoom:method;\n
id python:axis.name + \'_next\'"/>\n
<!-- /tal:block -->\n
</tal:block>\n
</div>\n
\n
<!-- planning content-->\n
<div class="planning_content">\n
<!-- display main axis lines -->\n
<tal:block tal:repeat="axis_group python:planning.main_axis.axis_group">\n
<div tal:attributes="id python:axis_group.name + \'_line\'"></div>\n
<b tal:replace="nothing">\n
<!-- display main axis sub_lines if necessary --></b>\n
<tal:block tal:condition="python:axis_group.axis_element_number > 1">\n
<div tal:repeat="axis_element_number python:range(axis_group.axis_element_number)[1:]"\n
tal:attributes="id python:axis_group.name + \'_line_\' + str(axis_element_number)">\n
</div>\n
</tal:block>\n
\n
</tal:block>\n
\n
<!-- display secondary axis lines -->\n
<div tal:repeat="axis_group python:planning.secondary_axis.axis_group"\n
tal:attributes="id python:axis_group.name + \'_line\'"></div>\n
\n
<!-- display blocks -->\n
<tal:block tal:repeat="block python:planning.content">\n
<div tal:condition="python:block.property_dict[\'stat\']== 0"\n
tal:attributes="id python:block.name;\n
ondblclick string:showGrips();\n
title python:block.title;\n
style python:\'text-align:center\'">\n
<tal:block tal:condition="python:block.zone == 1">\n
<tal:block tal:repeat="area python:block.info.keys()">\n
<tal:block tal:define="info_area python:area.split(\'_\')[1]">\n
<!-- tal:attributes="id python:info_area"> <! python:block.name + \'_\' + area"-->\n
<tal:block tal:condition="python:block.info[area].info != \'\'">\n
<tal:block tal:condition="python:info_area!=\'center\'">\n
<a tal:condition="python:block.info[area].info != \'__\'"\n
tal:content="python:block.info[area].info"\n
tal:attributes="href python:block.info[area].link;\n
class python:\'planning_box_\' + info_area">\n
</a>\n
\n
<a tal:condition="python:block.info[area].info == \'__\'"\n
tal:attributes="href python:block.info[area].link;\n
class python:\'planning_box_\' + info_area">\n
<img tal:attributes="src python:basic.context.getUrl() + \'/images/question.png\'"\n
height="15" width="15">\n
</a>\n
</tal:block>\n
<tal:block tal:condition="python:info_area==\'center\'" >\n
<div tal:attributes="class python:\'planning_box_\' + info_area">\n
<a tal:condition="python:block.info[area].info != \'__\'"\n
tal:content="python:block.info[area].info"\n
tal:attributes="href python:block.info[area].link">\n
</a>\n
<a tal:condition="python:block.info[area].info == \'__\'"\n
tal:attributes="href python:block.info[area].link"\n
tal:content="python:\'.\'">\n
<!-- not used any more\n
<img tal:attributes="src python:basic.here.getUrl() + \'/images/question.png\'"\n
height="15" width="15">\n
-->\n
</a>\n
</div>\n
</tal:block>\n
</div>\n
<!-- planning content-->\n
<div class="planning_content">\n
<!-- display main axis lines -->\n
<tal:block tal:repeat="axis_group python:planning.main_axis.axis_group">\n
<div tal:attributes="id python:axis_group.name + \'_line\'"></div>\n
<b tal:replace="nothing">\n
<!-- display main axis sub_lines if necessary --></b>\n
<tal:block tal:condition="python:axis_group.axis_element_number &gt; 1">\n
<div tal:repeat="axis_element_number python:range(axis_group.axis_element_number)[1:]"\n
tal:attributes="id python:axis_group.name + \'_line_\' + str(axis_element_number)">\n
</div>\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
</div>\n
<div tal:condition="python:block.property_dict[\'stat\']== 1"\n
tal:attributes="id python:block.name;\n
title python:block.title">\n
<!-- display secondary axis lines -->\n
<div tal:repeat="axis_group python:planning.secondary_axis.axis_group"\n
tal:attributes="id python:axis_group.name + \'_line\'"></div>\n
<!-- display blocks -->\n
<tal:block tal:repeat="block python:planning.content">\n
<div tal:condition="python:block.property_dict[\'stat\']== 0"\n
tal:attributes="id python:block.name;\n
ondblclick string:showGrips();\n
title python:block.title;\n
style python:\'text-align:center\'">\n
<tal:block tal:condition="python:block.zone == 1">\n
<tal:block tal:repeat="area python:block.info.keys()">\n
<tal:block tal:define="info_area python:area.split(\'_\')[1]">\n
<!-- tal:attributes="id python:info_area"> <! python:block.name + \'_\' + area"-->\n
<tal:block tal:condition="python:block.info[area].info != \'\'">\n
<tal:block tal:condition="python:info_area!=\'center\'">\n
<a tal:condition="python:block.info[area].info != \'__\'"\n
tal:content="python:block.info[area].info"\n
tal:attributes="href python:block.info[area].link;\n
class python:\'planning_box_\' + info_area">\n
</a>\n
<a tal:condition="python:block.info[area].info == \'__\'"\n
tal:attributes="href python:block.info[area].link;\n
class python:\'planning_box_\' + info_area">\n
<img tal:attributes="src python:basic.context.getUrl() + \'/images/question.png\'"\n
height="15" width="15" />\n
</a>\n
</tal:block>\n
<tal:block tal:condition="python:info_area==\'center\'">\n
<div tal:attributes="class python:\'planning_box_\' + info_area">\n
<a tal:condition="python:block.info[area].info != \'__\'"\n
tal:content="python:block.info[area].info"\n
tal:attributes="href python:block.info[area].link">\n
</a>\n
<a tal:condition="python:block.info[area].info == \'__\'"\n
tal:attributes="href python:block.info[area].link"\n
tal:content="python:\'.\'">\n
<!-- not used any more\n
&lt;img tal:attributes="src python:basic.here.getUrl() + \'/images/question.png\'"\n
height="15" width="15" /&gt;\n
-->\n
</a>\n
</div>\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
</div>\n
<div tal:condition="python:block.property_dict[\'stat\']== 1"\n
tal:attributes="id python:block.name;\n
title python:block.title">\n
</div>\n
</tal:block>\n
</div>\n
<!-- generic div used for redimensionning-->\n
<div id="top" style="position:absolute; width:5px;height:5px; background:#a45d10"></div>\n
<div id="right" style="position:absolute; width:5px;height:5px; background:#a45d10"></div>\n
<div id="bottom" style="position:absolute; width:5px;height:5px; background:#a45d10"></div>\n
<div id="left" style="position:absolute; width:5px;height:5px; background:#a45d10"></div>\n
<!-- declaring DTML properties -->\n
<tal:block tal:replace="structure python:context.planning_dhtml(planning=planning)" />\n
<!--/div-->\n
</div>\n
</tal:block>\n
</div>\n
\n
<!-- generic div used for redimensionning-->\n
<div id="top" style="position:absolute; width:5px;height:5px; background:#a45d10"></div>\n
<div id="right" style="position:absolute; width:5px;height:5px; background:#a45d10"></div>\n
<div id="bottom" style="position:absolute; width:5px;height:5px; background:#a45d10"></div>\n
<div id="left" style="position:absolute; width:5px;height:5px; background:#a45d10"></div>\n
\n
<!-- declaring DTML properties -->\n
<tal:block tal:replace="structure python:context.planning_dhtml(planning=planning)"/>\n
\n
<!--/div-->\n
</div>\n
</tal:block>\n
......
......@@ -3,11 +3,8 @@
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.PageTemplates.ZopePageTemplate</string>
<string>ZopePageTemplate</string>
</tuple>
<none/>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
<tuple/>
</tuple>
</pickle>
<pickle>
......@@ -54,85 +51,66 @@
<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
<tal:block 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@nexedi.com>\n
Christophe Dumez <christophe@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:use-macro="here/view_main/macros/master">\n
<tal:block metal:fill-slot="main">\n
<tal:block tal:define="field_errors python: request.get(\'field_errors\',{});\n
dummy python: request.set(\'here\', here);\n
left_group python: form.get_fields_in_group(\'left\');\n
right_group python: form.get_fields_in_group(\'right\');\n
center_left_group python: form.get_fields_in_group(\'center_left\');\n
center_right_group python: form.get_fields_in_group(\'center_right\');\n
bottom_group python: form.get_fields_in_group(\'bottom\');\n
field_render nocall: here/field_render/macros/field_render">\n
<tal:block tal:condition="preferred_html_style_developper_mode">\n
<tal:block metal:use-macro="developper_shortcut_render/macros/form" />\n
</tal:block>\n
<div tal:condition="python: len(left_group) > 0 or len(right_group) > 0"\n
class="top_group">\n
<fieldset tal:condition="python: len(left_group) > 0"\n
class="left">\n
<tal:block tal:repeat="field left_group">\n
<tal:block metal:use-macro="field_render" />\n
</tal:block>\n
</fieldset>\n
<fieldset tal:condition="python: len(right_group) > 0"\n
class="right">\n
<tal:block tal:repeat="field right_group">\n
<tal:block metal:use-macro="field_render" />\n
</tal:block>\n
</fieldset>\n
<p class="clear"></p>\n
</div>\n
<div tal:condition="python: len(center_left_group) > 0 or len(center_right_group) > 0"\n
class="top_group">\n
<fieldset tal:condition="python: len(center_left_group) > 0"\n
class="left">\n
<tal:block tal:repeat="field center_left_group">\n
<tal:block metal:use-macro="field_render" />\n
</tal:block>\n
</fieldset>\n
<fieldset tal:condition="python: len(center_right_group) > 0"\n
class="right">\n
<tal:block tal:repeat="field center_right_group">\n
<tal:block metal:use-macro="here/view_main/macros/master">\n
<tal:block metal:fill-slot="main">\n
<tal:block tal:define="field_errors python: request.get(\'field_errors\',{});\n
dummy python: request.set(\'here\', here);\n
left_group python: form.get_fields_in_group(\'left\');\n
right_group python: form.get_fields_in_group(\'right\');\n
center_left_group python: form.get_fields_in_group(\'center_left\');\n
center_right_group python: form.get_fields_in_group(\'center_right\');\n
bottom_group python: form.get_fields_in_group(\'bottom\');\n
field_render nocall: here/field_render/macros/field_render">\n
<tal:block tal:condition="preferred_html_style_developper_mode">\n
<tal:block metal:use-macro="developper_shortcut_render/macros/form" />\n
</tal:block>\n
<div tal:condition="python: len(left_group) > 0 or len(right_group) > 0"\n
class="top_group">\n
<fieldset tal:condition="python: len(left_group) > 0"\n
class="left">\n
<tal:block tal:repeat="field left_group">\n
<tal:block metal:use-macro="field_render" />\n
</tal:block>\n
</fieldset>\n
<fieldset tal:condition="python: len(right_group) > 0"\n
class="right">\n
<tal:block tal:repeat="field right_group">\n
<tal:block metal:use-macro="field_render" />\n
</tal:block>\n
</fieldset>\n
<p class="clear"></p>\n
</div>\n
<div tal:condition="python: len(center_left_group) > 0 or len(center_right_group) > 0"\n
class="top_group">\n
<fieldset tal:condition="python: len(center_left_group) > 0"\n
class="left">\n
<tal:block tal:repeat="field center_left_group">\n
<tal:block metal:use-macro="field_render" />\n
</tal:block>\n
</fieldset>\n
<fieldset tal:condition="python: len(center_right_group) > 0"\n
class="right">\n
<tal:block tal:repeat="field center_right_group">\n
<tal:block metal:use-macro="field_render" />\n
</tal:block>\n
</fieldset>\n
<p class="clear"></p>\n
</div>\n
<fieldset tal:condition="python: len(bottom_group) > 0"\n
class="center">\n
<tal:block tal:repeat="field python: form.get_fields_in_group(\'bottom\')">\n
<tal:block metal:use-macro="field_render" />\n
</tal:block>\n
<p class="clear"></p>\n
</fieldset>\n
<p class="clear"></p>\n
</div>\n
<fieldset tal:condition="python: len(bottom_group) > 0"\n
class="center">\n
<tal:block tal:repeat="field python: form.get_fields_in_group(\'bottom\')">\n
<tal:block metal:use-macro="field_render" />\n
</tal:block>\n
<p class="clear"></p>\n
</fieldset>\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
</tal:block>
</tal:block>\n
]]></string> </value>
</item>
......
......@@ -51,34 +51,14 @@
<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
<tal:block 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@nexedi.com>\n
Christophe Dumez <christophe@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 tal:define="local_parameter_list local_parameter_list | python: {};\n
dummy python: local_parameter_list.update({\'field_id\': request[\'field_id\'], \'form_pickle\': request[\'form_pickle\'], \'form_signature\': request[\'form_signature\']});">\n
<tal:block metal:use-macro="here/form_dialog/macros/master" />\n
<tal:block metal:define-macro="master">\n
<tal:block tal:define="local_parameter_list local_parameter_list | python: {};\n
dummy python: local_parameter_list.update({\'field_id\': request[\'field_id\'], \'form_pickle\': request[\'form_pickle\'], \'form_signature\': request[\'form_signature\']});">\n
<tal:block metal:use-macro="here/form_dialog/macros/master" />\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
......
......@@ -3,11 +3,8 @@
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.PageTemplates.ZopePageTemplate</string>
<string>ZopePageTemplate</string>
</tuple>
<none/>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
<tuple/>
</tuple>
</pickle>
<pickle>
......@@ -54,47 +51,27 @@
<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
<tal:block 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@nexedi.com>\n
Christophe Dumez <christophe@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 tal:define="title string:${template/title_or_id} - ${here/Title}">\n
<tal:block metal:use-macro="here/view_main/macros/master">\n
<tal:block metal:fill-slot="main">\n
<tal:block metal:use-macro="here/form_render/macros/master" />\n
<tal:block tal:define="portal_object here/getPortalObject">\n
<tal:block tal:repeat="report_item report_method">\n
<tal:block tal:define="here python: report_item.getObject(portal_object);\n
dummy python: report_item.pushReport(portal_object)">\n
<span tal:condition="report_item/getTitle"\n
tal:content="report_item/getTitle"\n
tal:attributes="class string:report_title_level_${report_item/getLevel}"/>\n
<tal:block tal:condition="report_item/getFormId">\n
<tal:block tal:define="form python:getattr(here,report_item.getFormId())" >\n
<tal:block metal:use-macro="here/form_render/macros/master" />\n
<tal:block tal:define="title string:${template/title_or_id} - ${here/Title}">\n
<tal:block metal:use-macro="here/view_main/macros/master">\n
<tal:block metal:fill-slot="main">\n
<tal:block metal:use-macro="here/form_render/macros/master" />\n
<tal:block tal:define="portal_object here/getPortalObject">\n
<tal:block tal:repeat="report_item report_method">\n
<tal:block tal:define="here python: report_item.getObject(portal_object);\n
dummy python: report_item.pushReport(portal_object)">\n
<span tal:condition="report_item/getTitle"\n
tal:content="report_item/getTitle"\n
tal:attributes="class string:report_title_level_${report_item/getLevel}" />\n
<tal:block tal:condition="report_item/getFormId">\n
<tal:block tal:define="form python:getattr(here,report_item.getFormId())" >\n
<tal:block metal:use-macro="here/form_render/macros/master" />\n
</tal:block>\n
</tal:block>\n
<tal:block tal:define="dummy python:report_item.popReport(portal_object)" />\n
</tal:block>\n
<tal:block tal:define="dummy python:report_item.popReport(portal_object)" />\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
......
......@@ -3,11 +3,8 @@
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.PageTemplates.ZopePageTemplate</string>
<string>ZopePageTemplate</string>
</tuple>
<none/>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
<tuple/>
</tuple>
</pickle>
<pickle>
......@@ -54,90 +51,70 @@
<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
<tal:block 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@nexedi.com>\n
Christophe Dumez <christophe@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/dialog_main/macros/master">\n
<tal:block metal:fill-slot="main">\n
<div class="dialog_box">\n
<tal:block tal:condition="preferred_html_style_developper_mode">\n
<tal:block metal:use-macro="developper_shortcut_render/macros/form"/>\n
</tal:block>\n
<div class="content"\n
tal:define="items python:here.portal_selections.getSelectionSortOrder(request[\'selection_name\'], REQUEST=request);\n
base_form python:getattr(here,request[\'form_id\']);\n
groups base_form/get_groups;\n
listbox python:base_form.Form_getListbox();\n
columns python:listbox.get_value(\'all_columns\');\n
global row_index python:0;\n
global row_keys python:[\'None\'];\n
all_columns python: [(\'None\',\'\')] + columns;">\n
<div tal:repeat="item items"\n
class="field">\n
<label tal:define="global row_index python:row_index+1">\n
<tal:block i18n:translate="" i18n:domain="ui">Sort</tal:block>\n
<tal:block tal:replace="row_index" />\n
</label>\n
<div class="input" tal:attributes="id string:sort_${row_index}"\n
tal:define="sort_type python:((len(item) > 2) and item[2]) or \'\'">\n
<select name="field_sort_on">\n
<tal:block tal:repeat="option all_columns">\n
<option tal:content="python:option[1]"\n
tal:attributes="value python:option[0];\n
selected python:option[0]==item[0] and \'selected\' or nothing"\n
i18n:translate="" i18n:domain="ui"></option>\n
</tal:block>\n
</select>\n
<tal:block tal:replace="structure python:form.sort_order.render(item[1], request)" />\n
<tal:block tal:replace="structure python:form.sort_type.render(sort_type, request)" />\n
</div>\n
<p class="clear"></p>\n
</div>\n
<div tal:repeat="item columns"\n
class="field">\n
<tal:block tal:condition="python: item[0] not in row_keys">\n
<tal:block metal:define-macro="master">\n
<tal:block metal:use-macro="here/dialog_main/macros/master">\n
<tal:block metal:fill-slot="main">\n
<div class="dialog_box">\n
<tal:block tal:condition="preferred_html_style_developper_mode">\n
<tal:block metal:use-macro="developper_shortcut_render/macros/form" />\n
</tal:block>\n
<div class="content"\n
tal:define="items python:here.portal_selections.getSelectionSortOrder(request[\'selection_name\'], REQUEST=request);\n
base_form python:getattr(here,request[\'form_id\']);\n
groups base_form/get_groups;\n
listbox python:base_form.Form_getListbox();\n
columns python:listbox.get_value(\'all_columns\');\n
global row_index python:0;\n
global row_keys python:[\'None\'];\n
all_columns python: [(\'None\',\'\')] + columns;">\n
<div tal:repeat="item items"\n
class="field">\n
<label tal:define="global row_index python:row_index+1">\n
<tal:block i18n:translate="" i18n:domain="ui">Sort</tal:block>\n
<tal:block tal:replace="row_index" />\n
</label>\n
<div class="input" tal:attributes="id string:sort_${row_index}">\n
<div class="input" tal:attributes="id string:sort_${row_index}"\n
tal:define="sort_type python:((len(item) &gt; 2) and item[2]) or \'\'">\n
<select name="field_sort_on">\n
<option selected="selected" value="None"></option>\n
<option tal:repeat="option columns"\n
tal:content="python:option[1]"\n
tal:attributes="value python:option[0]"\n
i18n:translate="" i18n:domain="ui"></option>\n
<tal:block tal:repeat="option all_columns">\n
<option tal:content="python:option[1]"\n
tal:attributes="value python:option[0];\n
selected python:option[0]==item[0] and \'selected\' or nothing"\n
i18n:translate="" i18n:domain="ui"></option>\n
</tal:block>\n
</select>\n
<span tal:replace="structure python:form.sort_order.render(\'\', request)" />\n
<tal:block tal:replace="structure python:form.sort_type.render(\'\', request)" />\n
<tal:block tal:replace="structure python:form.sort_order.render(item[1], request)" />\n
<tal:block tal:replace="structure python:form.sort_type.render(sort_type, request)" />\n
</div>\n
</tal:block>\n
<p class="clear"></p>\n
<p class="clear"></p>\n
</div>\n
<div tal:repeat="item columns"\n
class="field">\n
<tal:block tal:condition="python: item[0] not in row_keys">\n
<label tal:define="global row_index python:row_index+1">\n
<tal:block i18n:translate="" i18n:domain="ui">Sort</tal:block>\n
<tal:block tal:replace="row_index" />\n
</label>\n
<div class="input" tal:attributes="id string:sort_${row_index}">\n
<select name="field_sort_on">\n
<option selected="selected" value="None"></option>\n
<option tal:repeat="option columns"\n
tal:content="python:option[1]"\n
tal:attributes="value python:option[0]"\n
i18n:translate="" i18n:domain="ui"></option>\n
</select>\n
<span tal:replace="structure python:form.sort_order.render(\'\', request)" />\n
<tal:block tal:replace="structure python:form.sort_type.render(\'\', request)" />\n
</div>\n
</tal:block>\n
<p class="clear"></p>\n
</div>\n
</div>\n
</div>\n
</div>\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
......
......@@ -3,11 +3,8 @@
<record id="1" aka="AAAAAAAAAAE=">
<pickle>
<tuple>
<tuple>
<string>Products.PageTemplates.ZopePageTemplate</string>
<string>ZopePageTemplate</string>
</tuple>
<none/>
<global name="ZopePageTemplate" module="Products.PageTemplates.ZopePageTemplate"/>
<tuple/>
</tuple>
</pickle>
<pickle>
......@@ -54,127 +51,102 @@
<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
<tal:block 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:block tal:replace="nothing">\n
<!--\n
Copyright (c) 2007 Nexedi SA and Contributors. All Rights Reserved.\n
Vincent Pelletier <vincent@nexedi.com>\n
Christophe Dumez <christophe@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
IDEAS:\n
- Add callbacks to ERP5Form object (selection ?) to gather needed fields -> put them in http_parameter_list.\n
-->\n
</tal:block>\n
<tal:block metal:define-macro="master">\n
<tal:block tal:define="global_definitions_macros here/global_definitions/macros">\n
<tal:block metal:use-macro="global_definitions_macros/header_definitions"/>\n
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\n
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\n
<head>\n
<base tal:attributes="href python: \'%s/\' % (url, )"/>\n
<meta name="generator" content="ERP5"/>\n
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>\n
<meta http-equiv="Content-Script-Type" content="text/javascript" />\n
<meta http-equiv="Content-Style-Type" content="text/css" />\n
<title tal:define="title title | string:ERP5"\n
tal:content="python: \'%s | %s\' % (title, here.getPortalObject().title_or_id())"/>\n
<tal:block tal:repeat="css css_list">\n
<link tal:attributes="href css" type="text/css" rel="stylesheet"/>\n
</tal:block>\n
\n
<tal:block tal:replace="nothing">\n
<!-- Render each field\'s css and javascript. -->\n
</tal:block>\n
<tal:block tal:condition="python: form is not None">\n
<tal:block tal:repeat="group python: [x for x in form.get_groups(include_empty=0) if x != \'hidden\']">\n
<tal:block tal:repeat="field python: form.get_fields_in_group(group)">\n
\n
<tal:block tal:define="css python: field.render_css(REQUEST=request)">\n
<style tal:condition="python: css is not None" \n
tal:content="css"\n
tal:attributes="type python:\'text/css\'">\n
</style>\n
</tal:block>\n
<tal:block metal:define-macro="master">\n
<tal:block tal:define="global_definitions_macros here/global_definitions/macros">\n
<tal:block metal:use-macro="global_definitions_macros/header_definitions" />\n
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\n
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\n
<head>\n
<base tal:attributes="href python: \'%s/\' % (url, )" />\n
<meta name="generator" content="ERP5" />\n
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\n
<meta http-equiv="Content-Script-Type" content="text/javascript" />\n
<meta http-equiv="Content-Style-Type" content="text/css" />\n
<title tal:define="title title | string:ERP5"\n
tal:content="python: \'%s | %s\' % (title, here.getPortalObject().title_or_id())"></title>\n
<tal:block tal:repeat="css css_list">\n
<link tal:attributes="href css" type="text/css" rel="stylesheet" />\n
</tal:block>\n
\n
<tal:block tal:define="dummy python: js_list.extend(field.get_javascript_list(REQUEST=request))" />\n
\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
\n
\n
<!-- May need to remove duplicates -->\n
<tal:block tal:repeat="js js_list">\n
<script tal:attributes="src js" type="text/javascript"></script>\n
</tal:block>\n
\n
<link rel="icon" tal:attributes="href string:${portal/portal_url}/favicon.ico" type="image/x-icon"/>\n
<link rel="shortcut icon" tal:attributes="href string:${portal/portal_url}/favicon.ico" type="image/x-icon"/>\n
\n
</head>\n
<body>\n
<form id="main_form"\n
tal:attributes="enctype form/Form_getEnctype | enctype | nothing;\n
action url;\n
method python:str(path(\'form/method | string:post\')).lower()">\n
<fieldset id="hidden_fieldset">\n
<!-- Hidden button as explained in http://ppewww.ph.gla.ac.uk/~flavell/www/formquestion.html -->\n
<!-- We should probably call the default method instead -->\n
<input tal:condition="form_action | nothing"\n
id="hidden_button" type="submit" value="dummy"\n
tal:attributes="name string:${form_action}:method" />\n
<tal:block metal:use-macro="global_definitions_macros/http_definitions"/>\n
</fieldset>\n
<tal:block metal:define-slot="layout">\n
<div id="bars">\n
<div id="main_bar"\n
tal:content="structure here/ERP5Site_renderCachedNavigationBox">\n
</div>\n
<div id="context_bar">\n
<tal:block metal:define-slot="context_bar"/>\n
</div>\n
</div>\n
<div id="status">\n
<div id="breadcrumb">\n
<tal:block tal:repeat="item here/breadcrumbs">\n
<a tal:condition="python: repeat[\'item\'].index < 2" tal:attributes="href item/url" tal:content="item/title" i18n:translate="" i18n:domain="ui"/>\n
<a tal:condition="python: repeat[\'item\'].index >= 2" tal:attributes="href item/url" tal:content="item/title"/>\n
/\n
<tal:block tal:replace="nothing">\n
<!-- Render each field\'s css and javascript. -->\n
</tal:block>\n
</div>\n
<div id="logged_in_as">\n
<tal:block tal:condition="not: here/portal_membership/isAnonymousUser">\n
<span class="logged_txt" i18n:translate="" i18n:domain="ui">Logged In as :</span>\n
<tal:block tal:replace="python:here.portal_membership.getAuthenticatedMember().getUserName()"/>\n
<tal:block tal:condition="python: form is not None">\n
<tal:block tal:repeat="group python: [x for x in form.get_groups(include_empty=0) if x != \'hidden\']">\n
<tal:block tal:repeat="field python: form.get_fields_in_group(group)">\n
<tal:block tal:define="css python: field.render_css(REQUEST=request)">\n
<style tal:condition="python: css is not None"\n
tal:content="css"\n
tal:attributes="type python:\'text/css\'">\n
</style>\n
</tal:block>\n
<tal:block tal:define="dummy python: js_list.extend(field.get_javascript_list(REQUEST=request))" />\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
</div>\n
<p class="clear"></p>\n
<div tal:content="request/portal_status_message | nothing" id="transition_message"/>\n
</div>\n
<div id="master">\n
<tal:block metal:define-slot="main"/>\n
</div>\n
</tal:block>\n
</form>\n
</body>\n
</html>\n
</tal:block>\n
<!-- May need to remove duplicates -->\n
<tal:block tal:repeat="js js_list">\n
<script tal:attributes="src js" type="text/javascript"></script>\n
</tal:block>\n
<link rel="icon" tal:attributes="href string:${portal/portal_url}/favicon.ico" type="image/x-icon" />\n
<link rel="shortcut icon" tal:attributes="href string:${portal/portal_url}/favicon.ico" type="image/x-icon" />\n
</head>\n
<body>\n
<form id="main_form"\n
tal:attributes="enctype form/Form_getEnctype | enctype | nothing;\n
action url;\n
method python:str(path(\'form/method | string:post\')).lower()">\n
<fieldset id="hidden_fieldset">\n
<!-- Hidden button as explained in http://ppewww.ph.gla.ac.uk/~flavell/www/formquestion.html -->\n
<!-- We should probably call the default method instead -->\n
<input tal:condition="form_action | nothing"\n
id="hidden_button" type="submit" value="dummy"\n
tal:attributes="name string:${form_action}:method" />\n
<tal:block metal:use-macro="global_definitions_macros/http_definitions" />\n
</fieldset>\n
<tal:block metal:define-slot="layout">\n
<div id="bars">\n
<div id="main_bar"\n
tal:content="structure here/ERP5Site_renderCachedNavigationBox">\n
</div>\n
<div id="context_bar">\n
<tal:block metal:define-slot="context_bar" />\n
</div>\n
</div>\n
<div id="status">\n
<div id="breadcrumb">\n
<tal:block tal:repeat="item here/breadcrumbs">\n
<a tal:condition="python: repeat[\'item\'].index &lt; 2" tal:attributes="href item/url" tal:content="item/title" i18n:translate="" i18n:domain="ui" />\n
<a tal:condition="python: repeat[\'item\'].index &gt;= 2" tal:attributes="href item/url" tal:content="item/title" />\n
/\n
</tal:block>\n
</div>\n
<div id="logged_in_as">\n
<tal:block tal:condition="not: here/portal_membership/isAnonymousUser">\n
<span class="logged_txt" i18n:translate="" i18n:domain="ui">Logged In as :</span>\n
<tal:block tal:replace="python:here.portal_membership.getAuthenticatedMember().getUserName()" />\n
</tal:block>\n
</div>\n
<p class="clear"></p>\n
<div tal:content="request/portal_status_message | nothing" id="transition_message" />\n
</div>\n
<div id="master">\n
<tal:block metal:define-slot="main" />\n
</div>\n
</tal:block>\n
</form>\n
</body>\n
</html>\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
......
......@@ -51,91 +51,71 @@
<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
<tal:block 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@nexedi.com>\n
Christophe Dumez <christophe@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\n
tal:define="object_uid here/getUid | nothing;\n
object_path here/getPath | nothing;\n
form nocall: form | nothing;\n
form_id form/id | template/title_or_id | nothing;\n
form_action python: form and form.action not in (\'\', None) and here.portal_membership.checkPermission(\'Modify portal content\', here) and form.action or nothing;\n
local_parameter_list local_parameter_list | python: {};\n
dummy python: local_parameter_list.update({\'object_uid\': object_uid, \'object_path\': object_path, \'form_id\': form_id});\n
title python: \'%s - %s\' % (here.Base_translateString(template.title_or_id()), here.title_or_id());\n
">\n
<tal:block metal:use-macro="here/main_template/macros/master">\n
<tal:block metal:fill-slot="context_bar">\n
<tal:block metal:use-macro="here/context_box_render/macros/master" />\n
</tal:block>\n
<tal:block metal:fill-slot="main">\n
<div class="document"\n
tal:define="actions actions/object_view | python: []">\n
<div class="actions"\n
tal:condition="python: (not is_web_mode or editable_mode) and len(actions)">\n
<button tal:condition="python: not is_web_mode and form_action"\n
type="submit" class="save" title="Save"\n
tal:attributes="name string:${form_action}:method;\n
onClick string:javascript:clickSaveButton(\'${form_action}\');"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Save</span>\n
</button>\n
<ul>\n
<li tal:repeat="action actions"\n
tal:attributes="class python: action == current_action and \'selected\' or \'not_selected\'">\n
<a tal:attributes="href python: \'%s%s%s\' % (action[\'url\'], \'?\' in action[\'url\'] and \'&amp;\' or \'?\', http_parameters)"\n
i18n:translate="" i18n:domain="ui"><span tal:content="action/name">action_name</span></a>\n
</li>\n
</ul>\n
</div>\n
<div tal:attributes="class python: editable_mode and \'content editable\' or \'content\'">\n
<tal:block metal:define-slot="main"/>\n
</div>\n
<div class="bottom_actions"\n
tal:condition="python: is_web_mode and editable_mode and len(actions) and form_action">\n
<input type="hidden" name="form_action" value=""\n
tal:attributes="value form_action"/>\n
<input type="hidden" name="edit_document_url" value=""\n
tal:attributes="value python:\'%s/%s\' % (here.absolute_url(), form_id)"/>\n
<input type="hidden" name="view_document_url" value=""\n
tal:attributes="value python:\'%s/%s\' % (here.absolute_url(), \'view\')"/>\n
<button type="submit" class="saveView" title="Save &amp; View"\n
name="Base_editAndViewAsWeb:method"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Save &amp; View</span>\n
</button>\n
<button type="submit" class="saveEdit" title="Save &amp; Edit"\n
name="Base_editAndEditAsWeb:method"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Save &amp; Edit</span>\n
</button>\n
<tal:block metal:define-macro="master">\n
<tal:block\n
tal:define="object_uid here/getUid | nothing;\n
object_path here/getPath | nothing;\n
form nocall: form | nothing;\n
form_id form/id | template/title_or_id | nothing;\n
form_action python: form and form.action not in (\'\', None) and here.portal_membership.checkPermission(\'Modify portal content\', here) and form.action or nothing;\n
local_parameter_list local_parameter_list | python: {};\n
dummy python: local_parameter_list.update({\'object_uid\': object_uid, \'object_path\': object_path, \'form_id\': form_id});\n
title python: \'%s - %s\' % (here.Base_translateString(template.title_or_id()), here.title_or_id());\n
">\n
<tal:block metal:use-macro="here/main_template/macros/master">\n
<tal:block metal:fill-slot="context_bar">\n
<tal:block metal:use-macro="here/context_box_render/macros/master" />\n
</tal:block>\n
<tal:block metal:fill-slot="main">\n
<div class="document"\n
tal:define="actions actions/object_view | python: []">\n
<div class="actions"\n
tal:condition="python: (not is_web_mode or editable_mode) and len(actions)">\n
<button tal:condition="python: not is_web_mode and form_action"\n
type="submit" class="save" title="Save"\n
tal:attributes="name string:${form_action}:method;\n
onClick string:javascript:clickSaveButton(\'${form_action}\');"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Save</span>\n
</button>\n
<ul>\n
<li tal:repeat="action actions"\n
tal:attributes="class python: action == current_action and \'selected\' or \'not_selected\'">\n
<a tal:attributes="href python: \'%s%s%s\' % (action[\'url\'], \'?\' in action[\'url\'] and \'&amp;\' or \'?\', http_parameters)"\n
i18n:translate="" i18n:domain="ui"><span tal:content="action/name">action_name</span></a>\n
</li>\n
</ul>\n
</div>\n
<div tal:attributes="class python: editable_mode and \'content editable\' or \'content\'">\n
<tal:block metal:define-slot="main" />\n
</div>\n
<div class="bottom_actions"\n
tal:condition="python: is_web_mode and editable_mode and len(actions) and form_action">\n
<input type="hidden" name="form_action" value=""\n
tal:attributes="value form_action" />\n
<input type="hidden" name="edit_document_url" value=""\n
tal:attributes="value python:\'%s/%s\' % (here.absolute_url(), form_id)" />\n
<input type="hidden" name="view_document_url" value=""\n
tal:attributes="value python:\'%s/%s\' % (here.absolute_url(), \'view\')" />\n
<button type="submit" class="saveView" title="Save &amp; View"\n
name="Base_editAndViewAsWeb:method"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Save &amp; View</span>\n
</button>\n
<button type="submit" class="saveEdit" title="Save &amp; Edit"\n
name="Base_editAndEditAsWeb:method"\n
i18n:attributes="title" i18n:domain="ui">\n
<span class="image"></span>\n
<span class="description" i18n:translate="" i18n:domain="ui">Save &amp; Edit</span>\n
</button>\n
</div>\n
</div>\n
</div>\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
</tal:block>\n
......
2007-11-21 kazuhiko
* Make Page Templates themselves valid XML (except DOCTYPE definition).
2007-11-14 yusei
* Fix tab style on konqueror
......
432
\ No newline at end of file
434
\ 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