From c8be0780f1b55413fd3c2f300196f9b216e6b220 Mon Sep 17 00:00:00 2001 From: Vincent Pelletier <vincent@nexedi.com> Date: Tue, 7 Mar 2006 13:25:13 +0000 Subject: [PATCH] Add layout support for forms (keep backward compatibility). git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@6016 20353a03-c40f-0410-a6d1-a30d3c3de9de --- .../erp5_html_style/form_view.xml | 141 +++++++++--------- 1 file changed, 72 insertions(+), 69 deletions(-) diff --git a/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/form_view.xml b/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/form_view.xml index a430802143..d0decee23d 100755 --- a/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/form_view.xml +++ b/product/ERP5/bootstrap/erp5_html_style/SkinTemplateItem/portal_skins/erp5_html_style/form_view.xml @@ -54,89 +54,92 @@ <key> <string>_text</string> </key> <value> <string encoding="cdata"><![CDATA[ -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"\n - "DTD/xhtml1-strict.dtd">\n +<tal:block tal:define="layout_form_id here/getApplicableLayout | nothing;\n + editable_mode request/editable_mode | nothing;\n + ignore_layout request/ignore_layout | nothing;\n + global layout_form python:(not layout_form_id or ignore_layout) or getattr(here, layout_form_id, None);\n + layout_id layout_form/pt | string:view_master">\n +<tal:block tal:condition="python: not layout_form_id or ignore_layout">\n +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">\n <?xml-stylesheet href="erp5.css" rel="stylesheet" type="text/css"?>\n -\n -<tal:block tal:replace="nothing">\n -<!--\n -Copyright (c) 2002 Nexedi SARL and Contributors. All Rights Reserved.\n - Jean-Paul Smets <jp@nexedi.com>\n - Thierry Faucher \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 <html xmlns="http://www.w3.org/1999/xhtml" lang="en"\n xml:lang="en"\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 - metal:use-macro="here/view_master/macros/master">\n -\n - <head tal:define="dummy python:request.RESPONSE.setHeader(\'Content-Type\', \'text/html;; charset=utf-8\')">\n - <meta name="description" content="Generated by form_view" />\n - <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\n - <title tal:content="template/title_or_id"\n - i18n:translate="" i18n:domain="ui">\n - The title\n - </title>\n - <link href="erp5.css" rel="stylesheet" type="text/css" />\n - </head>\n - <body>\n -\n - <tal:block metal:fill-slot="main"> \n - <div class="Main" metal:define-macro="form_layout">\n - <tal:block tal:define="groups python: form.get_groups(include_empty=1);\n - field_errors python: request.get(\'field_errors\',{});\n - dummy python: request.set(\'here\',here)">\n - <table class="Border" width="100%" tal:condition="python:\n - (len(form.get_fields_in_group(groups[0])) > 0) or\n - (len(form.get_fields_in_group(groups[1])) > 0)">\n - <tal:block tal:repeat="group python: groups[:2]">\n - <td valign="top">\n - <table>\n - <tal:block tal:repeat="field python:form.get_fields_in_group(group)">\n - <tal:block metal:use-macro="here/field_render/macros/field_render"/>\n - </tal:block>\n - </table>\n - </td>\n - </tal:block>\n - </table>\n - <tal:block tal:condition="python: \n - (len(groups) > 2) and\n - (len(form.get_fields_in_group(groups[2])) > 0)">\n - <table class="Border">\n - <tal:block tal:repeat="field python:form.get_fields_in_group(groups[2])">\n + metal:use-macro="python:getattr(here,layout_id).macros[\'master\']">\n + <tal:block metal:fill-slot="main">\n + <tal:block metal:define-macro="form_render">\n + <tal:block tal:define="field_errors python: request.get(\'field_errors\',{});\n + dummy python: request.set(\'here\',here)"\n + tal:condition="python: layout_form_id and not ignore_layout">\n + <tal:block tal:condition="not: editable_mode" tal:repeat="group python: form.get_groups()">\n + <div tal:attributes="class group" tal:condition="python: group.find(\'content\') >= 0">\n + <tal:block tal:repeat="field python:form.get_fields_in_group(group)"\n + tal:replace="structure python: field.render(None, request)"/>\n + </div>\n + </tal:block>\n + <tal:block tal:condition="editable_mode" tal:repeat="group python: form.get_groups()">\n + <div tal:attributes="class group">\n + <table tal:condition="python: \'content\' not in group">\n + <tal:block tal:repeat="field python:form.get_fields_in_group(group)">\n <tal:block metal:use-macro="here/field_render/macros/field_render"/>\n </tal:block>\n </table>\n - </tal:block>\n - <tal:block tal:condition="python: len(groups)>3">\n - <tal:block tal:repeat="field python:form.get_fields_in_group(groups[3])">\n + <tal:block tal:condition="python: \'content\' in group" tal:repeat="field python:form.get_fields_in_group(group)">\n <tal:block tal:define="value python:request.get(field.id, None)"\n - tal:replace="structure python:field.render(value, request)" />\n + tal:replace="structure python:field.render(value, request)" />\n + </tal:block>\n + </div>\n + </tal:block>\n + </tal:block>\n + <tal:block tal:condition="python: not layout_form_id or ignore_layout">\n + <tal:block metal:define-macro="form_layout">\n + <div class="Main" tal:define="field_errors python: request.get(\'field_errors\',{});\n + dummy python: request.set(\'here\',here)">\n + <tal:block tal:define="groups python: form.get_groups();\n + rows python:[];">\n + <tal:block tal:repeat="group groups">\n + <tal:block tal:condition="python: not (\'right\' in group) or\n + len(rows)==0">\n + <tal:block tal:define="dummy python: rows.append([])"/>\n + </tal:block>\n + <tal:block tal:condition="python: \'hidden\' not in group">\n + <tal:block tal:define="dummy python: rows[-1].append(repeat[\'group\'].index)"/>\n + </tal:block>\n + </tal:block>\n + <tal:block tal:repeat="row rows">\n + <tal:block tal:condition="python: \'bottom\' not in groups[row[0]]">\n + <table width="100%" class="Border">\n + <tr>\n + <td tal:repeat="cell row" valign="top">\n + <table width="100%">\n + <tal:block tal:repeat="field python:form.get_fields_in_group(groups[cell])">\n + <tal:block metal:use-macro="here/field_render/macros/field_render"/>\n + </tal:block>\n + </table>\n + </td>\n + </tr>\n + </table>\n + </tal:block>\n + <tal:block tal:condition="python: \'bottom\' in groups[row[0]]">\n + <tal:block tal:repeat="cell row">\n + <tal:block tal:repeat="field python:form.get_fields_in_group(groups[cell])">\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 + </tal:block>\n + </tal:block>\n + </tal:block>\n </tal:block>\n - </tal:block>\n + </div>\n </tal:block>\n - </div>\n + </tal:block>\n </tal:block>\n -\n - </body>\n -</html> + </tal:block>\n +</html>\n +</tal:block> ]]></string> </value> </item> -- 2.30.9