[REM] Removed layout auto|manual. Layout is always manual. <group> is not anymore implicit for <form>, <sheet>, and <page>

bzr revid: fme@openerp.com-20120531090830-1qeqfpfg0mijmqbd
This commit is contained in:
Fabien Meghazi 2012-05-31 11:08:30 +02:00
parent 950490f792
commit aa13f0c118
2 changed files with 30 additions and 44 deletions

View File

@ -919,9 +919,6 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt
// but one day, we will have to get rid of xml2json // but one day, we will have to get rid of xml2json
var xml = instance.web.json_node_to_xml(this.fvg.arch); var xml = instance.web.json_node_to_xml(this.fvg.arch);
this.$form = $('<div class="oe_form">' + xml + '</div>'); this.$form = $('<div class="oe_form">' + xml + '</div>');
if (this.fvg.arch.attrs && this.fvg.arch.attrs['layout'] !== 'manual') {
this.$form.attr('layout', 'auto');
}
this.fields_to_init = []; this.fields_to_init = [];
this.tags_to_init = []; this.tags_to_init = [];
@ -956,13 +953,10 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt
}); });
// TODO: return a deferred // TODO: return a deferred
}, },
render_element: function(template, layout/* dictionaries */) { render_element: function(template /* dictionaries */) {
var dicts = [].slice.call(arguments).slice(2); var dicts = [].slice.call(arguments).slice(1);
dicts.unshift({ 'layout' : layout });
var dict = _.extend.apply(_, dicts); var dict = _.extend.apply(_, dicts);
dict['classnames'] = dict['class'] || ''; // class is a reserved word and might caused problem to Safari when used from QWeb dict['classnames'] = dict['class'] || ''; // class is a reserved word and might caused problem to Safari when used from QWeb
var alt_template = template + '.' + layout;
template = QWeb.has_template(alt_template) ? alt_template : template;
return $(QWeb.render(template, dict)); return $(QWeb.render(template, dict));
}, },
alter_field: function(field) { alter_field: function(field) {
@ -977,10 +971,8 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt
} }
this.$target.toggleClass('oe_layout_debugging'); this.$target.toggleClass('oe_layout_debugging');
}, },
process: function($tag, layout) { process: function($tag) {
var self = this; var self = this;
layout = $tag.attr('layout') || layout || 'auto';
$tag.removeAttr('layout');
var tagname = $tag[0].nodeName.toLowerCase(); var tagname = $tag[0].nodeName.toLowerCase();
if (this.tags_registry.contains(tagname)) { if (this.tags_registry.contains(tagname)) {
this.tags_to_init.push($tag); this.tags_to_init.push($tag);
@ -990,38 +982,36 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt
if (fn) { if (fn) {
var args = [].slice.call(arguments); var args = [].slice.call(arguments);
args[0] = $tag; args[0] = $tag;
args[1] = layout;
return fn.apply(self, args); return fn.apply(self, args);
} else { } else {
// generic tag handling, just process children // generic tag handling, just process children
$tag.children().each(function() { $tag.children().each(function() {
self.process($(this), layout); self.process($(this));
}); });
self.handle_common_properties($tag, $tag); self.handle_common_properties($tag, $tag);
$tag.removeAttr("modifiers"); $tag.removeAttr("modifiers");
return $tag; return $tag;
} }
}, },
process_sheet: function($sheet, layout) { process_sheet: function($sheet) {
var $new_sheet = this.render_element('FormRenderingSheet', layout, $sheet.getAttributes()); var $new_sheet = this.render_element('FormRenderingSheet', $sheet.getAttributes());
this.handle_common_properties($new_sheet, $sheet); this.handle_common_properties($new_sheet, $sheet);
var $dst = (layout === 'auto') ? $new_sheet.find('group:first') : $new_sheet.find('.oe_form_sheet'); var $dst = $new_sheet.find('.oe_form_sheet');
$sheet.contents().appendTo($dst); $sheet.contents().appendTo($dst);
$sheet.before($new_sheet).remove(); $sheet.before($new_sheet).remove();
this.process($new_sheet, layout); this.process($new_sheet);
}, },
process_form: function($form, layout) { process_form: function($form) {
var $new_form = this.render_element('FormRenderingForm', layout, $form.getAttributes()); var $new_form = this.render_element('FormRenderingForm', $form.getAttributes());
this.handle_common_properties($new_form, $form); this.handle_common_properties($new_form, $form);
var $dst = (layout === 'auto') ? $new_form.find('group:first') : $new_form; $form.contents().appendTo($new_form);
$form.contents().appendTo($dst);
if ($form[0] === this.$form[0]) { if ($form[0] === this.$form[0]) {
// If root element, replace it // If root element, replace it
this.$form = $new_form; this.$form = $new_form;
} else { } else {
$form.before($new_form).remove(); $form.before($new_form).remove();
} }
this.process($new_form, layout); this.process($new_form);
}, },
/* /*
* Used by direct <field> children of a <group> tag only * Used by direct <field> children of a <group> tag only
@ -1060,23 +1050,23 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt
} }
return $label; return $label;
}, },
process_field: function($field, layout) { process_field: function($field) {
if ($field.parent().is('group')) { if ($field.parent().is('group')) {
// No implicit labels for normal fields, only for <group> direct children // No implicit labels for normal fields, only for <group> direct children
var $label = this.preprocess_field($field); var $label = this.preprocess_field($field);
if ($label) { if ($label) {
this.process($label, layout); this.process($label);
} }
} }
this.fields_to_init.push($field); this.fields_to_init.push($field);
return $field; return $field;
}, },
process_group: function($group, layout) { process_group: function($group) {
var self = this; var self = this;
$group.children('field').each(function() { $group.children('field').each(function() {
self.preprocess_field($(this)); self.preprocess_field($(this));
}); });
var $new_group = this.render_element('FormRenderingGroup', layout, $group.getAttributes()); var $new_group = this.render_element('FormRenderingGroup', $group.getAttributes());
var $table; var $table;
if ($new_group.first().is('table.oe_form_group')) { if ($new_group.first().is('table.oe_form_group')) {
$table = $new_group; $table = $new_group;
@ -1185,7 +1175,7 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt
this.handle_common_properties($new_group, $group); this.handle_common_properties($new_group, $group);
return $new_group; return $new_group;
}, },
process_notebook: function($notebook, layout) { process_notebook: function($notebook) {
var self = this; var self = this;
var pages = []; var pages = [];
$notebook.find('> page').each(function() { $notebook.find('> page').each(function() {
@ -1193,13 +1183,12 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt
var page_attrs = $page.getAttributes(); var page_attrs = $page.getAttributes();
page_attrs.id = _.uniqueId('notebook_page_'); page_attrs.id = _.uniqueId('notebook_page_');
pages.push(page_attrs); pages.push(page_attrs);
var $new_page = self.render_element('FormRenderingNotebookPage', layout, page_attrs); var $new_page = self.render_element('FormRenderingNotebookPage', page_attrs);
var $dst = (layout === 'auto') ? $new_page.find('group:first') : $new_page; $page.contents().appendTo($new_page);
$page.contents().appendTo($dst);
$page.before($new_page).remove(); $page.before($new_page).remove();
self.handle_common_properties($new_page, $page); self.handle_common_properties($new_page, $page);
}); });
var $new_notebook = this.render_element('FormRenderingNotebook', layout, { pages : pages }); var $new_notebook = this.render_element('FormRenderingNotebook', { pages : pages });
$notebook.contents().appendTo($new_notebook); $notebook.contents().appendTo($new_notebook);
$notebook.before($new_notebook).remove(); $notebook.before($new_notebook).remove();
$new_notebook.children().each(function() { $new_notebook.children().each(function() {
@ -1209,13 +1198,13 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt
this.handle_common_properties($new_notebook, $notebook); this.handle_common_properties($new_notebook, $notebook);
return $new_notebook; return $new_notebook;
}, },
process_separator: function($separator, layout) { process_separator: function($separator) {
var $new_separator = this.render_element('FormRenderingSeparator', layout, $separator.getAttributes()); var $new_separator = this.render_element('FormRenderingSeparator', $separator.getAttributes());
$separator.before($new_separator).remove(); $separator.before($new_separator).remove();
this.handle_common_properties($new_separator, $separator); this.handle_common_properties($new_separator, $separator);
return $new_separator; return $new_separator;
}, },
process_label: function($label, layout) { process_label: function($label) {
var name = $label.attr("for"), var name = $label.attr("for"),
field_orm = this.fvg.fields[name]; field_orm = this.fvg.fields[name];
var dict = { var dict = {
@ -1232,7 +1221,7 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt
align = 'center'; align = 'center';
} }
dict.align = align; dict.align = align;
var $new_label = this.render_element('FormRenderingLabel', layout, dict); var $new_label = this.render_element('FormRenderingLabel', dict);
$label.before($new_label).remove(); $label.before($new_label).remove();
this.handle_common_properties($new_label, $label); this.handle_common_properties($new_label, $label);
if (name) { if (name) {

View File

@ -773,17 +773,15 @@
</table> </table>
</form> </form>
<t t-name="FormRenderingForm.manual">
<div class="oe_form_manual_layout"/>
</t>
<t t-name="FormRenderingForm"> <t t-name="FormRenderingForm">
<div class="oe_form_sheetbg"> <div t-attf-class="#{classnames}">
<div t-attf-class="oe_form_sheet oe_form_sheet_width #{classnames}">
<group t-if="layout === 'auto'" col="4"/>
</div>
</div> </div>
</t> </t>
<t t-name="FormRenderingSheet" t-extend="FormRenderingForm"> <t t-name="FormRenderingSheet">
<div class="oe_form_sheetbg">
<div t-attf-class="oe_form_sheet oe_form_sheet_width #{classnames}">
</div>
</div>
</t> </t>
<t t-name="FormRenderingGroup"> <t t-name="FormRenderingGroup">
<t t-if="string" t-call="FormRenderingSeparator"/> <t t-if="string" t-call="FormRenderingSeparator"/>
@ -802,7 +800,6 @@
</t> </t>
<t t-name="FormRenderingNotebookPage"> <t t-name="FormRenderingNotebookPage">
<div t-attf-class="oe_form_notebook_page #{classnames}" t-att-id="id"> <div t-attf-class="oe_form_notebook_page #{classnames}" t-att-id="id">
<group t-if="layout === 'auto'" col="4"/>
</div> </div>
</t> </t>
<t t-name="FormRenderingSeparator"> <t t-name="FormRenderingSeparator">