diff --git a/openerp/addons/base/module/module.py b/openerp/addons/base/module/module.py
index e04e4e4a02b..b8dc1e2c1b6 100644
--- a/openerp/addons/base/module/module.py
+++ b/openerp/addons/base/module/module.py
@@ -23,8 +23,9 @@ import logging
import re
import urllib
import zipimport
+import base64
-from openerp import modules, pooler, release, tools
+from openerp import modules, pooler, release, tools, addons
from openerp.tools.parse_version import parse_version
from openerp.tools.translate import _
from openerp.osv import fields, osv, orm
@@ -160,6 +161,18 @@ class module(osv.osv):
res[key][k] = "\n".join(sorted(v))
return res
+ def _get_image(self, cr, uid, ids, field_name=None, arg=None, context=None):
+ res = dict.fromkeys(ids, '')
+ for module in self.browse(cr, uid, ids, context=context):
+ path = addons.get_module_resource(module.name, 'static', 'src', 'img', 'icon.png')
+ if path:
+ image_file = tools.file_open(path, 'rb')
+ try:
+ res[module.id] = image_file.read().encode('base64')
+ finally:
+ image_file.close()
+ return res
+
_columns = {
'name': fields.char("Technical Name", size=128, readonly=True, required=True, select=True),
'category_id': fields.many2one('ir.module.category', 'Category', readonly=True, select=True),
@@ -211,6 +224,7 @@ class module(osv.osv):
'certificate' : fields.char('Quality Certificate', size=64, readonly=True),
'application': fields.boolean('Application', readonly=True),
'icon': fields.char('Icon URL', size=128),
+ 'image': fields.function(_get_image, string='Icon', type="binary"),
}
_defaults = {
diff --git a/openerp/addons/base/module/module_view.xml b/openerp/addons/base/module/module_view.xml
index 20145b60bd6..88d178aa9ab 100644
--- a/openerp/addons/base/module/module_view.xml
+++ b/openerp/addons/base/module/module_view.xml
@@ -142,7 +142,7 @@
-
+