mirror of
https://github.com/OCA/web.git
synced 2025-02-22 13:21:25 +02:00
support color_field attribute
This commit is contained in:
@@ -4,14 +4,20 @@ Colorize field in tree views
|
||||
This module aims to add support for dynamically coloring fields in tree view
|
||||
according to data in the record.
|
||||
|
||||
It provides new attributes with the same syntax as 'colors' attribute in tree tag.
|
||||
It provides attributes on fields with the same syntax as the 'colors' attribute
|
||||
in tree tags.
|
||||
|
||||
Further, it provides a ``color_field`` attribute on tree tags to use a field's
|
||||
value as color.
|
||||
|
||||
Features
|
||||
========
|
||||
|
||||
* Add attribute 'bg_color' to color background of a cell in tree view
|
||||
* Add attribute ``bg_color`` on fields to color background of a cell in tree view
|
||||
|
||||
* Add attribute 'fg_color' to change text color of a cell in tree view
|
||||
* Add attribute ``fg_color`` on fields to change text color of a cell in tree view
|
||||
|
||||
* Add attribute ``color_field`` on the tree element to use as color
|
||||
|
||||
|
||||
Usage
|
||||
@@ -45,7 +51,23 @@ Usage
|
||||
|
||||
With this example, column which renders 'name' field will have its text colored in white.
|
||||
|
||||
* In the tree view declaration, use color_field="color" attribute in the tree tag::
|
||||
|
||||
...
|
||||
<field name="arch" type="xml">
|
||||
<tree string="View name" color_field="color">
|
||||
...
|
||||
<field name="color" invisible="1" />
|
||||
...
|
||||
</tree>
|
||||
</field>
|
||||
...
|
||||
|
||||
With this example, the content of the field named `color` will be used to
|
||||
populate the `color` CSS calue. Use a function field to return whichever
|
||||
color you want depending on the other record values. Note this this
|
||||
overrides the `colors` attribute, and that you need the tree to load your
|
||||
field in the first place by adding it as invisible field.
|
||||
|
||||
Bug Tracker
|
||||
===========
|
||||
@@ -63,6 +85,7 @@ Contributors
|
||||
------------
|
||||
|
||||
* Damien Crier <damien.crier@camptocamp.com>
|
||||
* Holger Brunn <hbrunn@therp.nl>
|
||||
|
||||
Maintainer
|
||||
----------
|
||||
|
||||
@@ -8,6 +8,14 @@ openerp.web_tree_dynamic_colored_field = function(instance){
|
||||
}
|
||||
};
|
||||
|
||||
var get_eval_context = function(record){
|
||||
return _.extend(
|
||||
{},
|
||||
record.attributes,
|
||||
instance.web.pyeval.context()
|
||||
);
|
||||
};
|
||||
|
||||
var colorize_helper = function(obj, record, column, field_attribute, css_attribute){
|
||||
var result = '';
|
||||
if (column[field_attribute]){
|
||||
@@ -18,11 +26,7 @@ openerp.web_tree_dynamic_colored_field = function(instance){
|
||||
var colors = colors.filter(function CheckUndefined(value, index, ar) {
|
||||
return value != undefined;
|
||||
})
|
||||
var ctx = _.extend(
|
||||
{},
|
||||
record.attributes,
|
||||
instance.web.pyeval.context()
|
||||
);
|
||||
var ctx = get_eval_context(record);
|
||||
for(i=0, len=colors.length; i<len; ++i) {
|
||||
pair = colors[i];
|
||||
var color = pair[0];
|
||||
@@ -48,4 +52,24 @@ openerp.web_tree_dynamic_colored_field = function(instance){
|
||||
this.columns.fct_colorize = colorize;
|
||||
},
|
||||
});
|
||||
|
||||
instance.web.ListView.include({
|
||||
style_for: function (record)
|
||||
{
|
||||
var result = this._super.apply(this, arguments);
|
||||
if(this.fields_view.arch.attrs.color_field)
|
||||
{
|
||||
var color = py.evaluate(
|
||||
py.parse(py.tokenize(
|
||||
this.fields_view.arch.attrs.color_field
|
||||
)),
|
||||
get_eval_context(record)).toJSON();
|
||||
if(color)
|
||||
{
|
||||
result += 'color: ' + color;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user