diff --git a/web_tree_dynamic_colored_field/README.rst b/web_tree_dynamic_colored_field/README.rst
index 90174e3d3..b1a0f3544 100644
--- a/web_tree_dynamic_colored_field/README.rst
+++ b/web_tree_dynamic_colored_field/README.rst
@@ -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 value. 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
 ----------
diff --git a/web_tree_dynamic_colored_field/__openerp__.py b/web_tree_dynamic_colored_field/__openerp__.py
index 45c2be526..891f1c229 100644
--- a/web_tree_dynamic_colored_field/__openerp__.py
+++ b/web_tree_dynamic_colored_field/__openerp__.py
@@ -19,9 +19,10 @@
 #
 ##############################################################################
 {
-    'name': 'web tree dynamic colored field',
+    'name': 'Colorize field in tree views',
+    'summary': 'Allows you to dynamically color fields on tree views',
     'category': 'Hidden',
-    'version': '8.0.1.0.0',
+    'version': '8.0.2.0.0',
     'depends': ['web'],
     'author': "Camptocamp,Odoo Community Association (OCA)",
     'license': 'AGPL-3',
@@ -30,8 +31,6 @@
         'views/web_tree_dynamic_colored_field.xml',
     ],
     'qweb': [
-        'static/xml/*.xml',
+        'static/src/xml/*.xml',
     ],
-    'auto_install': False,
-    'installable': False,
 }
diff --git a/web_tree_dynamic_colored_field/static/js/web_tree_dynamic_colored_field.js b/web_tree_dynamic_colored_field/static/src/js/web_tree_dynamic_colored_field.js
similarity index 51%
rename from web_tree_dynamic_colored_field/static/js/web_tree_dynamic_colored_field.js
rename to web_tree_dynamic_colored_field/static/src/js/web_tree_dynamic_colored_field.js
index 2c3b5e4f9..36b4dac6e 100644
--- a/web_tree_dynamic_colored_field/static/js/web_tree_dynamic_colored_field.js
+++ b/web_tree_dynamic_colored_field/static/src/js/web_tree_dynamic_colored_field.js
@@ -1,8 +1,4 @@
 openerp.web_tree_dynamic_colored_field = function(instance){
-    var _t = instance.web._t,
-        _lt = instance.web._lt;
-    var QWeb = instance.web.qweb;
-    
     var pair_colors = function(pair_color){
         if (pair_color != ""){
             var pair_list = pair_color.split(':'),
@@ -12,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]){
@@ -22,14 +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,
-                    {
-                        uid: obj.session.uid,
-                        current_date: new Date().toString('yyyy-MM-dd')
-                    }    
-            );
+            var ctx = get_eval_context(record);
             for(i=0, len=colors.length; i<len; ++i) {
                 pair = colors[i];
                 var color = pair[0];
@@ -41,46 +38,38 @@ openerp.web_tree_dynamic_colored_field = function(instance){
         }
         return result
     };
-    
+
     var colorize = function(record, column){
         var res = '';
         res += colorize_helper(this, record, column, 'bg_color', 'background-color');
         res += colorize_helper(this, record, column, 'fg_color', 'color');
         return res;
     };
-    
+
     instance.web.ListView.List.include({
         init: function(group, opts){
             this._super(group, opts);
             this.columns.fct_colorize = colorize;
         },
-        fct_colorize: colorize,
-        render: function() {
-            this.$current.empty().append(
-                QWeb.render('ListView.rows', _.extend({
-                        render_cell: function () {
-                            return self.render_cell.apply(self, arguments); },
-                        fct_colorize: function(){
-                            return self.fct_colorize.apply(self, arguments);
-                        }
-                    }, this)));
-            this.pad_table_to(4);
-        },
-        render_record: function(record) {
-            var self = this;
-            var index = this.records.indexOf(record);
-            return QWeb.render('ListView.row', {
-                columns: this.columns,
-                options: this.options,
-                record: record,
-                row_parity: (index % 2 === 0) ? 'even' : 'odd',
-                view: this.view,
-                render_cell: function () {
-                    return self.render_cell.apply(self, arguments); },
-                fct_colorize: function(){
-                    return self.fct_colorize.apply(self, arguments);
+    });
+
+    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;
+        },
     });
 }
diff --git a/web_tree_dynamic_colored_field/static/xml/web_tree_dynamic_colored_field.xml b/web_tree_dynamic_colored_field/static/src/xml/web_tree_dynamic_colored_field.xml
similarity index 64%
rename from web_tree_dynamic_colored_field/static/xml/web_tree_dynamic_colored_field.xml
rename to web_tree_dynamic_colored_field/static/src/xml/web_tree_dynamic_colored_field.xml
index 8a79e701a..254172e88 100644
--- a/web_tree_dynamic_colored_field/static/xml/web_tree_dynamic_colored_field.xml
+++ b/web_tree_dynamic_colored_field/static/src/xml/web_tree_dynamic_colored_field.xml
@@ -4,8 +4,8 @@
 
     <tr t-extend="ListView.row">
         <t t-jquery="td[t-att-data-field='column.id']" t-operation="attributes">
-            <attribute name="t-att-style">fct_colorize(record, column)</attribute>
+            <attribute name="t-att-style">columns.fct_colorize(record, column)</attribute>
         </t>
     </tr>
 
-</templates>
\ No newline at end of file
+</templates>
diff --git a/web_tree_dynamic_colored_field/views/web_tree_dynamic_colored_field.xml b/web_tree_dynamic_colored_field/views/web_tree_dynamic_colored_field.xml
index 4d425fd9c..7341731dd 100644
--- a/web_tree_dynamic_colored_field/views/web_tree_dynamic_colored_field.xml
+++ b/web_tree_dynamic_colored_field/views/web_tree_dynamic_colored_field.xml
@@ -5,8 +5,8 @@
     <data>
         <template id="assets_backend" name="web_tree_dynamic_colored_field assets" inherit_id="web.assets_backend">
             <xpath expr="." position="inside">
-                <script type="text/javascript" src="/web_tree_dynamic_colored_field/static/js/web_tree_dynamic_colored_field.js"></script>
+                <script type="text/javascript" src="/web_tree_dynamic_colored_field/static/src/js/web_tree_dynamic_colored_field.js"></script>
             </xpath>
         </template>
     </data>
-</openerp>
\ No newline at end of file
+</openerp>