summaryrefslogtreecommitdiff
path: root/addons/web/static/src
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2016-06-28 18:05:25 +0200
committerChristophe Simonis <chs@odoo.com>2016-06-28 18:05:25 +0200
commit93e6316029e237d41540bcf7ac594cc34b692d3a (patch)
treeedbb9fa9a400855d1089d8e612e98c83eb9d3904 /addons/web/static/src
parent8eb2be4668b5677b82d581023161d31acd8abab1 (diff)
parent71530771ea42c5bf620115e38afeaa6112f720cf (diff)
[MERGE] forward port of branch saas-11 up to 7153077
Diffstat (limited to 'addons/web/static/src')
-rw-r--r--addons/web/static/src/js/framework/pyeval.js2
-rw-r--r--addons/web/static/src/js/menu.js6
-rw-r--r--addons/web/static/src/js/views/form_relational_widgets.js24
-rw-r--r--addons/web/static/src/js/views/list_view.js14
-rw-r--r--addons/web/static/src/less/views.less4
-rw-r--r--addons/web/static/src/xml/base.xml6
6 files changed, 38 insertions, 18 deletions
diff --git a/addons/web/static/src/js/framework/pyeval.js b/addons/web/static/src/js/framework/pyeval.js
index 2b553d37e0f..d0708bdf356 100644
--- a/addons/web/static/src/js/framework/pyeval.js
+++ b/addons/web/static/src/js/framework/pyeval.js
@@ -958,7 +958,7 @@ function eval_arg (arg) {
case 'context': case 'compound_context':
return pyeval('contexts', [arg]);
default:
- throw new Error(_t("Unknown nonliteral type " + arg.__ref));
+ throw new Error(_t("Unknown nonliteral type ") + ' ' + arg.__ref);
}
}
diff --git a/addons/web/static/src/js/menu.js b/addons/web/static/src/js/menu.js
index c244305b7aa..83112ed3121 100644
--- a/addons/web/static/src/js/menu.js
+++ b/addons/web/static/src/js/menu.js
@@ -44,7 +44,7 @@ var Menu = Widget.extend({
});
// Hide second level submenus
- this.$secondary_menus.find('.oe_menu_toggler').siblings('.oe_secondary_submenu').hide();
+ this.$secondary_menus.find('.oe_menu_toggler').siblings('.oe_secondary_submenu').addClass('o_hidden');
if (self.current_menu) {
self.open_menu(self.current_menu);
}
@@ -160,12 +160,12 @@ var Menu = Widget.extend({
$sub_menu.show();
// Hide/Show the leftbar menu depending of the presence of sub-items
- this.$secondary_menus.toggle(!!$sub_menu.children().length);
+ this.$secondary_menus.toggleClass('o_hidden', !$sub_menu.children().length);
// Activate current menu item and show parents
this.$secondary_menus.find('.active').removeClass('active');
if ($main_menu !== $clicked_menu) {
- $clicked_menu.parents().show();
+ $clicked_menu.parents().removeClass('o_hidden');
if ($clicked_menu.is('.oe_menu_toggler')) {
$clicked_menu.toggleClass('oe_menu_opened').siblings('.oe_secondary_submenu:first').toggle();
} else {
diff --git a/addons/web/static/src/js/views/form_relational_widgets.js b/addons/web/static/src/js/views/form_relational_widgets.js
index 624a2fa17a4..8e65677a8b3 100644
--- a/addons/web/static/src/js/views/form_relational_widgets.js
+++ b/addons/web/static/src/js/views/form_relational_widgets.js
@@ -320,7 +320,8 @@ var FieldMany2One = common.AbstractField.extend(common.CompletionFieldMixin, com
var dataset = new data.DataSetStatic(this, this.field.relation, self.build_context());
var def = this.alive(dataset.name_get([self.get("value")])).done(function(data) {
if (!data[0]) {
- self.do_warn(_t("Render"), _t("No value found for the field "+self.field.string+" for value "+self.get("value")));
+ self.do_warn(_t("Render"),
+ _.str.sprintf(_t("No value found for the field %s for value %s"), self.field.string, self.get("value")));
return;
}
self.display_value["" + self.get("value")] = data[0][1];
@@ -819,6 +820,7 @@ var FieldX2Many = AbstractManyField.extend({
self.is_loaded = self.is_loaded.then(function() {
var view = self.get_active_view();
if (view.type === "list") {
+ view.controller.page = 0;
return view.controller.reload_content();
} else if (view.controller.do_search) {
return view.controller.do_search(self.build_domain(), self.dataset.get_context(), []);
@@ -863,6 +865,9 @@ var FieldX2Many = AbstractManyField.extend({
}
return true;
},
+ is_false: function() {
+ return _(this.dataset.ids).isEmpty();
+ },
});
var X2ManyDataSet = data.BufferedDataSet.extend({
@@ -1259,13 +1264,16 @@ var FieldOne2Many = FieldX2Many.extend({
return this._super.apply(this, arguments);
},
commit_value: function() {
- var view = this.viewmanager.active_view;
- if(view.type === "list" && view.controller.editable()) {
- return this.mutex.def.then(function () {
- return view.controller.save_edition();
- });
- }
- return this.mutex.def;
+ var self = this;
+ return this.is_loaded.then(function() {
+ var view = self.viewmanager.active_view;
+ if(view.type === "list" && view.controller.editable()) {
+ return self.mutex.def.then(function () {
+ return view.controller.save_edition();
+ });
+ }
+ return self.mutex.def;
+ });
},
});
diff --git a/addons/web/static/src/js/views/list_view.js b/addons/web/static/src/js/views/list_view.js
index d905dfdadfd..9a87b7fd6b3 100644
--- a/addons/web/static/src/js/views/list_view.js
+++ b/addons/web/static/src/js/views/list_view.js
@@ -4,6 +4,7 @@ odoo.define('web.ListView', function (require) {
var core = require('web.core');
var data = require('web.data');
+var data_manager = require('web.data_manager');
var DataExport = require('web.DataExport');
var formats = require('web.formats');
var common = require('web.list_common');
@@ -36,6 +37,7 @@ var row_decoration = [
var ListView = View.extend({
_template: 'ListView',
accesskey: "l",
+ require_fields: true,
defaults: _.extend({}, View.prototype.defaults, {
// records can be selected one by one
selectable: true,
@@ -151,6 +153,7 @@ var ListView = View.extend({
}
},
willStart: function() {
+ var self = this;
// Retrieve the decoration defined on the model's list view
this.decoration = _.pick(this.fields_view.arch.attrs, function(value, key) {
return row_decoration.indexOf(key) >= 0;
@@ -158,7 +161,10 @@ var ListView = View.extend({
this.decoration = _.mapObject(this.decoration, function(value) {
return py.parse(py.tokenize(value));
});
- return this._super();
+ var fields_def = data_manager.load_fields(this.dataset).then(function(fields_get) {
+ self.fields_get = fields_get;
+ });
+ return $.when(this._super(), fields_def);
},
/**
* Set a custom Group construct as the root of the List View.
@@ -1379,6 +1385,12 @@ ListView.Groups = Class.extend({
}
} else {
group_label = group.value;
+ var grouped_on_field = self.view.fields_get[group.grouped_on];
+ if (grouped_on_field.type === 'selection') {
+ group_label = _.find(grouped_on_field.selection, function(selection) {
+ return selection[0] === group.value;
+ });
+ }
if (group_label instanceof Array) {
group_label = group_label[1];
}
diff --git a/addons/web/static/src/less/views.less b/addons/web/static/src/less/views.less
index fb8af2374ef..9b616d08ada 100644
--- a/addons/web/static/src/less/views.less
+++ b/addons/web/static/src/less/views.less
@@ -5,7 +5,7 @@
// Many2many tags
.o_form_field_many2manytags {
.o_tag_color_0 {
- background-color: #B6BBBF;
+ background-color: #4D4D4D;
}
.o_tag_color_1 {
background-color: #61BD4F;
@@ -35,7 +35,7 @@
background-color: #FF80CE;
}
.o_tag_color_10 {
- background-color: #4D4D4D;
+ background-color: #B6BBBF;
}
}
diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml
index 1b373d5fd50..831b4ab4932 100644
--- a/addons/web/static/src/xml/base.xml
+++ b/addons/web/static/src/xml/base.xml
@@ -748,7 +748,7 @@
</t>
<t t-name="FieldMany2ManyTag">
<t t-foreach="elements" t-as="el">
- <span t-attf-class="badge dropdown #{'o_tag_color_' + (el['color'] || 0)}" t-att-data-color="(el['color'] || 0)" t-att-data-index="el_index" t-att-data-id="el['id']">
+ <span t-attf-class="badge dropdown o_tag_color_#{el.color}" t-att-data-color="el.color" t-att-data-index="el_index" t-att-data-id="el.id">
<span class="o_badge_text" t-attf-title="#{el['display_name']}"><t t-raw="el['display_name']"/></span>
<span t-if="!readonly" class="fa fa-times o_delete"/>
</span>
@@ -757,10 +757,10 @@
<t t-name="FieldMany2ManyTag.colorpicker">
<ul class="o_colorpicker dropdown-menu" role="menu">
<li t-foreach="10" t-as="color">
- <span t-att-data-id="tag_id" t-att-data-color="color_index + 1" t-attf-class="o_tag_color_#{color + 1}"/>
+ <span t-att-data-id="tag_id" t-att-data-color="color" t-attf-class="o_tag_color_#{color}"/>
</li>
<li>
- <span t-att-data-id="tag_id" t-att-data-color="0" class="o_tag_color_0"/>
+ <span t-att-data-id="tag_id" t-att-data-color="10" class="o_tag_color_10"/>
</li>
<li>
Not shown in kanban