From cd89ceef9aed766df8f8e180ddac488d8e59dd3a Mon Sep 17 00:00:00 2001 From: Stefan Rijnhart Date: Fri, 5 Dec 2014 19:02:10 +0100 Subject: [PATCH 01/28] web_tree_widget --- web_tree_image/__init__.py | 0 web_tree_image/__openerp__.py | 51 +++++++++++++++++++ .../static/src/js/web_tree_image.js | 34 +++++++++++++ web_tree_image/static/src/xml/widget.xml | 6 +++ web_tree_image/view/assets.xml | 10 ++++ 5 files changed, 101 insertions(+) create mode 100644 web_tree_image/__init__.py create mode 100644 web_tree_image/__openerp__.py create mode 100644 web_tree_image/static/src/js/web_tree_image.js create mode 100644 web_tree_image/static/src/xml/widget.xml create mode 100644 web_tree_image/view/assets.xml diff --git a/web_tree_image/__init__.py b/web_tree_image/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/web_tree_image/__openerp__.py b/web_tree_image/__openerp__.py new file mode 100644 index 00000000..b82000eb --- /dev/null +++ b/web_tree_image/__openerp__.py @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# This module copyright (C) 2014 Therp BV (). +# +# 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": "Show images in tree views", + "version": "1.0", + "author": "Therp BV", + "description": """\ +This module defines a tree image widget, to be used with function fields of +type character. Use widget='tree_image' in your view definition. Optionally, set +a 'height' tag. Default height is 16px. + +The content of the field can be any of the following: + +* the absolute or relative location of an image. For example, \ +"//static/src/img/youricon.png" + +* a standard icon from the web distribution, without path or extension, For \ +example, 'gtk-open' + +* A dynamic image in a data url base 64 format. To show a regular image field \ +from the model, use a function field wrapper that retrieves the image with \ +bin_size=False in the context, and prefix with 'data:image/png;base64,' + """, + 'depends': [ + 'web', + ], + 'qweb': [ + 'static/src/xml/widget.xml', + ], + 'data': [ + 'view/assets.xml', + ], +} diff --git a/web_tree_image/static/src/js/web_tree_image.js b/web_tree_image/static/src/js/web_tree_image.js new file mode 100644 index 00000000..cd97d39b --- /dev/null +++ b/web_tree_image/static/src/js/web_tree_image.js @@ -0,0 +1,34 @@ +/* + OpenERP, Open Source Management Solution + This module copyright (C) 2014 Therp BV (). + + 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 . +*/ + +openerp.web_tree_image = function (instance) { + instance.web.list.Image = instance.web.list.Column.extend({ + /* Return an image tag */ + format: function (row_data, options) { + if (!row_data[this.id] || !row_data[this.id].value) { return ''; } + var src; + if (!/\//.test(row_data[this.id].value)) { + src = '/web/static/src/img/icons/' + row_data[this.id].value + '.png'; + } else { + src = row_data[this.id].value; + } + return instance.web.qweb.render('ListView.row.image', {widget: this, src: src}); + } + }); + instance.web.list.columns.add('field.tree_image', 'instance.web.list.Image'); +}; diff --git a/web_tree_image/static/src/xml/widget.xml b/web_tree_image/static/src/xml/widget.xml new file mode 100644 index 00000000..cbd1bc0b --- /dev/null +++ b/web_tree_image/static/src/xml/widget.xml @@ -0,0 +1,6 @@ + + + + diff --git a/web_tree_image/view/assets.xml b/web_tree_image/view/assets.xml new file mode 100644 index 00000000..fa79d63e --- /dev/null +++ b/web_tree_image/view/assets.xml @@ -0,0 +1,10 @@ + + + + + + From 9fed86b65baadeb43e4c3d832ca18e989835ae1e Mon Sep 17 00:00:00 2001 From: Stefan Rijnhart Date: Fri, 5 Dec 2014 19:27:37 +0100 Subject: [PATCH 02/28] Handle binary fields. Courtesy of Marcel van der Boom --- web_tree_image/__openerp__.py | 17 ++++++----- .../static/src/js/web_tree_image.js | 30 ++++++++++++++----- 2 files changed, 33 insertions(+), 14 deletions(-) diff --git a/web_tree_image/__openerp__.py b/web_tree_image/__openerp__.py index b82000eb..c16c1ebc 100644 --- a/web_tree_image/__openerp__.py +++ b/web_tree_image/__openerp__.py @@ -4,6 +4,9 @@ # OpenERP, Open Source Management Solution # This module copyright (C) 2014 Therp BV (). # +# Snippet from https://github.com/hsd/listview_images +# Copyright (C) 2013 Marcel van der Boom +# # 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 @@ -23,11 +26,12 @@ "version": "1.0", "author": "Therp BV", "description": """\ -This module defines a tree image widget, to be used with function fields of -type character. Use widget='tree_image' in your view definition. Optionally, set -a 'height' tag. Default height is 16px. +This module defines a tree image widget, to be used with either binary fields +or function fields of type character. Use widget='tree_image' in your view +definition. Optionally, set a 'height' tag. Default height is 16px. -The content of the field can be any of the following: +If you use the widget with a character field, the content of the field can be +any of the following: * the absolute or relative location of an image. For example, \ "//static/src/img/youricon.png" @@ -35,9 +39,8 @@ The content of the field can be any of the following: * a standard icon from the web distribution, without path or extension, For \ example, 'gtk-open' -* A dynamic image in a data url base 64 format. To show a regular image field \ -from the model, use a function field wrapper that retrieves the image with \ -bin_size=False in the context, and prefix with 'data:image/png;base64,' +* A dynamic image in a data url base 64 format. Prefix with \ +'data:image/png;base64,' """, 'depends': [ 'web', diff --git a/web_tree_image/static/src/js/web_tree_image.js b/web_tree_image/static/src/js/web_tree_image.js index cd97d39b..f161a2d5 100644 --- a/web_tree_image/static/src/js/web_tree_image.js +++ b/web_tree_image/static/src/js/web_tree_image.js @@ -1,6 +1,7 @@ /* OpenERP, Open Source Management Solution - This module copyright (C) 2014 Therp BV (). + This module copyright (C) 2014 Therp BV () + (C) 2013 Marcel van der Boom This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as @@ -18,14 +19,29 @@ openerp.web_tree_image = function (instance) { instance.web.list.Image = instance.web.list.Column.extend({ - /* Return an image tag */ format: function (row_data, options) { - if (!row_data[this.id] || !row_data[this.id].value) { return ''; } - var src; - if (!/\//.test(row_data[this.id].value)) { - src = '/web/static/src/img/icons/' + row_data[this.id].value + '.png'; + /* Return a valid img tag. For image fields, test if the + field's value contains just the binary size and retrieve + the image from the dedicated controller in that case. + Otherwise, assume a character field containing either a + stock Odoo icon name without path or extension or a fully + fledged location or data url */ + if (!row_data[this.id] || !row_data[this.id].value) { + return ''; + } + var value = row_data[this.id].value, src; + if (this.type === 'binary') { + if (value && value.substr(0, 10).indexOf(' ') === -1) { + src = "data:image/png;base64," + value; + } else { + src = instance.session.url('/web/binary/image', {model: options.model, field: this.id, id: options.id}); + } } else { - src = row_data[this.id].value; + if (!/\//.test(row_data[this.id].value)) { + src = '/web/static/src/img/icons/' + row_data[this.id].value + '.png'; + } else { + src = row_data[this.id].value; + } } return instance.web.qweb.render('ListView.row.image', {widget: this, src: src}); } From 3a2a14f503c34eb94a96d30859f21a390584dc0c Mon Sep 17 00:00:00 2001 From: Stefan Rijnhart Date: Fri, 5 Dec 2014 19:30:01 +0100 Subject: [PATCH 03/28] manifest --- web_tree_image/__openerp__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/web_tree_image/__openerp__.py b/web_tree_image/__openerp__.py index c16c1ebc..4d77d720 100644 --- a/web_tree_image/__openerp__.py +++ b/web_tree_image/__openerp__.py @@ -42,6 +42,7 @@ example, 'gtk-open' * A dynamic image in a data url base 64 format. Prefix with \ 'data:image/png;base64,' """, + 'url': 'https://github.com/OCA/Web', 'depends': [ 'web', ], From 46d22b82d3e094a165dee5d59ce5da990d2b2124 Mon Sep 17 00:00:00 2001 From: Stefan Rijnhart Date: Fri, 5 Dec 2014 19:46:11 +0100 Subject: [PATCH 04/28] Module description --- web_tree_image/__openerp__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_tree_image/__openerp__.py b/web_tree_image/__openerp__.py index 4d77d720..134f9514 100644 --- a/web_tree_image/__openerp__.py +++ b/web_tree_image/__openerp__.py @@ -27,7 +27,7 @@ "author": "Therp BV", "description": """\ This module defines a tree image widget, to be used with either binary fields -or function fields of type character. Use widget='tree_image' in your view +or (function) fields of type character. Use widget='tree_image' in your view definition. Optionally, set a 'height' tag. Default height is 16px. If you use the widget with a character field, the content of the field can be From d7ff0036cee669b79a26e89a8eef64a07dfda0b2 Mon Sep 17 00:00:00 2001 From: Stefan Rijnhart Date: Mon, 8 Dec 2014 10:28:21 +0100 Subject: [PATCH 05/28] Move module description to README [FIX] rst line endings [IMP] Comment on arbitrary media subtype --- web_tree_image/README.rst | 18 ++++++++++++++++++ web_tree_image/__openerp__.py | 17 ----------------- web_tree_image/static/src/js/web_tree_image.js | 1 + 3 files changed, 19 insertions(+), 17 deletions(-) create mode 100644 web_tree_image/README.rst diff --git a/web_tree_image/README.rst b/web_tree_image/README.rst new file mode 100644 index 00000000..502be0d8 --- /dev/null +++ b/web_tree_image/README.rst @@ -0,0 +1,18 @@ +Display images and icons in tree view +===================================== + +This module defines a tree image widget, to be used with either binary fields +or (function) fields of type character. Use widget='tree_image' in your view +definition. Optionally, set a 'height' tag. Default height is 16px. + +If you use the widget with a character field, the content of the field can be +any of the following: + +* the absolute or relative location of an image. For example, + "//static/src/img/youricon.png" + +* a standard icon from the web distribution, without path or extension, For + example, 'gtk-open' + +* A dynamic image in a data url base 64 format. Prefix with + 'data:image/png;base64,' diff --git a/web_tree_image/__openerp__.py b/web_tree_image/__openerp__.py index 134f9514..ae8c726d 100644 --- a/web_tree_image/__openerp__.py +++ b/web_tree_image/__openerp__.py @@ -25,23 +25,6 @@ "name": "Show images in tree views", "version": "1.0", "author": "Therp BV", - "description": """\ -This module defines a tree image widget, to be used with either binary fields -or (function) fields of type character. Use widget='tree_image' in your view -definition. Optionally, set a 'height' tag. Default height is 16px. - -If you use the widget with a character field, the content of the field can be -any of the following: - -* the absolute or relative location of an image. For example, \ -"//static/src/img/youricon.png" - -* a standard icon from the web distribution, without path or extension, For \ -example, 'gtk-open' - -* A dynamic image in a data url base 64 format. Prefix with \ -'data:image/png;base64,' - """, 'url': 'https://github.com/OCA/Web', 'depends': [ 'web', diff --git a/web_tree_image/static/src/js/web_tree_image.js b/web_tree_image/static/src/js/web_tree_image.js index f161a2d5..1ecaab6e 100644 --- a/web_tree_image/static/src/js/web_tree_image.js +++ b/web_tree_image/static/src/js/web_tree_image.js @@ -32,6 +32,7 @@ openerp.web_tree_image = function (instance) { var value = row_data[this.id].value, src; if (this.type === 'binary') { if (value && value.substr(0, 10).indexOf(' ') === -1) { + // The media subtype (png) seems to be arbitrary src = "data:image/png;base64," + value; } else { src = instance.session.url('/web/binary/image', {model: options.model, field: this.id, id: options.id}); From 643554fb76dd5351be8398f8d97b308bc9309af0 Mon Sep 17 00:00:00 2001 From: Stefan Rijnhart Date: Mon, 8 Dec 2014 10:34:32 +0100 Subject: [PATCH 06/28] Widget name 'image' instead of 'tree_image' --- web_tree_image/README.rst | 2 +- web_tree_image/static/src/js/web_tree_image.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/web_tree_image/README.rst b/web_tree_image/README.rst index 502be0d8..83cde6c5 100644 --- a/web_tree_image/README.rst +++ b/web_tree_image/README.rst @@ -2,7 +2,7 @@ Display images and icons in tree view ===================================== This module defines a tree image widget, to be used with either binary fields -or (function) fields of type character. Use widget='tree_image' in your view +or (function) fields of type character. Use widget='image' in your view definition. Optionally, set a 'height' tag. Default height is 16px. If you use the widget with a character field, the content of the field can be diff --git a/web_tree_image/static/src/js/web_tree_image.js b/web_tree_image/static/src/js/web_tree_image.js index 1ecaab6e..f08bf204 100644 --- a/web_tree_image/static/src/js/web_tree_image.js +++ b/web_tree_image/static/src/js/web_tree_image.js @@ -47,5 +47,5 @@ openerp.web_tree_image = function (instance) { return instance.web.qweb.render('ListView.row.image', {widget: this, src: src}); } }); - instance.web.list.columns.add('field.tree_image', 'instance.web.list.Image'); + instance.web.list.columns.add('field.image', 'instance.web.list.Image'); }; From 3098619110b63e68335d509f5374e4dd4b00fdf6 Mon Sep 17 00:00:00 2001 From: Stefan Rijnhart Date: Mon, 8 Dec 2014 11:25:30 +0100 Subject: [PATCH 07/28] Capitalization consistency --- web_tree_image/README.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/web_tree_image/README.rst b/web_tree_image/README.rst index 83cde6c5..7dc396ad 100644 --- a/web_tree_image/README.rst +++ b/web_tree_image/README.rst @@ -8,10 +8,10 @@ definition. Optionally, set a 'height' tag. Default height is 16px. If you use the widget with a character field, the content of the field can be any of the following: -* the absolute or relative location of an image. For example, +* The absolute or relative location of an image. For example, "//static/src/img/youricon.png" -* a standard icon from the web distribution, without path or extension, For +* A standard icon from the web distribution, without path or extension, For example, 'gtk-open' * A dynamic image in a data url base 64 format. Prefix with From fbac029c481b99c189cf56a82c486a1ea8df8f88 Mon Sep 17 00:00:00 2001 From: Alexandre Fayolle Date: Mon, 2 Mar 2015 17:29:19 +0100 Subject: [PATCH 08/28] Add OCA as author of OCA addons In order to get visibility on https://www.odoo.com/apps the OCA board has decided to add the OCA as author of all the addons maintained as part of the association. --- web_tree_image/__openerp__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_tree_image/__openerp__.py b/web_tree_image/__openerp__.py index ae8c726d..50a87930 100644 --- a/web_tree_image/__openerp__.py +++ b/web_tree_image/__openerp__.py @@ -24,7 +24,7 @@ { "name": "Show images in tree views", "version": "1.0", - "author": "Therp BV", + "author": "Therp BV,Odoo Community Association (OCA)", 'url': 'https://github.com/OCA/Web', 'depends': [ 'web', From 6117ee69aae872407152dcc5ba1885f88444538c Mon Sep 17 00:00:00 2001 From: Yannick Vaucher Date: Tue, 18 Aug 2015 11:09:01 +0200 Subject: [PATCH 09/28] Add missing default oca icons --- web_tree_image/static/description/icon.png | Bin 0 -> 9455 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 web_tree_image/static/description/icon.png diff --git a/web_tree_image/static/description/icon.png b/web_tree_image/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 zcmW++2RxMjAAjx~&dlBk9S+%}OXg)AGE&Cb*&}d0jUxM@u(PQx^-s)697TX`ehR4?GS^qbkof1cslKgkU)h65qZ9Oc=ml_0temigYLJfnz{IDzUf>bGs4N!v3=Z3jMq&A#7%rM5eQ#dc?k~! zVpnB`o+K7|Al`Q_U;eD$B zfJtP*jH`siUq~{KE)`jP2|#TUEFGRryE2`i0**z#*^6~AI|YzIWy$Cu#CSLW3q=GA z6`?GZymC;dCPk~rBS%eCb`5OLr;RUZ;D`}um=H)BfVIq%7VhiMr)_#G0N#zrNH|__ zc+blN2UAB0=617@>_u;MPHN;P;N#YoE=)R#i$k_`UAA>WWCcEVMh~L_ zj--gtp&|K1#58Yz*AHCTMziU1Jzt_jG0I@qAOHsk$2}yTmVkBp_eHuY$A9)>P6o~I z%aQ?!(GqeQ-Y+b0I(m9pwgi(IIZZzsbMv+9w{PFtd_<_(LA~0H(xz{=FhLB@(1&qHA5EJw1>>=%q2f&^X>IQ{!GJ4e9U z&KlB)z(84HmNgm2hg2C0>WM{E(DdPr+EeU_N@57;PC2&DmGFW_9kP&%?X4}+xWi)( z;)z%wI5>D4a*5XwD)P--sPkoY(a~WBw;E~AW`Yue4kFa^LM3X`8x|}ZUeMnqr}>kH zG%WWW>3ml$Yez?i%)2pbKPI7?5o?hydokgQyZsNEr{a|mLdt;X2TX(#B1j35xPnPW z*bMSSOauW>o;*=kO8ojw91VX!qoOQb)zHJ!odWB}d+*K?#sY_jqPdg{Sm2HdYzdEx zOGVPhVRTGPtv0o}RfVP;Nd(|CB)I;*t&QO8h zFfekr30S!-LHmV_Su-W+rEwYXJ^;6&3|L$mMC8*bQptyOo9;>Qb9Q9`ySe3%V$A*9 zeKEe+b0{#KWGp$F+tga)0RtI)nhMa-K@JS}2krK~n8vJ=Ngm?R!9G<~RyuU0d?nz# z-5EK$o(!F?hmX*2Yt6+coY`6jGbb7tF#6nHA zuKk=GGJ;ZwON1iAfG$E#Y7MnZVmrY|j0eVI(DN_MNFJmyZ|;w4tf@=CCDZ#5N_0K= z$;R~bbk?}TpfDjfB&aiQ$VA}s?P}xPERJG{kxk5~R`iRS(SK5d+Xs9swCozZISbnS zk!)I0>t=A<-^z(cmSFz3=jZ23u13X><0b)P)^1T_))Kr`e!-pb#q&J*Q`p+B6la%C zuVl&0duN<;uOsB3%T9Fp8t{ED108<+W(nOZd?gDnfNBC3>M8WE61$So|P zVvqH0SNtDTcsUdzaMDpT=Ty0pDHHNL@Z0w$Y`XO z2M-_r1S+GaH%pz#Uy0*w$Vdl=X=rQXEzO}d6J^R6zjM1u&c9vYLvLp?W7w(?np9x1 zE_0JSAJCPB%i7p*Wvg)pn5T`8k3-uR?*NT|J`eS#_#54p>!p(mLDvmc-3o0mX*mp_ zN*AeS<>#^-{S%W<*mz^!X$w_2dHWpcJ6^j64qFBft-o}o_Vx80o0>}Du;>kLts;$8 zC`7q$QI(dKYG`Wa8#wl@V4jVWBRGQ@1dr-hstpQL)Tl+aqVpGpbSfN>5i&QMXfiZ> zaA?T1VGe?rpQ@;+pkrVdd{klI&jVS@I5_iz!=UMpTsa~mBga?1r}aRBm1WS;TT*s0f0lY=JBl66Upy)-k4J}lh=P^8(SXk~0xW=T9v*B|gzIhN z>qsO7dFd~mgxAy4V?&)=5ieYq?zi?ZEoj)&2o)RLy=@hbCRcfT5jigwtQGE{L*8<@Yd{zg;CsL5mvzfDY}P-wos_6PfprFVaeqNE%h zKZhLtcQld;ZD+>=nqN~>GvROfueSzJD&BE*}XfU|H&(FssBqY=hPCt`d zH?@s2>I(|;fcW&YM6#V#!kUIP8$Nkdh0A(bEVj``-AAyYgwY~jB zT|I7Bf@%;7aL7Wf4dZ%VqF$eiaC38OV6oy3Z#TER2G+fOCd9Iaoy6aLYbPTN{XRPz z;U!V|vBf%H!}52L2gH_+j;`bTcQRXB+y9onc^wLm5wi3-Be}U>k_u>2Eg$=k!(l@I zcCg+flakT2Nej3i0yn+g+}%NYb?ta;R?(g5SnwsQ49U8Wng8d|{B+lyRcEDvR3+`O{zfmrmvFrL6acVP%yG98X zo&+VBg@px@i)%o?dG(`T;n*$S5*rnyiR#=wW}}GsAcfyQpE|>a{=$Hjg=-*_K;UtD z#z-)AXwSRY?OPefw^iI+ z)AXz#PfEjlwTes|_{sB?4(O@fg0AJ^g8gP}ex9Ucf*@_^J(s_5jJV}c)s$`Myn|Kd z$6>}#q^n{4vN@+Os$m7KV+`}c%4)4pv@06af4-x5#wj!KKb%caK{A&Y#Rfs z-po?Dcb1({W=6FKIUirH&(yg=*6aLCekcKwyfK^JN5{wcA3nhO(o}SK#!CINhI`-I z1)6&n7O&ZmyFMuNwvEic#IiOAwNkR=u5it{B9n2sAJV5pNhar=j5`*N!Na;c7g!l$ z3aYBqUkqqTJ=Re-;)s!EOeij=7SQZ3Hq}ZRds%IM*PtM$wV z@;rlc*NRK7i3y5BETSKuumEN`Xu_8GP1Ri=OKQ$@I^ko8>H6)4rjiG5{VBM>B|%`&&s^)jS|-_95&yc=GqjNo{zFkw%%HHhS~e=s zD#sfS+-?*t|J!+ozP6KvtOl!R)@@-z24}`9{QaVLD^9VCSR2b`b!KC#o;Ki<+wXB6 zx3&O0LOWcg4&rv4QG0)4yb}7BFSEg~=IR5#ZRj8kg}dS7_V&^%#Do==#`u zpy6{ox?jWuR(;pg+f@mT>#HGWHAJRRDDDv~@(IDw&R>9643kK#HN`!1vBJHnC+RM&yIh8{gG2q zA%e*U3|N0XSRa~oX-3EAneep)@{h2vvd3Xvy$7og(sayr@95+e6~Xvi1tUqnIxoIH zVWo*OwYElb#uyW{Imam6f2rGbjR!Y3`#gPqkv57dB6K^wRGxc9B(t|aYDGS=m$&S!NmCtrMMaUg(c zc2qC=2Z`EEFMW-me5B)24AqF*bV5Dr-M5ig(l-WPS%CgaPzs6p_gnCIvTJ=Y<6!gT zVt@AfYCzjjsMEGi=rDQHo0yc;HqoRNnNFeWZgcm?f;cp(6CNylj36DoL(?TS7eU#+ z7&mfr#y))+CJOXQKUMZ7QIdS9@#-}7y2K1{8)cCt0~-X0O!O?Qx#E4Og+;A2SjalQ zs7r?qn0H044=sDN$SRG$arw~n=+T_DNdSrarmu)V6@|?1-ZB#hRn`uilTGPJ@fqEy zGt(f0B+^JDP&f=r{#Y_wi#AVDf-y!RIXU^0jXsFpf>=Ji*TeqSY!H~AMbJdCGLhC) zn7Rx+sXw6uYj;WRYrLd^5IZq@6JI1C^YkgnedZEYy<&4(z%Q$5yv#Boo{AH8n$a zhb4Y3PWdr269&?V%uI$xMcUrMzl=;w<_nm*qr=c3Rl@i5wWB;e-`t7D&c-mcQl7x! zZWB`UGcw=Y2=}~wzrfLx=uet<;m3~=8I~ZRuzvMQUQdr+yTV|ATf1Uuomr__nDf=X zZ3WYJtHp_ri(}SQAPjv+Y+0=fH4krOP@S&=zZ-t1jW1o@}z;xk8 z(Nz1co&El^HK^NrhVHa-_;&88vTU>_J33=%{if;BEY*J#1n59=07jrGQ#IP>@u#3A z;!q+E1Rj3ZJ+!4bq9F8PXJ@yMgZL;>&gYA0%_Kbi8?S=XGM~dnQZQ!yBSgcZhY96H zrWnU;k)qy`rX&&xlDyA%(a1Hhi5CWkmg(`Gb%m(HKi-7Z!LKGRP_B8@`7&hdDy5n= z`OIxqxiVfX@OX1p(mQu>0Ai*v_cTMiw4qRt3~NBvr9oBy0)r>w3p~V0SCm=An6@3n)>@z!|o-$HvDK z|3D2ZMJkLE5loMKl6R^ez@Zz%S$&mbeoqH5`Bb){Ei21q&VP)hWS2tjShfFtGE+$z zzCR$P#uktu+#!w)cX!lWN1XU%K-r=s{|j?)Akf@q#3b#{6cZCuJ~gCxuMXRmI$nGtnH+-h z+GEi!*X=AP<|fG`1>MBdTb?28JYc=fGvAi2I<$B(rs$;eoJCyR6_bc~p!XR@O-+sD z=eH`-ye})I5ic1eL~TDmtfJ|8`0VJ*Yr=hNCd)G1p2MMz4C3^Mj?7;!w|Ly%JqmuW zlIEW^Ft%z?*|fpXda>Jr^1noFZEwFgVV%|*XhH@acv8rdGxeEX{M$(vG{Zw+x(ei@ zmfXb22}8-?Fi`vo-YVrTH*C?a8%M=Hv9MqVH7H^J$KsD?>!SFZ;ZsvnHr_gn=7acz z#W?0eCdVhVMWN12VV^$>WlQ?f;P^{(&pYTops|btm6aj>_Uz+hqpGwB)vWp0Cf5y< zft8-je~nn?W11plq}N)4A{l8I7$!ks_x$PXW-2XaRFswX_BnF{R#6YIwMhAgd5F9X zGmwdadS6(a^fjHtXg8=l?Rc0Sm%hk6E9!5cLVloEy4eh(=FwgP`)~I^5~pBEWo+F6 zSf2ncyMurJN91#cJTy_u8Y}@%!bq1RkGC~-bV@SXRd4F{R-*V`bS+6;W5vZ(&+I<9$;-V|eNfLa5n-6% z2(}&uGRF;p92eS*sE*oR$@pexaqr*meB)VhmIg@h{uzkk$9~qh#cHhw#>O%)b@+(| z^IQgqzuj~Sk(J;swEM-3TrJAPCq9k^^^`q{IItKBRXYe}e0Tdr=Huf7da3$l4PdpwWDop%^}n;dD#K4s#DYA8SHZ z&1!riV4W4R7R#C))JH1~axJ)RYnM$$lIR%6fIVA@zV{XVyx}C+a-Dt8Y9M)^KU0+H zR4IUb2CJ{Hg>CuaXtD50jB(_Tcx=Z$^WYu2u5kubqmwp%drJ6 z?Fo40g!Qd<-l=TQxqHEOuPX0;^z7iX?Ke^a%XT<13TA^5`4Xcw6D@Ur&VT&CUe0d} z1GjOVF1^L@>O)l@?bD~$wzgf(nxX1OGD8fEV?TdJcZc2KoUe|oP1#=$$7ee|xbY)A zDZq+cuTpc(fFdj^=!;{k03C69lMQ(|>uhRfRu%+!k&YOi-3|1QKB z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 From a0f41ff1a10173ede1df4eca14d56b51699c0086 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul?= Date: Fri, 9 Oct 2015 10:03:39 +0200 Subject: [PATCH 10/28] prefix versions with 8.0 --- web_tree_image/__openerp__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_tree_image/__openerp__.py b/web_tree_image/__openerp__.py index 50a87930..e21754ef 100644 --- a/web_tree_image/__openerp__.py +++ b/web_tree_image/__openerp__.py @@ -23,7 +23,7 @@ ############################################################################## { "name": "Show images in tree views", - "version": "1.0", + "version": "8.0.1.0.0", "author": "Therp BV,Odoo Community Association (OCA)", 'url': 'https://github.com/OCA/Web', 'depends': [ From 0db459d96d090f8e2fa18b2932787f1e5c461c2d Mon Sep 17 00:00:00 2001 From: Leonardo Donelli Date: Fri, 9 Oct 2015 16:12:37 +0200 Subject: [PATCH 11/28] Add support resize option set resize="," in the field tag definition to make the server return a resized version of the image. Useful for saving bandwidth when dealing with large images and to have uniform image sizes (aspect ratio is mantained by filling emtpy areas with transparent background) --- web_tree_image/static/src/js/web_tree_image.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/web_tree_image/static/src/js/web_tree_image.js b/web_tree_image/static/src/js/web_tree_image.js index f08bf204..a533e583 100644 --- a/web_tree_image/static/src/js/web_tree_image.js +++ b/web_tree_image/static/src/js/web_tree_image.js @@ -35,7 +35,15 @@ openerp.web_tree_image = function (instance) { // The media subtype (png) seems to be arbitrary src = "data:image/png;base64," + value; } else { - src = instance.session.url('/web/binary/image', {model: options.model, field: this.id, id: options.id}); + var imageArgs = { + model: options.model, + field: this.id, + id: options.id + } + if (this.resize) { + imageArgs.resize = this.resize; + } + src = instance.session.url('/web/binary/image', imageArgs); } } else { if (!/\//.test(row_data[this.id].value)) { From f22440fdd28087217b56a3f24473288bb978ece6 Mon Sep 17 00:00:00 2001 From: Leonardo Donelli Date: Fri, 9 Oct 2015 16:34:28 +0200 Subject: [PATCH 12/28] Version bump, update README --- web_tree_image/README.rst | 38 +++++++++++++++++++++++++++++++++-- web_tree_image/__openerp__.py | 11 ++++++---- 2 files changed, 43 insertions(+), 6 deletions(-) diff --git a/web_tree_image/README.rst b/web_tree_image/README.rst index 7dc396ad..4e96f8aa 100644 --- a/web_tree_image/README.rst +++ b/web_tree_image/README.rst @@ -1,9 +1,13 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :alt: License: AGPL-3 + +===================================== Display images and icons in tree view ===================================== This module defines a tree image widget, to be used with either binary fields -or (function) fields of type character. Use widget='image' in your view -definition. Optionally, set a 'height' tag. Default height is 16px. +or (function) fields of type character. Use ``widget='image'`` in your view +definition. Optionally, set a ``height`` attribute. Default height is 16px. If you use the widget with a character field, the content of the field can be any of the following: @@ -16,3 +20,33 @@ any of the following: * A dynamic image in a data url base 64 format. Prefix with 'data:image/png;base64,' + +Usage +===== + +This module defines a new widget type for tree views columns. + +Set the attribute ``widget=image`` in a ``field`` tag in a tree view. +You can also set ``height=`` to set the height the image will have. +Note that this just sets the CSS ``max-height`` attribute, +if you want to make the server return a resized, maybe to save data by making it +return a smaller one or to have uniform images, use the +``resize=","`` attribute. + +Credits +======= + +Contributors +------------ + +* Stefan Rijnhart +* Leonardo Donelli + +Maintainer +---------- + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +This module is maintained by the OCA. diff --git a/web_tree_image/__openerp__.py b/web_tree_image/__openerp__.py index e21754ef..37885fdf 100644 --- a/web_tree_image/__openerp__.py +++ b/web_tree_image/__openerp__.py @@ -3,6 +3,7 @@ # # OpenERP, Open Source Management Solution # This module copyright (C) 2014 Therp BV (). +# copyright (C) 2015 Leonardo Donelli @ MONKSoftware # # Snippet from https://github.com/hsd/listview_images # Copyright (C) 2013 Marcel van der Boom @@ -22,10 +23,12 @@ # ############################################################################## { - "name": "Show images in tree views", - "version": "8.0.1.0.0", - "author": "Therp BV,Odoo Community Association (OCA)", - 'url': 'https://github.com/OCA/Web', + 'name': 'Show images in tree views', + 'version': '8.0.1.1.0', + 'author': 'Therp BV, MONK Software, Odoo Community Association (OCA)', + 'website': 'https://github.com/OCA/Web', + 'license': 'AGPL-3', + 'category': 'Web', 'depends': [ 'web', ], From 0f155d2a6c3894336b380c4e59efe22cadf23f9c Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Wed, 14 Oct 2015 02:57:05 +0200 Subject: [PATCH 13/28] Make modules uninstallable --- web_tree_image/__openerp__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/web_tree_image/__openerp__.py b/web_tree_image/__openerp__.py index 37885fdf..05b692e7 100644 --- a/web_tree_image/__openerp__.py +++ b/web_tree_image/__openerp__.py @@ -38,4 +38,5 @@ 'data': [ 'view/assets.xml', ], + 'installable': False, } From 42d24e488a3a0002d587b9d4a1a6e3cb542bc249 Mon Sep 17 00:00:00 2001 From: "Serpent Consulting Services Pvt. Ltd" Date: Fri, 10 Jun 2016 19:36:04 +0530 Subject: [PATCH 14/28] Migrated web tree image module to v9 --- web_tree_image/README.rst | 2 ++ web_tree_image/__openerp__.py | 12 +++++++--- .../static/src/js/web_tree_image.js | 22 ++++++++++++++----- 3 files changed, 27 insertions(+), 9 deletions(-) diff --git a/web_tree_image/README.rst b/web_tree_image/README.rst index 4e96f8aa..40797dd9 100644 --- a/web_tree_image/README.rst +++ b/web_tree_image/README.rst @@ -41,6 +41,8 @@ Contributors * Stefan Rijnhart * Leonardo Donelli +* Jay Vora +* Meet Dholakia Maintainer ---------- diff --git a/web_tree_image/__openerp__.py b/web_tree_image/__openerp__.py index 05b692e7..86eb0eff 100644 --- a/web_tree_image/__openerp__.py +++ b/web_tree_image/__openerp__.py @@ -8,6 +8,9 @@ # Snippet from https://github.com/hsd/listview_images # Copyright (C) 2013 Marcel van der Boom # +# Copyright (C) 2016 Serpent Consulting Services Pvt. Ltd. +# () +# # 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 @@ -24,8 +27,11 @@ ############################################################################## { 'name': 'Show images in tree views', - 'version': '8.0.1.1.0', - 'author': 'Therp BV, MONK Software, Odoo Community Association (OCA)', + 'version': '9.0.1.1.0', + 'author': "Therp BV, " + "MONK Software, " + "Odoo Community Association (OCA), " + "Serpent Consulting Services Pvt. Ltd.", 'website': 'https://github.com/OCA/Web', 'license': 'AGPL-3', 'category': 'Web', @@ -38,5 +44,5 @@ 'data': [ 'view/assets.xml', ], - 'installable': False, + 'installable': True, } diff --git a/web_tree_image/static/src/js/web_tree_image.js b/web_tree_image/static/src/js/web_tree_image.js index a533e583..92d02f12 100644 --- a/web_tree_image/static/src/js/web_tree_image.js +++ b/web_tree_image/static/src/js/web_tree_image.js @@ -2,6 +2,8 @@ OpenERP, Open Source Management Solution This module copyright (C) 2014 Therp BV () (C) 2013 Marcel van der Boom + Copyright (C) 2016 Serpent Consulting Services Pvt. Ltd. + () This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as @@ -17,8 +19,14 @@ along with this program. If not, see . */ -openerp.web_tree_image = function (instance) { - instance.web.list.Image = instance.web.list.Column.extend({ +odoo.define('web.tree_image', function (require) { + "use strict"; + var core = require('web.core'); + var session = require('web.session'); + var QWeb = core.qweb; + var list_widget_registry = core.list_widget_registry; + + var WebTreeImage = list_widget_registry.get('field.binary').extend({ format: function (row_data, options) { /* Return a valid img tag. For image fields, test if the field's value contains just the binary size and retrieve @@ -43,7 +51,7 @@ openerp.web_tree_image = function (instance) { if (this.resize) { imageArgs.resize = this.resize; } - src = instance.session.url('/web/binary/image', imageArgs); + src = session.url('/web/binary/image', imageArgs); } } else { if (!/\//.test(row_data[this.id].value)) { @@ -52,8 +60,10 @@ openerp.web_tree_image = function (instance) { src = row_data[this.id].value; } } - return instance.web.qweb.render('ListView.row.image', {widget: this, src: src}); + return QWeb.render('ListView.row.image', {widget: this, src: src}); } }); - instance.web.list.columns.add('field.image', 'instance.web.list.Image'); -}; + + list_widget_registry + .add('field.image', WebTreeImage) +}); From aa029db30e4de58882fefb4d227a72a8d41c76e7 Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Thu, 6 Oct 2016 16:12:54 +0200 Subject: [PATCH 15/28] Make modules uninstallable --- web_tree_image/__openerp__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web_tree_image/__openerp__.py b/web_tree_image/__openerp__.py index 86eb0eff..8642cafa 100644 --- a/web_tree_image/__openerp__.py +++ b/web_tree_image/__openerp__.py @@ -44,5 +44,5 @@ 'data': [ 'view/assets.xml', ], - 'installable': True, + 'installable': False, } From cbd73e5bb516e5c9c5bed1eecf3c4ecbbe8a3465 Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Thu, 6 Oct 2016 16:13:01 +0200 Subject: [PATCH 16/28] Rename manifest files --- web_tree_image/{__openerp__.py => __manifest__.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename web_tree_image/{__openerp__.py => __manifest__.py} (100%) diff --git a/web_tree_image/__openerp__.py b/web_tree_image/__manifest__.py similarity index 100% rename from web_tree_image/__openerp__.py rename to web_tree_image/__manifest__.py From 7f84516e5d6ff66c2fd8d156ad3c6d6cb29d9dfd Mon Sep 17 00:00:00 2001 From: Daniel Torres Date: Mon, 14 Nov 2016 05:27:24 -0200 Subject: [PATCH 17/28] web_tree_image: Porting to 10.0 (#464) --- web_tree_image/__manifest__.py | 4 ++-- web_tree_image/static/src/js/web_tree_image.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/web_tree_image/__manifest__.py b/web_tree_image/__manifest__.py index 8642cafa..db8f9fec 100644 --- a/web_tree_image/__manifest__.py +++ b/web_tree_image/__manifest__.py @@ -27,7 +27,7 @@ ############################################################################## { 'name': 'Show images in tree views', - 'version': '9.0.1.1.0', + 'version': '10.0.1.1.0', 'author': "Therp BV, " "MONK Software, " "Odoo Community Association (OCA), " @@ -44,5 +44,5 @@ 'data': [ 'view/assets.xml', ], - 'installable': False, + 'installable': True, } diff --git a/web_tree_image/static/src/js/web_tree_image.js b/web_tree_image/static/src/js/web_tree_image.js index 92d02f12..11b58201 100644 --- a/web_tree_image/static/src/js/web_tree_image.js +++ b/web_tree_image/static/src/js/web_tree_image.js @@ -19,7 +19,7 @@ along with this program. If not, see . */ -odoo.define('web.tree_image', function (require) { +odoo.define('web.WebTreeImage', function (require) { "use strict"; var core = require('web.core'); var session = require('web.session'); From bf2c4fd77f8d8709f2dee372d1cf03e678765846 Mon Sep 17 00:00:00 2001 From: oca-travis Date: Sun, 24 Jun 2018 01:39:40 +0000 Subject: [PATCH 18/28] Update web_tree_image.pot --- web_tree_image/i18n/web_tree_image.pot | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 web_tree_image/i18n/web_tree_image.pot diff --git a/web_tree_image/i18n/web_tree_image.pot b/web_tree_image/i18n/web_tree_image.pot new file mode 100644 index 00000000..b662aad9 --- /dev/null +++ b/web_tree_image/i18n/web_tree_image.pot @@ -0,0 +1,14 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + From 49e5dd34c199f70d38e63aed2c138bff04ab6eeb Mon Sep 17 00:00:00 2001 From: Nikul Chaudhary Date: Tue, 31 Jul 2018 13:00:32 +0530 Subject: [PATCH 19/28] web_tree_image v11 --- web_tree_image/README.rst | 13 ++-- web_tree_image/__manifest__.py | 36 ++-------- web_tree_image/static/src/js/tooltip.js | 17 +++++ .../static/src/js/web_tree_image.js | 69 ------------------- web_tree_image/static/src/less/common.less | 3 + web_tree_image/static/src/xml/widget.xml | 6 -- web_tree_image/view/assets.xml | 19 ++--- 7 files changed, 46 insertions(+), 117 deletions(-) create mode 100644 web_tree_image/static/src/js/tooltip.js delete mode 100644 web_tree_image/static/src/js/web_tree_image.js create mode 100644 web_tree_image/static/src/less/common.less delete mode 100644 web_tree_image/static/src/xml/widget.xml diff --git a/web_tree_image/README.rst b/web_tree_image/README.rst index 40797dd9..61ae8274 100644 --- a/web_tree_image/README.rst +++ b/web_tree_image/README.rst @@ -1,4 +1,4 @@ -.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.png :alt: License: AGPL-3 ===================================== @@ -7,7 +7,7 @@ Display images and icons in tree view This module defines a tree image widget, to be used with either binary fields or (function) fields of type character. Use ``widget='image'`` in your view -definition. Optionally, set a ``height`` attribute. Default height is 16px. +definition. Optionally, set a ``width`` attribute. Default width is 30px. If you use the widget with a character field, the content of the field can be any of the following: @@ -24,8 +24,6 @@ any of the following: Usage ===== -This module defines a new widget type for tree views columns. - Set the attribute ``widget=image`` in a ``field`` tag in a tree view. You can also set ``height=`` to set the height the image will have. Note that this just sets the CSS ``max-height`` attribute, @@ -43,6 +41,7 @@ Contributors * Leonardo Donelli * Jay Vora * Meet Dholakia +* Nikul Chaudhary Maintainer ---------- @@ -52,3 +51,9 @@ Maintainer :target: https://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 https://odoo-community.org. diff --git a/web_tree_image/__manifest__.py b/web_tree_image/__manifest__.py index db8f9fec..eb43f350 100644 --- a/web_tree_image/__manifest__.py +++ b/web_tree_image/__manifest__.py @@ -1,33 +1,14 @@ # -*- coding: utf-8 -*- -############################################################################## -# -# OpenERP, Open Source Management Solution -# This module copyright (C) 2014 Therp BV (). -# copyright (C) 2015 Leonardo Donelli @ MONKSoftware -# -# Snippet from https://github.com/hsd/listview_images -# Copyright (C) 2013 Marcel van der Boom -# -# Copyright (C) 2016 Serpent Consulting Services Pvt. Ltd. +# Copyright 2014 Therp BV (). +# Copyright 2015 Leonardo Donelli @ MONKSoftware +# Copyright 2013 Marcel van der Boom +# Copyright 2016 - TODAY Serpent Consulting Services Pvt. Ltd. # () -# -# 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 . -# -############################################################################## +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + { 'name': 'Show images in tree views', - 'version': '10.0.1.1.0', + 'version': '11.0.1.0.0', 'author': "Therp BV, " "MONK Software, " "Odoo Community Association (OCA), " @@ -38,9 +19,6 @@ 'depends': [ 'web', ], - 'qweb': [ - 'static/src/xml/widget.xml', - ], 'data': [ 'view/assets.xml', ], diff --git a/web_tree_image/static/src/js/tooltip.js b/web_tree_image/static/src/js/tooltip.js new file mode 100644 index 00000000..ca3ffaab --- /dev/null +++ b/web_tree_image/static/src/js/tooltip.js @@ -0,0 +1,17 @@ +odoo.define('web_tree_image.web_tree_image', function(require) { +"use strict"; + +var ListRenderer = require('web.ListRenderer'); + +ListRenderer.include({ + events: _.extend({}, ListRenderer.prototype.events, { + 'mouseover tbody tr td .o_field_image': '_onHoverRecord_img', + }), + _onHoverRecord_img: function (event) { + var img_src = $(event.currentTarget).children('.img-responsive').attr('src') + $(event.currentTarget).tooltip({ + title: "" + }); + } +}); +}) diff --git a/web_tree_image/static/src/js/web_tree_image.js b/web_tree_image/static/src/js/web_tree_image.js deleted file mode 100644 index 11b58201..00000000 --- a/web_tree_image/static/src/js/web_tree_image.js +++ /dev/null @@ -1,69 +0,0 @@ -/* - OpenERP, Open Source Management Solution - This module copyright (C) 2014 Therp BV () - (C) 2013 Marcel van der Boom - Copyright (C) 2016 Serpent Consulting Services Pvt. Ltd. - () - - 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 . -*/ - -odoo.define('web.WebTreeImage', function (require) { - "use strict"; - var core = require('web.core'); - var session = require('web.session'); - var QWeb = core.qweb; - var list_widget_registry = core.list_widget_registry; - - var WebTreeImage = list_widget_registry.get('field.binary').extend({ - format: function (row_data, options) { - /* Return a valid img tag. For image fields, test if the - field's value contains just the binary size and retrieve - the image from the dedicated controller in that case. - Otherwise, assume a character field containing either a - stock Odoo icon name without path or extension or a fully - fledged location or data url */ - if (!row_data[this.id] || !row_data[this.id].value) { - return ''; - } - var value = row_data[this.id].value, src; - if (this.type === 'binary') { - if (value && value.substr(0, 10).indexOf(' ') === -1) { - // The media subtype (png) seems to be arbitrary - src = "data:image/png;base64," + value; - } else { - var imageArgs = { - model: options.model, - field: this.id, - id: options.id - } - if (this.resize) { - imageArgs.resize = this.resize; - } - src = session.url('/web/binary/image', imageArgs); - } - } else { - if (!/\//.test(row_data[this.id].value)) { - src = '/web/static/src/img/icons/' + row_data[this.id].value + '.png'; - } else { - src = row_data[this.id].value; - } - } - return QWeb.render('ListView.row.image', {widget: this, src: src}); - } - }); - - list_widget_registry - .add('field.image', WebTreeImage) -}); diff --git a/web_tree_image/static/src/less/common.less b/web_tree_image/static/src/less/common.less new file mode 100644 index 00000000..cc57053a --- /dev/null +++ b/web_tree_image/static/src/less/common.less @@ -0,0 +1,3 @@ +.o_image_cell .o_field_image img{ + width:30px; +} diff --git a/web_tree_image/static/src/xml/widget.xml b/web_tree_image/static/src/xml/widget.xml deleted file mode 100644 index cbd1bc0b..00000000 --- a/web_tree_image/static/src/xml/widget.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - diff --git a/web_tree_image/view/assets.xml b/web_tree_image/view/assets.xml index fa79d63e..9d40ab47 100644 --- a/web_tree_image/view/assets.xml +++ b/web_tree_image/view/assets.xml @@ -1,10 +1,11 @@ - - - - - + + +