forked from Techsystech/web
delete unused code, move files to standard locations
support color_field attribute update manifest higher version number bump typo17.0
parent
770df440f4
commit
0bec4a1c74
|
@ -4,14 +4,20 @@ Colorize field in tree views
|
||||||
This module aims to add support for dynamically coloring fields in tree view
|
This module aims to add support for dynamically coloring fields in tree view
|
||||||
according to data in the record.
|
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
|
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
|
Usage
|
||||||
|
@ -45,7 +51,23 @@ Usage
|
||||||
|
|
||||||
With this example, column which renders 'name' field will have its text colored in white.
|
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
|
Bug Tracker
|
||||||
===========
|
===========
|
||||||
|
@ -63,6 +85,7 @@ Contributors
|
||||||
------------
|
------------
|
||||||
|
|
||||||
* Damien Crier <damien.crier@camptocamp.com>
|
* Damien Crier <damien.crier@camptocamp.com>
|
||||||
|
* Holger Brunn <hbrunn@therp.nl>
|
||||||
|
|
||||||
Maintainer
|
Maintainer
|
||||||
----------
|
----------
|
||||||
|
|
|
@ -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',
|
'category': 'Hidden',
|
||||||
'version': '8.0.1.0.0',
|
'version': '8.0.2.0.0',
|
||||||
'depends': ['web'],
|
'depends': ['web'],
|
||||||
'author': "Camptocamp,Odoo Community Association (OCA)",
|
'author': "Camptocamp,Odoo Community Association (OCA)",
|
||||||
'license': 'AGPL-3',
|
'license': 'AGPL-3',
|
||||||
|
@ -30,8 +31,6 @@
|
||||||
'views/web_tree_dynamic_colored_field.xml',
|
'views/web_tree_dynamic_colored_field.xml',
|
||||||
],
|
],
|
||||||
'qweb': [
|
'qweb': [
|
||||||
'static/xml/*.xml',
|
'static/src/xml/*.xml',
|
||||||
],
|
],
|
||||||
'auto_install': False,
|
|
||||||
'installable': False,
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,8 +1,4 @@
|
||||||
openerp.web_tree_dynamic_colored_field = function(instance){
|
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){
|
var pair_colors = function(pair_color){
|
||||||
if (pair_color != ""){
|
if (pair_color != ""){
|
||||||
var pair_list = pair_color.split(':'),
|
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 colorize_helper = function(obj, record, column, field_attribute, css_attribute){
|
||||||
var result = '';
|
var result = '';
|
||||||
if (column[field_attribute]){
|
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) {
|
var colors = colors.filter(function CheckUndefined(value, index, ar) {
|
||||||
return value != undefined;
|
return value != undefined;
|
||||||
})
|
})
|
||||||
var ctx = _.extend(
|
var ctx = get_eval_context(record);
|
||||||
{},
|
|
||||||
record.attributes,
|
|
||||||
{
|
|
||||||
uid: obj.session.uid,
|
|
||||||
current_date: new Date().toString('yyyy-MM-dd')
|
|
||||||
}
|
|
||||||
);
|
|
||||||
for(i=0, len=colors.length; i<len; ++i) {
|
for(i=0, len=colors.length; i<len; ++i) {
|
||||||
pair = colors[i];
|
pair = colors[i];
|
||||||
var color = pair[0];
|
var color = pair[0];
|
||||||
|
@ -54,33 +51,25 @@ openerp.web_tree_dynamic_colored_field = function(instance){
|
||||||
this._super(group, opts);
|
this._super(group, opts);
|
||||||
this.columns.fct_colorize = colorize;
|
this.columns.fct_colorize = colorize;
|
||||||
},
|
},
|
||||||
fct_colorize: colorize,
|
});
|
||||||
render: function() {
|
|
||||||
this.$current.empty().append(
|
instance.web.ListView.include({
|
||||||
QWeb.render('ListView.rows', _.extend({
|
style_for: function (record)
|
||||||
render_cell: function () {
|
{
|
||||||
return self.render_cell.apply(self, arguments); },
|
var result = this._super.apply(this, arguments);
|
||||||
fct_colorize: function(){
|
if(this.fields_view.arch.attrs.color_field)
|
||||||
return self.fct_colorize.apply(self, arguments);
|
{
|
||||||
}
|
var color = py.evaluate(
|
||||||
}, this)));
|
py.parse(py.tokenize(
|
||||||
this.pad_table_to(4);
|
this.fields_view.arch.attrs.color_field
|
||||||
},
|
)),
|
||||||
render_record: function(record) {
|
get_eval_context(record)).toJSON();
|
||||||
var self = this;
|
if(color)
|
||||||
var index = this.records.indexOf(record);
|
{
|
||||||
return QWeb.render('ListView.row', {
|
result += 'color: ' + color;
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
}
|
return result;
|
||||||
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
<tr t-extend="ListView.row">
|
<tr t-extend="ListView.row">
|
||||||
<t t-jquery="td[t-att-data-field='column.id']" t-operation="attributes">
|
<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>
|
</t>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<data>
|
<data>
|
||||||
<template id="assets_backend" name="web_tree_dynamic_colored_field assets" inherit_id="web.assets_backend">
|
<template id="assets_backend" name="web_tree_dynamic_colored_field assets" inherit_id="web.assets_backend">
|
||||||
<xpath expr="." position="inside">
|
<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>
|
</xpath>
|
||||||
</template>
|
</template>
|
||||||
</data>
|
</data>
|
||||||
|
|
Loading…
Reference in New Issue