summaryrefslogtreecommitdiff
path: root/addons/web/static/src
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web/static/src')
-rw-r--r--addons/web/static/src/js/view_editor.js4
-rw-r--r--addons/web/static/src/js/view_list.js36
2 files changed, 25 insertions, 15 deletions
diff --git a/addons/web/static/src/js/view_editor.js b/addons/web/static/src/js/view_editor.js
index e0953ae5ef6..ae531c8c925 100644
--- a/addons/web/static/src/js/view_editor.js
+++ b/addons/web/static/src/js/view_editor.js
@@ -874,7 +874,7 @@ openerp.web.ViewEditor = openerp.web.OldWidget.extend({
'colors' : {'name':'colors', 'string': 'Colors', 'type': 'char'},
'editable' : {'name':'editable', 'string': 'Editable', 'type': 'selection', 'selection': [["",""],["top","Top"],["bottom", "Bottom"]]},
'groups' : {'name':'groups', 'string': 'Groups', 'type': 'selection_multi'},
- 'fontbold' : {'name':'fontbold', 'string': 'fontbold', 'type': 'char'},
+ 'fonts' : {'name':'fonts', 'string': 'fonts', 'type': 'char'},
};
var arch_val = self.get_object_by_id(this.one_object.clicked_tr_id,this.one_object['main_object'], []);
this.edit_node_dialog.$element.append('<table id="rec_table" style="width:400px" class="oe_forms"></table>');
@@ -1150,7 +1150,7 @@ var _PROPERTIES = {
'board': ['style'],
'column' : [],
'action' : ['name', 'string', 'colspan', 'groups'],
- 'tree' : ['string', 'colors', 'editable', 'link', 'limit', 'min_rows', 'fontbold'],
+ 'tree' : ['string', 'colors', 'editable', 'link', 'limit', 'min_rows', 'fonts'],
'graph' : ['string', 'type'],
'calendar' : ['string', 'date_start', 'date_stop', 'date_delay', 'day_length', 'color', 'mode']
};
diff --git a/addons/web/static/src/js/view_list.js b/addons/web/static/src/js/view_list.js
index 122d4ee76d5..b2a23ac5451 100644
--- a/addons/web/static/src/js/view_list.js
+++ b/addons/web/static/src/js/view_list.js
@@ -56,7 +56,7 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView#
this.view_id = view_id;
this.previous_colspan = null;
this.colors = null;
- this.fontbold = null;
+ this.fonts = null;
this.columns = [];
@@ -149,19 +149,26 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView#
* @returns {String} CSS color declaration
*/
color_for: function (record) {
- if (!this.colors) { return ''; }
- var context = _.extend({}, record.attributes, {
+ var style= '';
+
+ var context = _.extend({}, record.attributes, {
uid: this.session.uid,
current_date: new Date().toString('yyyy-MM-dd')
// TODO: time, datetime, relativedelta
});
- var style= '';
- for(var i=0, len=this.fontbold.length; i<len; ++i) {
- if(record.attributes.state == this.fontbold[i]) {
- style = 'font-weight: bold;';
- }
- }
+ if (this.fonts) {
+ for(var i=0, len=this.fonts.length; i<len; ++i) {
+ var pair = this.fonts[i],
+ font = pair[0],
+ expression = pair[1];
+ if (py.evaluate(expression, context).toJSON()) {
+ style = 'font-weight: bold;';
+ }
+ }
+ }
+
+ if (!this.colors) { return style; }
for(var i=0, len=this.colors.length; i<len; ++i) {
var pair = this.colors[i],
color = pair[0],
@@ -213,10 +220,13 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView#
}).value();
}
- if (this.fields_view.arch.attrs.fontbold) {
- this.fontbold = _(this.fields_view.arch.attrs.fontbold.split(',')).chain().compact()
- .map(function(fontbold_pair) {
- return fontbold_pair;
+ if (this.fields_view.arch.attrs.fonts) {
+ this.fonts = _(this.fields_view.arch.attrs.fonts.split(',')).chain().compact()
+ .map(function(font_pair) {
+ var pair = font_pair.split(':'),
+ font = pair[0],
+ expr = pair[1];
+ return [font, py.parse(py.tokenize(expr)), expr];
}).value();
}