diff --git a/web_tree_dynamic_colored_field/README.rst b/web_tree_dynamic_colored_field/README.rst new file mode 100644 index 00000000..90174e3d --- /dev/null +++ b/web_tree_dynamic_colored_field/README.rst @@ -0,0 +1,80 @@ +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. + +Features +======== + +* Add attribute 'bg_color' to color background of a cell in tree view + +* Add attribute 'fg_color' to change text color of a cell in tree view + + +Usage +===== + +* In the tree view declaration, put bg_color="red:customer==True;" attribute in the field tag:: + + ... + + + ... + + ... + + + ... + + With this example, column which renders 'name' field will have its background colored in red. + +* In the tree view declaration, put fg_color="white:customer==True;" attribute in the field tag:: + + ... + + + ... + + ... + + + ... + + With this example, column which renders 'name' field will have its text colored in white. + + + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed feedback +`here `_. + + +Credits +======= + +Contributors +------------ + +* Damien Crier + +Maintainer +---------- + +.. image:: http://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: http://odoo-community.org + +This module is maintained by the OCA. + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +To contribute to this module, please visit http://odoo-community.org. diff --git a/web_tree_dynamic_colored_field/__init__.py b/web_tree_dynamic_colored_field/__init__.py new file mode 100644 index 00000000..c82f5352 --- /dev/null +++ b/web_tree_dynamic_colored_field/__init__.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Author: Damien Crier +# Copyright 2015 Camptocamp SA +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## diff --git a/web_tree_dynamic_colored_field/__openerp__.py b/web_tree_dynamic_colored_field/__openerp__.py new file mode 100644 index 00000000..45c2be52 --- /dev/null +++ b/web_tree_dynamic_colored_field/__openerp__.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# Author: Damien Crier +# Copyright 2015 Camptocamp SA +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## +{ + 'name': 'web tree dynamic colored field', + 'category': 'Hidden', + 'version': '8.0.1.0.0', + 'depends': ['web'], + 'author': "Camptocamp,Odoo Community Association (OCA)", + 'license': 'AGPL-3', + 'website': 'http://www.camptocamp.com', + 'data': [ + 'views/web_tree_dynamic_colored_field.xml', + ], + 'qweb': [ + 'static/xml/*.xml', + ], + 'auto_install': False, + 'installable': False, +} diff --git a/web_tree_dynamic_colored_field/static/description/icon.png b/web_tree_dynamic_colored_field/static/description/icon.png new file mode 100644 index 00000000..3a0328b5 Binary files /dev/null and b/web_tree_dynamic_colored_field/static/description/icon.png differ diff --git a/web_tree_dynamic_colored_field/static/js/web_tree_dynamic_colored_field.js b/web_tree_dynamic_colored_field/static/js/web_tree_dynamic_colored_field.js new file mode 100644 index 00000000..2c3b5e4f --- /dev/null +++ b/web_tree_dynamic_colored_field/static/js/web_tree_dynamic_colored_field.js @@ -0,0 +1,86 @@ +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(':'), + color = pair_list[0], + expression = pair_list[1]; + return [color, py.parse(py.tokenize(expression)), expression] + } + }; + + var colorize_helper = function(obj, record, column, field_attribute, css_attribute){ + var result = ''; + if (column[field_attribute]){ + var colors = _(column[field_attribute].split(';')) + .chain() + .map(pair_colors) + .value(); + 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') + } + ); + for(i=0, len=colors.length; i + + + + + + fct_colorize(record, column) + + + + \ No newline at end of file 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 new file mode 100644 index 00000000..4d425fd9 --- /dev/null +++ b/web_tree_dynamic_colored_field/views/web_tree_dynamic_colored_field.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file