forked from Techsystech/web
parent
c533e63e02
commit
c0ef7a6122
|
@ -0,0 +1,4 @@
|
|||
.oe_form_field_x2many_2d_matrix th.oe_link
|
||||
{
|
||||
cursor: pointer;
|
||||
}
|
|
@ -166,18 +166,12 @@ openerp.web_widget_x2many_2d_matrix = function(instance)
|
|||
return _.keys(this.by_y_axis);
|
||||
},
|
||||
|
||||
// get x axis labels
|
||||
get_x_axis_labels: function()
|
||||
// get the label for a value on the x axis
|
||||
get_x_axis_label: function(x)
|
||||
{
|
||||
var self = this;
|
||||
return _.map(
|
||||
this.get_x_axis_values(),
|
||||
function(val)
|
||||
{
|
||||
return self.get_field_value(
|
||||
_.first(_.values(self.by_x_axis[val])),
|
||||
self.field_label_x_axis, true);
|
||||
});
|
||||
return this.get_field_value(
|
||||
_.first(_.values(this.by_x_axis[x])),
|
||||
this.field_label_x_axis, true);
|
||||
},
|
||||
|
||||
// get the label for a value on the y axis
|
||||
|
@ -264,6 +258,36 @@ openerp.web_widget_x2many_2d_matrix = function(instance)
|
|||
});
|
||||
},
|
||||
|
||||
setup_many2one_axes: function()
|
||||
{
|
||||
if(this.fields[this.field_x_axis].type == 'many2one')
|
||||
{
|
||||
this.$el.find('th[data-x]').addClass('oe_link')
|
||||
.click(_.partial(
|
||||
this.proxy(this.many2one_axis_click),
|
||||
this.field_x_axis, 'x'));
|
||||
}
|
||||
if(this.fields[this.field_y_axis].type == 'many2one')
|
||||
{
|
||||
this.$el.find('tr[data-y] th').addClass('oe_link')
|
||||
.click(_.partial(
|
||||
this.proxy(this.many2one_axis_click),
|
||||
this.field_y_axis, 'y'));
|
||||
}
|
||||
},
|
||||
|
||||
many2one_axis_click: function(field, id_attribute, e)
|
||||
{
|
||||
this.do_action({
|
||||
type: 'ir.actions.act_window',
|
||||
name: this.fields[field].string,
|
||||
res_model: this.fields[field].relation,
|
||||
res_id: jQuery(e.currentTarget).data(id_attribute),
|
||||
views: [[false, 'form']],
|
||||
target: 'current',
|
||||
})
|
||||
},
|
||||
|
||||
start: function()
|
||||
{
|
||||
var self = this;
|
||||
|
@ -288,6 +312,7 @@ openerp.web_widget_x2many_2d_matrix = function(instance)
|
|||
|
||||
});
|
||||
this.compute_totals();
|
||||
this.setup_many2one_axes();
|
||||
return this._super.apply(this, arguments);
|
||||
},
|
||||
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
<templates>
|
||||
<t t-name="FieldX2Many2dMatrix">
|
||||
<div>
|
||||
<div t-att-class="widget.widget_class">
|
||||
<table class="oe_list_content">
|
||||
<thead>
|
||||
<tr class="oe_list_header_columns">
|
||||
<th />
|
||||
<th t-foreach="widget.get_x_axis_labels()" t-as="label">
|
||||
<t t-esc="label" />
|
||||
<th t-foreach="widget.get_x_axis_values()" t-as="x" t-att-data-x="x">
|
||||
<t t-esc="widget.get_x_axis_label(x)" />
|
||||
</th>
|
||||
<th t-if="widget.show_row_totals">Total</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr t-foreach="widget.get_y_axis_values()" t-as="y">
|
||||
<tr t-foreach="widget.get_y_axis_values()" t-as="y" t-att-data-y="y">
|
||||
<th><t t-esc="widget.get_y_axis_label(y)" /></th>
|
||||
<td t-foreach="widget.get_x_axis_values()" t-as="x" class="oe_list_field_cell">
|
||||
<span t-att-class="widget.get_xy_value_class()">
|
||||
|
|
Loading…
Reference in New Issue