From 1272c21ad54cbcfa7f3d73af682f757b64bda70f Mon Sep 17 00:00:00 2001 From: Stefan Rijnhart Date: Fri, 5 Dec 2014 19:02:10 +0100 Subject: [PATCH 01/21] 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 755982bf6835662ba3ccd99caa33e3ecac15afff Mon Sep 17 00:00:00 2001 From: Stefan Rijnhart Date: Fri, 5 Dec 2014 19:27:37 +0100 Subject: [PATCH 02/21] 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 6519c56ee9016c1c2c4b624a8cba16eb26591126 Mon Sep 17 00:00:00 2001 From: Stefan Rijnhart Date: Fri, 5 Dec 2014 19:30:01 +0100 Subject: [PATCH 03/21] 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 2fc4e647d15a84b3cbdfcb638e19464563b5e56a Mon Sep 17 00:00:00 2001 From: Stefan Rijnhart Date: Fri, 5 Dec 2014 19:46:11 +0100 Subject: [PATCH 04/21] 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 9830fbec615308f5ce8ae2990c85d80d7782a7ac Mon Sep 17 00:00:00 2001 From: Stefan Rijnhart Date: Mon, 8 Dec 2014 10:28:21 +0100 Subject: [PATCH 05/21] 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 c8c2fe78d8e73ac62cb987707193e043d4361795 Mon Sep 17 00:00:00 2001 From: Stefan Rijnhart Date: Mon, 8 Dec 2014 10:34:32 +0100 Subject: [PATCH 06/21] 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 c3f961254685acb884eb67e8b875210933eb8da6 Mon Sep 17 00:00:00 2001 From: Stefan Rijnhart Date: Mon, 8 Dec 2014 11:25:30 +0100 Subject: [PATCH 07/21] 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 a823efbc591d5078d2dff1eb7dcb27d1648783a9 Mon Sep 17 00:00:00 2001 From: Alexandre Fayolle Date: Mon, 2 Mar 2015 17:29:19 +0100 Subject: [PATCH 08/21] 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 9660ccf74d789ae4e8b982a8f143cd02045e6ad4 Mon Sep 17 00:00:00 2001 From: Yannick Vaucher Date: Tue, 18 Aug 2015 11:09:01 +0200 Subject: [PATCH 09/21] 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 0c500db23c6c7d1f7dafda73dcee5ba337a29e58 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/21] 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 9e7021de865a1f01006e4c62544fea6a2e05b515 Mon Sep 17 00:00:00 2001 From: Leonardo Donelli Date: Fri, 9 Oct 2015 16:12:37 +0200 Subject: [PATCH 11/21] 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 ad8453fe09bc1563b0b3d1868e6c83dcd3f2e22c Mon Sep 17 00:00:00 2001 From: Leonardo Donelli Date: Fri, 9 Oct 2015 16:34:28 +0200 Subject: [PATCH 12/21] 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 95a99f3df997a14da6094b6680cbd235894ab985 Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Wed, 14 Oct 2015 02:57:05 +0200 Subject: [PATCH 13/21] 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 0a0887549e809d39f89c7cbc346db416faad87a1 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/21] 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 1662935c0fec405552676f8f29f2a709cd804b32 Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Thu, 6 Oct 2016 16:12:54 +0200 Subject: [PATCH 15/21] 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 bf46b421b9ad34dad68f6337a849beeb157cc903 Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Thu, 6 Oct 2016 16:13:01 +0200 Subject: [PATCH 16/21] 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 686de5f70de187ab16cbf4e6fb44571454f0a4bb Mon Sep 17 00:00:00 2001 From: Daniel Torres Date: Mon, 14 Nov 2016 05:27:24 -0200 Subject: [PATCH 17/21] 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 721874e7d48f18b7b23c5234067a00baa57794f0 Mon Sep 17 00:00:00 2001 From: oca-travis Date: Sun, 24 Jun 2018 01:39:40 +0000 Subject: [PATCH 18/21] 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 0c48ab560a71b6c3f67daaf7342bb0c38e71eacd Mon Sep 17 00:00:00 2001 From: Nikul Chaudhary Date: Tue, 31 Jul 2018 13:00:32 +0530 Subject: [PATCH 19/21] [MIG] 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 @@ - - - - - + + +