mirror of https://github.com/OCA/web.git
[11][MIG] web_widget_x2many_2d_matrix WIP
parent
71c5a464f2
commit
7833764d82
|
@ -80,7 +80,7 @@ field_att_<name>
|
||||||
|
|
||||||
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
|
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
|
||||||
:alt: Try me on Runbot
|
:alt: Try me on Runbot
|
||||||
:target: https://runbot.odoo-community.org/runbot/162/8.0
|
:target: https://runbot.odoo-community.org/runbot/162/11.0
|
||||||
|
|
||||||
Example
|
Example
|
||||||
=======
|
=======
|
||||||
|
@ -104,6 +104,7 @@ the field in the default function::
|
||||||
users = self.env['res.users'].browse([1, 2, 3])
|
users = self.env['res.users'].browse([1, 2, 3])
|
||||||
return [
|
return [
|
||||||
(0, 0, {
|
(0, 0, {
|
||||||
|
'name': 'Sample task name',
|
||||||
'project_id': p.id,
|
'project_id': p.id,
|
||||||
'user_id': u.id,
|
'user_id': u.id,
|
||||||
'planned_hours': 0,
|
'planned_hours': 0,
|
||||||
|
@ -158,7 +159,7 @@ Bug Tracker
|
||||||
Bugs are tracked on `GitHub Issues
|
Bugs are tracked on `GitHub Issues
|
||||||
<https://github.com/OCA/web/issues>`_. In case of trouble, please
|
<https://github.com/OCA/web/issues>`_. In case of trouble, please
|
||||||
check there if your issue has already been reported. If you spotted it first,
|
check there if your issue has already been reported. If you spotted it first,
|
||||||
help us smashing it by providing a detailed and welcomed feedback.
|
help us smash it by providing a detailed and welcomed feedback.
|
||||||
|
|
||||||
Credits
|
Credits
|
||||||
=======
|
=======
|
||||||
|
@ -168,6 +169,7 @@ Contributors
|
||||||
|
|
||||||
* Holger Brunn <hbrunn@therp.nl>
|
* Holger Brunn <hbrunn@therp.nl>
|
||||||
* Pedro M. Baeza <pedro.baeza@tecnativa.com>
|
* Pedro M. Baeza <pedro.baeza@tecnativa.com>
|
||||||
|
* Artem Kostyuk <a.kostyuk@mobilunity.com>
|
||||||
|
|
||||||
Maintainer
|
Maintainer
|
||||||
----------
|
----------
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
#
|
#
|
||||||
# OpenERP, Open Source Management Solution
|
# OpenERP, Open Source Management Solution
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
# Copyright 2015 Holger Brunn <hbrunn@therp.nl>
|
# Copyright 2015 Holger Brunn <hbrunn@therp.nl>
|
||||||
# Copyright 2016 Pedro M. Baeza <pedro.baeza@tecnativa.com>
|
# Copyright 2016 Pedro M. Baeza <pedro.baeza@tecnativa.com>
|
||||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
|
|
||||||
{
|
{
|
||||||
"name": "2D matrix for x2many fields",
|
"name": "2D matrix for x2many fields",
|
||||||
"version": "10.0.1.0.1",
|
"version": "11.0.1.0.0",
|
||||||
"author": "Therp BV, "
|
"author": "Therp BV, "
|
||||||
"Tecnativa, "
|
"Tecnativa, "
|
||||||
"Odoo Community Association (OCA)",
|
"Odoo Community Association (OCA)",
|
||||||
|
"website": "https://github.com/OCA/web",
|
||||||
"license": "AGPL-3",
|
"license": "AGPL-3",
|
||||||
"category": "Hidden/Dependency",
|
"category": "Hidden/Dependency",
|
||||||
"summary": "Show list fields as a matrix",
|
"summary": "Show list fields as a matrix",
|
||||||
|
|
|
@ -6,10 +6,10 @@
|
||||||
# Viktoras Norkus <viktoras@bmx.lt>, 2018
|
# Viktoras Norkus <viktoras@bmx.lt>, 2018
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Odoo Server 10.0\n"
|
"Project-Id-Version: Odoo Server 11.0\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2018-01-25 01:58+0000\n"
|
"POT-Creation-Date: 2018-01-25 01:58+0000\n"
|
||||||
"PO-Revision-Date: 2018-01-25 01:58+0000\n"
|
"PO-Revision-Date: 2018-02-15 12:40+0200\n"
|
||||||
"Last-Translator: Viktoras Norkus <viktoras@bmx.lt>, 2018\n"
|
"Last-Translator: Viktoras Norkus <viktoras@bmx.lt>, 2018\n"
|
||||||
"Language-Team: Lithuanian (https://www.transifex.com/oca/teams/23907/lt/)\n"
|
"Language-Team: Lithuanian (https://www.transifex.com/oca/teams/23907/lt/)\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
|
|
|
@ -6,10 +6,10 @@
|
||||||
# Peter Hageman <hageman.p@gmail.com>, 2017
|
# Peter Hageman <hageman.p@gmail.com>, 2017
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Odoo Server 10.0\n"
|
"Project-Id-Version: Odoo Server 11.0\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2018-01-03 03:50+0000\n"
|
"POT-Creation-Date: 2018-01-03 03:50+0000\n"
|
||||||
"PO-Revision-Date: 2018-01-03 03:50+0000\n"
|
"PO-Revision-Date: 2018-02-15 12:39+0200\n"
|
||||||
"Last-Translator: Peter Hageman <hageman.p@gmail.com>, 2017\n"
|
"Last-Translator: Peter Hageman <hageman.p@gmail.com>, 2017\n"
|
||||||
"Language-Team: Dutch (Netherlands) (https://www.transifex.com/oca/teams/23907/nl_NL/)\n"
|
"Language-Team: Dutch (Netherlands) (https://www.transifex.com/oca/teams/23907/nl_NL/)\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
|
|
|
@ -6,13 +6,15 @@ odoo.define('web_widget_x2many_2d_matrix.widget', function (require) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
var core = require('web.core');
|
var core = require('web.core');
|
||||||
var formats = require('web.formats');
|
var FieldManagerMixin = require('web.FieldManagerMixin');
|
||||||
var FieldOne2Many = core.form_widget_registry.get('one2many');
|
var Widget = require('web.Widget');
|
||||||
var Model = require('web.Model');
|
var fieldRegistry = require('web.field_registry');
|
||||||
|
var widgetRegistry = require('web.widget_registry');
|
||||||
|
var widgetOne2many = widgetRegistry.get('one2many');
|
||||||
var data = require('web.data');
|
var data = require('web.data');
|
||||||
var $ = require('jquery');
|
var $ = require('jquery');
|
||||||
|
|
||||||
var WidgetX2Many2dMatrix = FieldOne2Many.extend({
|
var WidgetX2Many2dMatrix = widgetOne2Many.extend(FieldManagerMixin, {
|
||||||
template: 'FieldX2Many2dMatrix',
|
template: 'FieldX2Many2dMatrix',
|
||||||
widget_class: 'oe_form_field_x2many_2d_matrix',
|
widget_class: 'oe_form_field_x2many_2d_matrix',
|
||||||
|
|
||||||
|
@ -46,28 +48,39 @@ odoo.define('web_widget_x2many_2d_matrix.widget', function (require) {
|
||||||
},
|
},
|
||||||
|
|
||||||
// read parameters
|
// read parameters
|
||||||
init: function(field_manager, node)
|
init: function (parent, fieldname, record, therest) {
|
||||||
{
|
var res = this._super(parent, fieldname, record, therest);
|
||||||
this.field_x_axis = node.attrs.field_x_axis || this.field_x_axis;
|
FieldManagerMixin.init.call(this);
|
||||||
this.field_y_axis = node.attrs.field_y_axis || this.field_y_axis;
|
var node = record.fieldsInfo[therest.viewType][fieldname];
|
||||||
this.field_label_x_axis = node.attrs.field_label_x_axis || this.field_x_axis;
|
|
||||||
this.field_label_y_axis = node.attrs.field_label_y_axis || this.field_y_axis;
|
this.field_x_axis = node.field_x_axis || this.field_x_axis;
|
||||||
this.x_axis_clickable = this.parse_boolean(node.attrs.x_axis_clickable || '1');
|
this.field_y_axis = node.field_y_axis || this.field_y_axis;
|
||||||
this.y_axis_clickable = this.parse_boolean(node.attrs.y_axis_clickable || '1');
|
this.field_label_x_axis = node.field_label_x_axis || this.field_x_axis;
|
||||||
this.field_value = node.attrs.field_value || this.field_value;
|
this.field_label_y_axis = node.field_label_y_axis || this.field_y_axis;
|
||||||
for (var property in node.attrs) {
|
this.x_axis_clickable = this.parse_boolean(node.x_axis_clickable || '1');
|
||||||
|
this.y_axis_clickable = this.parse_boolean(node.y_axis_clickable || '1');
|
||||||
|
this.field_value = node.field_value || this.field_value;
|
||||||
|
for (var property in node) {
|
||||||
if (property.startsWith("field_att_")) {
|
if (property.startsWith("field_att_")) {
|
||||||
this.fields_att[property.substring(10)] = node.attrs[property];
|
this.fields_att[property.substring(10)] = node[property];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.field_editability = node.attrs.field_editability || this.field_editability;
|
this.field_editability = node.field_editability || this.field_editability;
|
||||||
this.show_row_totals = this.parse_boolean(node.attrs.show_row_totals || '1');
|
this.show_row_totals = this.parse_boolean(node.show_row_totals || '1');
|
||||||
this.show_column_totals = this.parse_boolean(node.attrs.show_column_totals || '1');
|
this.show_column_totals = this.parse_boolean(node.show_column_totals || '1');
|
||||||
return this._super(field_manager, node);
|
this.init_fields();
|
||||||
|
// this.set_value(undefined);
|
||||||
|
|
||||||
|
return res;
|
||||||
|
},
|
||||||
|
|
||||||
|
init_fields: function() {
|
||||||
|
return;
|
||||||
},
|
},
|
||||||
|
|
||||||
// return a field's value, id in case it's a one2many field
|
// return a field's value, id in case it's a one2many field
|
||||||
get_field_value: function(row, field, many2one_as_name)
|
get_field_value: function(row, field, many2one_as_name)
|
||||||
|
// FIXME looks silly
|
||||||
{
|
{
|
||||||
if(this.fields[field].type == 'many2one' && _.isArray(row[field]))
|
if(this.fields[field].type == 'many2one' && _.isArray(row[field]))
|
||||||
{
|
{
|
||||||
|
@ -262,15 +275,13 @@ odoo.define('web_widget_x2many_2d_matrix.widget', function (require) {
|
||||||
// parse a value from user input
|
// parse a value from user input
|
||||||
parse_xy_value: function(val)
|
parse_xy_value: function(val)
|
||||||
{
|
{
|
||||||
return formats.parse_value(
|
return val;
|
||||||
val, {'type': this.fields[this.field_value].type});
|
|
||||||
},
|
},
|
||||||
|
|
||||||
// format a value from the database for display
|
// format a value from the database for display
|
||||||
format_xy_value: function(val)
|
format_xy_value: function(val)
|
||||||
{
|
{
|
||||||
return formats.format_value(
|
return val;
|
||||||
val, {'type': this.fields[this.field_value].type});
|
|
||||||
},
|
},
|
||||||
|
|
||||||
// compute totals
|
// compute totals
|
||||||
|
@ -412,7 +423,11 @@ odoo.define('web_widget_x2many_2d_matrix.widget', function (require) {
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
core.form_widget_registry.add('x2many_2d_matrix', WidgetX2Many2dMatrix);
|
fieldRegistry.add(
|
||||||
|
'x2many_2d_matrix', WidgetX2Many2dMatrix
|
||||||
|
);
|
||||||
|
|
||||||
return WidgetX2Many2dMatrix;
|
return {
|
||||||
|
WidgetX2Many2dMatrix: WidgetX2Many2dMatrix
|
||||||
|
};
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue