diff --git a/openerp/addons/base/module/module.py b/openerp/addons/base/module/module.py
index 6e79d0e4650..39d59a4ab2c 100644
--- a/openerp/addons/base/module/module.py
+++ b/openerp/addons/base/module/module.py
@@ -32,6 +32,7 @@ import urllib
import urllib2
import zipfile
import zipimport
+import lxml.html
try:
from cStringIO import StringIO
@@ -152,9 +153,19 @@ class module(osv.osv):
def _get_desc(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):
- overrides = dict(embed_stylesheet=False, doctitle_xform=False, output_encoding='unicode')
- output = publish_string(source=module.description, settings_overrides=overrides, writer=MyWriter())
- res[module.id] = output
+ path = addons.get_module_resource(module.name, 'static/description/index.html')
+ if path:
+ with tools.file_open(path, 'rb') as desc_file:
+ doc = desc_file.read()
+ html = lxml.html.document_fromstring(doc)
+ for element, attribute, link, pos in html.iterlinks():
+ if element.get('src') and not '//' in element.get('src') and not 'static/' in element.get('src'):
+ element.set('src', "/%s/static/description/%s" % (module.name, element.get('src')))
+ res[module.id] = lxml.html.tostring(html)
+ else:
+ overrides = dict(embed_stylesheet=False, doctitle_xform=False, output_encoding='unicode')
+ output = publish_string(source=module.description, settings_overrides=overrides, writer=MyWriter())
+ res[module.id] = output
return res
def _get_latest_version(self, cr, uid, ids, field_name=None, arg=None, context=None):
@@ -232,7 +243,7 @@ class module(osv.osv):
def _get_icon_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')
+ path = addons.get_module_resource(module.name, 'static', 'description', 'icon.png')
if path:
image_file = tools.file_open(path, 'rb')
try:
@@ -472,7 +483,6 @@ class module(osv.osv):
function(cr, uid, ids, context=context)
cr.commit()
- openerp.modules.registry.RegistryManager.signal_registry_change(cr.dbname)
registry = openerp.modules.registry.RegistryManager.new(cr.dbname, update_module=True)
config = registry['res.config'].next(cr, uid, [], context=context) or {}
diff --git a/openerp/addons/base/module/module_view.xml b/openerp/addons/base/module/module_view.xml
index 3923c9de3bd..2b65289bf26 100644
--- a/openerp/addons/base/module/module_view.xml
+++ b/openerp/addons/base/module/module_view.xml
@@ -37,15 +37,15 @@
-
-
+
+
-
-
+
+
-
-
+
+
@@ -70,37 +70,41 @@
ir.module.module.form
ir.module.module
-
-
+
@@ -124,6 +128,8 @@
+
+