diff options
| author | hda@tinyerp.com <> | 2008-10-24 16:11:31 +0530 |
|---|---|---|
| committer | hda@tinyerp.com <> | 2008-10-24 16:11:31 +0530 |
| commit | d8ea3c99d9bb33606c24b943e5df6bdd0f7f84b5 (patch) | |
| tree | 46d01f59e050dfcfe254708ee7c54b4b760442d2 /bin/addons/base/module | |
| parent | 0cc813870ac58caed94081904632ce22ed2741d5 (diff) | |
Added fearutes tab in module
bzr revid: hda@tinyerp.com-20081024104131-zirn6p2mu806a1o6
Diffstat (limited to 'bin/addons/base/module')
| -rw-r--r-- | bin/addons/base/module/module.py | 63 | ||||
| -rw-r--r-- | bin/addons/base/module/module_view.xml | 33 |
2 files changed, 85 insertions, 11 deletions
diff --git a/bin/addons/base/module/module.py b/bin/addons/base/module/module.py index 836a6a3ed7d..ff821818144 100644 --- a/bin/addons/base/module/module.py +++ b/bin/addons/base/module/module.py @@ -219,6 +219,65 @@ class module(osv.osv): res[m.id] = '' return res + def _get_menus(self, cr, uid, ids, field_name=None, arg=None, context={}): + res = {} + model_data_obj = self.pool.get('ir.model.data') + menu_obj = self.pool.get('ir.ui.menu') + for m in self.browse(cr, uid, ids): + if m.state == 'installed': + menu_txt = '' + menus_id = model_data_obj.search(cr,uid,[('module','=',m.name),('model','=','ir.ui.menu')]) + for data_id in model_data_obj.browse(cr,uid,menus_id): + menu_txt += menu_obj.browse(cr,uid,data_id.res_id).complete_name + '\n' + res[m.id] = menu_txt + else: + res[m.id] = '' + return res + + def _get_reports(self, cr, uid, ids, field_name=None, arg=None, context={}): + res = {} + model_data_obj = self.pool.get('ir.model.data') + report_obj = self.pool.get('ir.actions.report.xml') + for m in self.browse(cr, uid, ids): + if m.state == 'installed': + report_txt = '' + report_id = model_data_obj.search(cr,uid,[('module','=',m.name),('model','=','ir.actions.report.xml')]) + for data_id in model_data_obj.browse(cr,uid,report_id): + report_txt += report_obj.browse(cr,uid,data_id.res_id).name + '\n' + res[m.id] = report_txt + else: + res[m.id] = '' + return res + + def _get_views(self, cr, uid, ids, field_name=None, arg=None, context={}): + res = {} + model_data_obj = self.pool.get('ir.model.data') + view_obj = self.pool.get('ir.ui.view') + for m in self.browse(cr, uid, ids): + if m.state == 'installed': + view_txt = '' + view_id = model_data_obj.search(cr,uid,[('module','=',m.name),('model','=','ir.ui.view')]) + for data_id in model_data_obj.browse(cr,uid,view_id): + view_txt += view_obj.browse(cr,uid,data_id.res_id).name + '\n' + res[m.id] = view_txt + else: + res[m.id] = '' + return res + + def _get_objects(self, cr, uid, ids, field_name=None, arg=None, context={}): + res = {} + model_data_obj=self.pool.get('ir.model.data') + for m in self.browse(cr, uid, ids): + if m.state=='installed': + cr.execute('''select distinct model from ir_model_data where module = '%s' '''%(m.name)) + objects = cr.fetchall() + obj_lst=map(lambda x:x[0],objects) + res[m.id] = '\n'.join(obj_lst) + else: + res[m.id] = '' + return res + + _columns = { 'name': fields.char("Name", size=128, readonly=True, required=True), 'category_id': fields.many2one('ir.module.category', 'Category', readonly=True), @@ -245,6 +304,10 @@ class module(osv.osv): 'license': fields.selection([('GPL-2', 'GPL-2'),('GPL-3', 'GPL-3'), ('Other proprietary', 'Other proprietary')], string='License', readonly=True), + 'menus_by_module': fields.function(_get_menus, method=True, string='Menus', type='text'), + 'reports_by_module': fields.function(_get_reports, method=True, string='Reports', type='text'), + 'views_by_module': fields.function(_get_views, method=True, string='Views', type='text'), + 'objects_by_module': fields.function(_get_objects, method=True, string='Objects', type='text'), } _defaults = { diff --git a/bin/addons/base/module/module_view.xml b/bin/addons/base/module/module_view.xml index dfec0514bd7..38e4da4f9aa 100644 --- a/bin/addons/base/module/module_view.xml +++ b/bin/addons/base/module/module_view.xml @@ -1,9 +1,9 @@ <?xml version="1.0" encoding="utf-8"?> <openerp> <data> - + <!-- Modules Categories --> - + <record id="view_module_category_form" model="ir.ui.view"> <field name="name">ir.module.category.form</field> <field name="model">ir.module.category</field> @@ -16,7 +16,7 @@ </form> </field> </record> - + <record id="view_module_category_tree" model="ir.ui.view"> <field name="name">ir.module.category.tree</field> <field name="model">ir.module.category</field> @@ -36,9 +36,9 @@ <field name="domain">[('parent_id','=',False)]</field> </record> <menuitem action="action_module_category_tree" id="menu_action_module_category_tree" parent="base.menu_management"/> - + <!-- Click on a category --> - + <record id="action_module_open_categ" model="ir.actions.act_window"> <field name="name">Modules</field> <field name="res_model">ir.module.module</field> @@ -53,10 +53,10 @@ <field eval="'ir.actions.act_window,%d'%action_module_open_categ" name="value"/> <field eval="True" name="object"/> </record> - - + + <!-- Modules --> - + <record id="module_form" model="ir.ui.view"> <field name="name">ir.module.module.form</field> <field name="model">ir.module.module</field> @@ -95,6 +95,17 @@ </tree> </field> </page> + <page string="Added Features" attrs="{'invisible':[('state','!=','installed')]}"> +<!-- <separator string="The following information describes the features provided by this module. It will be completed only if the module is installed" colspan="4"/>--> + <separator string="List of menus introduced by this module" colspan="2"/> + <separator string="List of reports introduced by this module" colspan="2"/> + <field colspan="2" name="menus_by_module" nolabel="1"/> + <field colspan="2" name="reports_by_module" nolabel="1"/> + <separator string="List of views introduced by this module" colspan="2"/> + <separator string="List of objects introduced by this module" colspan="2"/> + <field colspan="2" name="views_by_module" nolabel="1"/> + <field colspan="2" name="objects_by_module" nolabel="1"/> + </page> </notebook> </form> </field> @@ -123,7 +134,7 @@ <field name="domain"/> </record> <menuitem action="open_module_tree" id="menu_module_tree" parent="base.menu_management"/> - + <record id="open_module_tree_install" model="ir.actions.act_window"> <field name="name">Installed modules</field> <field name="res_model">ir.module.module</field> @@ -148,7 +159,7 @@ <field name="domain">[('state','in', ['to upgrade', 'to remove', 'to install'])]</field> </record> <menuitem action="open_module_tree_upgrade" id="menu_module_tree_upgrade" parent="base.menu_module_tree"/> - + <record id="repository_form" model="ir.ui.view"> <field name="name">ir.module.repository.form</field> <field name="model">ir.module.repository</field> @@ -183,7 +194,7 @@ <field name="view_mode">tree,form</field> <field name="context">{'active_test': False}</field> </record> - <menuitem action="open_repository_tree" id="menu_module_repository_tree" parent="base.menu_management"/> + <menuitem action="open_repository_tree" id="menu_module_repository_tree" parent="base.menu_management"/> </data> </openerp> |
