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 | |
| 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
| -rw-r--r-- | openerp/addons/base/__openerp__.py | 13 | ||||
| -rw-r--r-- | openerp/addons/base/base_menu.xml | 2 | ||||
| -rw-r--r-- | openerp/addons/base/module/module.py | 12 | ||||
| -rw-r--r-- | openerp/addons/base/module/module_view.xml | 2 | ||||
| -rw-r--r-- | openerp/addons/base/res/res_config.xml | 2 | ||||
| -rw-r--r-- | openerp/addons/base/res/res_security.xml | 2 | ||||
| -rw-r--r-- | openerp/addons/base/security/base_security.xml | 2 | ||||
| -rw-r--r-- | openerp/import_xml.rng | 1 | ||||
| -rw-r--r-- | openerp/tools/convert.py | 19 |
9 files changed, 40 insertions, 15 deletions
diff --git a/openerp/addons/base/__openerp__.py b/openerp/addons/base/__openerp__.py index 5b65bff4bd7..3fdb8c6448d 100644 --- a/openerp/addons/base/__openerp__.py +++ b/openerp/addons/base/__openerp__.py @@ -25,20 +25,21 @@ 'name': 'Base', 'version': '1.3', 'category': 'Hidden', - 'description': """The kernel of OpenERP, needed for all installation.""", + 'description': """ +The kernel of OpenERP, needed for all installation. +=================================================== +""", 'author': 'OpenERP SA', 'maintainer': 'OpenERP SA', 'website': 'http://www.openerp.com', 'depends': [], - 'init_xml': [ + 'data': [ 'base_data.xml', 'security/base_security.xml', 'base_menu.xml', 'res/res_security.xml', 'res/res_config.xml', - 'data/res.country.state.csv' - ], - 'update_xml': [ + 'data/res.country.state.csv', 'ir/wizard/wizard_menu_view.xml', 'ir/ir.xml', 'ir/ir_filters.xml', @@ -77,7 +78,7 @@ 'res/res_widget_data.xml', 'publisher_warranty/publisher_warranty_data.xml', ], - 'demo_xml': [ + 'demo': [ 'base_demo.xml', 'res/res_partner_demo.xml', 'res/res_partner_demo.yml', diff --git a/openerp/addons/base/base_menu.xml b/openerp/addons/base/base_menu.xml index 770e0e2d329..f3e0cda7e12 100644 --- a/openerp/addons/base/base_menu.xml +++ b/openerp/addons/base/base_menu.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <openerp> - <data> + <data noupdate="1"> <!-- Top menu item --> <menuitem name="Reporting" 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), diff --git a/openerp/addons/base/module/module_view.xml b/openerp/addons/base/module/module_view.xml index 19f9dbdaa44..ec7db50bbe6 100644 --- a/openerp/addons/base/module/module_view.xml +++ b/openerp/addons/base/module/module_view.xml @@ -38,7 +38,7 @@ <field name="model">ir.module.module</field> <field name="arch" type="xml"> <search string="Search modules"> - <field name="name" filter_domain="['|', '|', '|', ('description', 'ilike', self), ('summary', 'ilike', self), ('shortdesc', 'ilike', self), ('name', + <field name="name" filter_domain="['|', '|', ('summary', 'ilike', self), ('shortdesc', 'ilike', self), ('name', 'ilike', self)]"/> <filter name="app" icon="terp-check" string="Apps" domain="[('application', '=', 1)]"/> <filter name="extra" icon="terp-check" string="Extra" domain="[('application', '=', 0)]"/> diff --git a/openerp/addons/base/res/res_config.xml b/openerp/addons/base/res/res_config.xml index bdfd6ab329c..a705250b989 100644 --- a/openerp/addons/base/res/res_config.xml +++ b/openerp/addons/base/res/res_config.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <openerp> - <data> + <data noupdate="1"> <record id="res_config_view_base" model="ir.ui.view"> <field name="name">res.config.view.base</field> <field name="model">res.config</field> diff --git a/openerp/addons/base/res/res_security.xml b/openerp/addons/base/res/res_security.xml index f02abd90985..8aa18bd8df4 100644 --- a/openerp/addons/base/res/res_security.xml +++ b/openerp/addons/base/res/res_security.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <openerp> -<data noupdate="0"> +<data noupdate="1"> <record model="res.groups" id="group_partner_manager"> <field name="name">Partner Manager</field> diff --git a/openerp/addons/base/security/base_security.xml b/openerp/addons/base/security/base_security.xml index cd0b7e999b3..11be6e35bd1 100644 --- a/openerp/addons/base/security/base_security.xml +++ b/openerp/addons/base/security/base_security.xml @@ -1,6 +1,6 @@ <?xml version="1.0"?> <openerp> - <data noupdate="0"> + <data noupdate="1"> <!-- Users Groups diff --git a/openerp/import_xml.rng b/openerp/import_xml.rng index bf5a9e1800e..5dd789c6e95 100644 --- a/openerp/import_xml.rng +++ b/openerp/import_xml.rng @@ -185,7 +185,6 @@ <rng:optional> <rng:attribute name="string"/> </rng:optional> <rng:optional> <rng:attribute name="sequence"/> </rng:optional> <rng:optional> <rng:attribute name="groups"/> </rng:optional> - <rng:optional> <rng:attribute name="type"/> </rng:optional> <rng:optional> <rng:attribute name="menu"/> </rng:optional> <rng:empty /> </rng:element> diff --git a/openerp/tools/convert.py b/openerp/tools/convert.py index 36f560ba62c..8269fa5d7ff 100644 --- a/openerp/tools/convert.py +++ b/openerp/tools/convert.py @@ -591,7 +591,21 @@ form: module.record_id""" % (xml_id,) if rec.get('action'): a_action = rec.get('action','').encode('utf8') - a_type = rec.get('type','').encode('utf8') or 'act_window' + + # determine the type of action + if '.' in a_action: + # action referring to another module + a_action_module, a_action_name = a_action.split('.') + else: + # local action: use current module + a_action_module = self.module + a_action_name = a_action + + # fetch the model and the res id + ir_action_ref = self.pool.get('ir.model.data').get_object_reference(cr, self.uid, a_action_module, a_action_name) + # get the part of the model we need + a_type = ir_action_ref[0].split('.')[-1] + icons = { "act_window": 'STOCK_NEW', "report.xml": 'STOCK_PASTE', @@ -601,6 +615,7 @@ form: module.record_id""" % (xml_id,) "server": 'STOCK_EXECUTE', } values['icon'] = icons.get(a_type,'STOCK_NEW') + if a_type=='act_window': a_id = self.id_get(cr, a_action) cr.execute('select view_type,view_mode,name,view_id,target from ir_act_window where id=%s', (int(a_id),)) @@ -627,7 +642,7 @@ form: module.record_id""" % (xml_id,) values['icon'] = 'STOCK_EXECUTE' if not values.get('name', False): values['name'] = action_name - + elif a_type in ['wizard', 'url', 'client', 'server'] and not values.get('name'): a_id = self.id_get(cr, a_action) a_table = 'ir_act_%s' % a_type |
