3
0
Fork 0

[11][MIG] web_widget_x2many_2d_matrix WIP

16.0
Artem Kostyuk 2018-02-15 09:45:16 +02:00 committed by tarteo
parent 82b0d44651
commit 373fa5ffda
6 changed files with 51 additions and 36 deletions

View File

@ -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
---------- ----------

View File

@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
############################################################################## ##############################################################################
# #
# OpenERP, Open Source Management Solution # OpenERP, Open Source Management Solution

View File

@ -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",

View File

@ -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"

View File

@ -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"

View File

@ -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
};
}); });