diff options
| author | Antonin Bourguignon <abo@openerp.com> | 2012-08-22 20:50:57 +0200 |
|---|---|---|
| committer | Antonin Bourguignon <abo@openerp.com> | 2012-08-22 20:50:57 +0200 |
| commit | 459f45a53ea0ca60f44d8a97578c21b005af2e09 (patch) | |
| tree | 2075f75caace3c7f3cf3d7c277fa3cb68ebd0b7a /openerp/addons/base/module/module.py | |
| parent | b12cac2bdea15467a4e80b301f6ff0777675b269 (diff) | |
| parent | 532570c363e852e36f08deabc09d2ed97a638a53 (diff) | |
[MERGE] improve modules' descriptions
also properly render descriptions from RST into HTML
bzr revid: abo@openerp.com-20120822185057-dirf183dh83wgtjy
Diffstat (limited to 'openerp/addons/base/module/module.py')
| -rw-r--r-- | openerp/addons/base/module/module.py | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/openerp/addons/base/module/module.py b/openerp/addons/base/module/module.py index 5751ed678eb..d523ff0ac7f 100644 --- a/openerp/addons/base/module/module.py +++ b/openerp/addons/base/module/module.py @@ -29,6 +29,7 @@ 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 +from docutils.core import publish_string _logger = logging.getLogger(__name__) @@ -94,6 +95,15 @@ class module(osv.osv): 'module %s', name, exc_info=True) return info + 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): + desc = self.get_module_info(module.name).get('description', '') + overrides = dict(embed_stylesheet=False, doctitle_xform=False, output_encoding='unicode') + output = publish_string(source=desc, writer_name='html', settings_overrides=overrides) + res[module.id] = output + return res + def _get_latest_version(self, cr, uid, ids, field_name=None, arg=None, context=None): res = dict.fromkeys(ids, '') for m in self.browse(cr, uid, ids): @@ -182,7 +192,7 @@ class module(osv.osv): 'category_id': fields.many2one('ir.module.category', 'Category', readonly=True, select=True), 'shortdesc': fields.char('Module Name', size=64, readonly=True, translate=True), 'summary': fields.char('Summary', size=64, readonly=True, translate=True), - 'description': fields.text("Description", readonly=True, translate=True), + 'description': fields.function(_get_desc, string='Description', type='html', method=True, readonly=True, store=True), 'author': fields.char("Author", size=128, readonly=True), 'maintainer': fields.char('Maintainer', size=128, readonly=True), 'contributors': fields.text('Contributors', readonly=True), |
