[FIX] invisible and tree_invisible, cleanup template and remove duplications, simplify code, correctly use modifiers

bzr revid: xmo@openerp.com-20110808152343-p3pj1mx85uiofi63
This commit is contained in:
Xavier Morel
2011-08-08 17:23:43 +02:00
parent 46563bd391
commit 05a9546794
2 changed files with 40 additions and 84 deletions
+11 -9
View File
@@ -43,6 +43,11 @@ openerp.base.TreeView = openerp.base.View.extend({
on_loaded: function (fields_view) {
var self = this;
this.fields_view = fields_view;
_(this.fields_view.arch.children).each(function (field) {
if (field.attrs.modifiers) {
field.attrs.modifiers = JSON.parse(field.attrs.modifiers);
}
});
this.fields = fields_view.fields;
self.dataset.domain = [['parent_id', '=', '']];
@@ -72,9 +77,8 @@ openerp.base.TreeView = openerp.base.View.extend({
if (curr_node.length == 1) {
curr_node.find('td:first').children(':first-child').attr('src','/base/static/src/img/collapse.gif');
curr_node.after(QWeb.render('TreeView_Secondry', {
'child_data': response,
'flag': '0',
curr_node.after(QWeb.render('TreeView.rows', {
'records': response,
'fields_view' : self.fields_view.arch.children,
'field' : self.fields
}));
@@ -120,12 +124,10 @@ openerp.base.TreeView = openerp.base.View.extend({
if (!flag) {
self.$element.find('table').remove();
}
self.$element.append(QWeb.render('TreeView_Secondry', {
'child_data': response,
'flag' : '1',
'fieldsview_fields': self.fields,
'fields_view' : self.fields_view.arch.children,
'field' : self.fields
self.$element.append(QWeb.render('TreeView.architecture', {
'records': response,
'fields_view': self.fields_view.arch.children,
'fields': self.fields
}));
self.$element.find('tr[id ^= treerow_]').each( function() {
+29 -75
View File
@@ -244,82 +244,36 @@
</option>
</select>
</t>
<t t-name="TreeView_Secondry">
<t t-if="flag==1">
<table>
<thead>
<tr>
<t t-foreach="fields_view" t-as="fieldsview">
<t t-foreach="fieldsview_fields" t-as="view_fields">
<t t-if="fieldsview['attrs'].name==view_fields and !fieldsview['attrs'].invisible">
<td class="treeview-header"><t t-esc="fieldsview_fields[view_fields].string" /></td>
</t>
</t>
</t>
</tr>
</thead>
<t t-foreach="child_data" t-as="fields" >
<tr t-att-id="'treerow_' + fields.id">
<t t-if="(fields.child_id).length >= 1">
<td class="treeview-tr">
<img t-att-id="'parentimg_' + fields.id" src="/base/static/src/img/expand.gif" width="16" height="16" border="0"/>
</td>
</t>
<t t-foreach="fields_view" t-as="fieldsview">
<t t-foreach="fieldsview_fields" t-as="view_fields">
<t t-foreach="field" t-as="f">
<t t-if="fieldsview['attrs'].name==view_fields">
<t t-if="fieldsview['attrs'].name==f and !fieldsview['attrs'].invisible and field[f].type!='many2one' and field[f].type!='selection'">
<td class="treeview-td">
<span>
<t t-esc="fields[[fieldsview['attrs'].name]]" />
</span>
</td>
</t>
<t t-if="fieldsview['attrs'].name==f and !fieldsview['attrs'].invisible and field[f].type=='many2one'">
<td class="treeview-td">
<span>
<t t-esc="fields[[fieldsview['attrs'].name]][1]" />
</span>
</td>
</t>
</t>
</t>
</t>
</t>
</tr>
</t>
</table>
</t>
<t t-if="flag==0">
<t t-foreach="child_data" t-as="fields" >
<tr t-att-id="'treerow_' + fields.id">
<t t-if="(fields.child_id).length >= 1">
<td class="treeview-tr">
<img t-att-id="'parentimg_' + fields.id" src="/base/static/src/img/expand.gif" width="16" height="16" border="0"/>
</td>
</t>
<t t-foreach="fields_view" t-as="fieldsview">
<t t-foreach="field" t-as="f">
<t t-if="fieldsview['attrs'].name==f and !fieldsview['attrs'].invisible and field[f].type!='many2one' and field[f].type!='selection'">
<td class="treeview-td">
<span>
<t t-esc="fields[[fieldsview['attrs'].name]]" />
</span>
</td>
</t>
<t t-if="fieldsview['attrs'].name==f and !fieldsview['attrs'].invisible and field[f].type=='many2one'">
<td class="treeview-td">
<span>
<t t-esc="fields[[fieldsview['attrs'].name]][1]" />
</span>
</td>
</t>
</t>
</t>
</tr>
<table t-name="TreeView.architecture">
<thead>
<tr>
<!-- TODO: invisible fields -->
<th t-foreach="fields_view" t-as="field"
t-if="!field.attrs.modifiers.tree_invisible"
class="treeview-header">
<t t-esc="fields[field.attrs.name].string" />
</th>
</tr>
</thead>
<tbody>
<t t-call="TreeView.rows"/>
</tbody>
</table>
<t t-name="TreeView.rows" t-foreach="records" t-as="record" >
<tr t-att-id="'treerow_' + record.id">
<t t-if="record.child_id and record.child_id.length >= 1">
<td class="treeview-tr">
<img t-att-id="'parentimg_' + record.id" src="/base/static/src/img/expand.gif" width="16" height="16" border="0"/>
</td>
</t>
</t>
<td t-foreach="fields_view" t-as="field"
t-if="!field.attrs.modifiers.tree_invisible"
class="treeview-td">
<span t-if="!field.attrs.modifiers.invisible">
<t t-esc="record[field.attrs.name]" />
</span>
</td>
</tr>
</t>
<table t-name="ListView">
<t t-set="columns_count" t-value="visible_columns.length + (options.selectable ? 1 : 0) + (options.deletable ? 1 : 0)"/>