Browse Source

[ADD] web_tree_widget

pull/57/head
Stefan Rijnhart 10 years ago
parent
commit
4a1c3e8dec
  1. 0
      web_tree_image/__init__.py
  2. 51
      web_tree_image/__openerp__.py
  3. 34
      web_tree_image/static/src/js/web_tree_image.js
  4. 6
      web_tree_image/static/src/xml/widget.xml
  5. 10
      web_tree_image/view/assets.xml

0
web_tree_image/__init__.py

51
web_tree_image/__openerp__.py

@ -0,0 +1,51 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# This module copyright (C) 2014 Therp BV (<http://therp.nl>).
#
# 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 <http://www.gnu.org/licenses/>.
#
##############################################################################
{
"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, \
"/<module>/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',
],
}

34
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 (<http://therp.nl>).
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 <http://www.gnu.org/licenses/>.
*/
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');
};

6
web_tree_image/static/src/xml/widget.xml

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<templates id="template" xml:space="preserve">
<img t-name="ListView.row.image"
t-att-height="widget.height || 16"
t-att-src="src" />
</templates>

10
web_tree_image/view/assets.xml

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data>
<template id="assets_backend" name="tree icon assets" inherit_id="web.assets_backend">
<xpath expr="." position="inside">
<script type="text/javascript" src="/web_tree_image/static/src/js/web_tree_image.js"></script>
</xpath>
</template>
</data>
</openerp>
Loading…
Cancel
Save