From 366cb8325b70a06fb6e7dc4585a0255101aabc6d Mon Sep 17 00:00:00 2001 From: Damien Crier Date: Fri, 24 Jul 2015 08:59:42 +0200 Subject: [PATCH] [ADD] add module 'web_widget_color_tree_field' --- web_widget_color_tree_field/README.rst | 80 +++++++++++++++++ web_widget_color_tree_field/__init__.py | 20 +++++ web_widget_color_tree_field/__openerp__.py | 36 ++++++++ .../static/js/web_widget_color_tree_field.js | 86 +++++++++++++++++++ .../xml/web_widget_color_tree_field.xml | 11 +++ .../views/web_widget_color_tree_field.xml | 12 +++ 6 files changed, 245 insertions(+) create mode 100644 web_widget_color_tree_field/README.rst create mode 100644 web_widget_color_tree_field/__init__.py create mode 100644 web_widget_color_tree_field/__openerp__.py create mode 100644 web_widget_color_tree_field/static/js/web_widget_color_tree_field.js create mode 100644 web_widget_color_tree_field/static/xml/web_widget_color_tree_field.xml create mode 100644 web_widget_color_tree_field/views/web_widget_color_tree_field.xml diff --git a/web_widget_color_tree_field/README.rst b/web_widget_color_tree_field/README.rst new file mode 100644 index 00000000..90174e3d --- /dev/null +++ b/web_widget_color_tree_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_widget_color_tree_field/__init__.py b/web_widget_color_tree_field/__init__.py new file mode 100644 index 00000000..c82f5352 --- /dev/null +++ b/web_widget_color_tree_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_widget_color_tree_field/__openerp__.py b/web_widget_color_tree_field/__openerp__.py new file mode 100644 index 00000000..47bac87d --- /dev/null +++ b/web_widget_color_tree_field/__openerp__.py @@ -0,0 +1,36 @@ +# -*- 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_widget_color_tree_field', + 'category': 'Hidden', + 'version': '1.0', + 'depends': ['web'], + 'author': "Camptocamp,Odoo Community Association (OCA)", + 'license': 'AGPL-3', + 'website': 'http://www.camptocamp.com', + 'data': [ + 'views/web_widget_color_tree_field.xml', + ], + 'qweb': [ + 'static/xml/*.xml', + ], + 'auto_install': False +} diff --git a/web_widget_color_tree_field/static/js/web_widget_color_tree_field.js b/web_widget_color_tree_field/static/js/web_widget_color_tree_field.js new file mode 100644 index 00000000..4c12d800 --- /dev/null +++ b/web_widget_color_tree_field/static/js/web_widget_color_tree_field.js @@ -0,0 +1,86 @@ +openerp.web_widget_color_tree_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_widget_color_tree_field/views/web_widget_color_tree_field.xml b/web_widget_color_tree_field/views/web_widget_color_tree_field.xml new file mode 100644 index 00000000..f9381b93 --- /dev/null +++ b/web_widget_color_tree_field/views/web_widget_color_tree_field.xml @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file