diff options
| author | GPA (OpenERP) <gpa@tinyerp.com> | 2010-11-25 11:50:02 +0100 |
|---|---|---|
| committer | Olivier Dony <odo@openerp.com> | 2010-11-25 11:50:02 +0100 |
| commit | f4c509bcfb2ca305c889a1bd57d4fd0e8cb6b7a0 (patch) | |
| tree | 4a123484176c4cbcb54daf5864f37754c8627845 /bin/addons | |
| parent | 37f2e927e71be71befccdbc6bd03abbffdd39b0e (diff) | |
| parent | 9de5e301e1cd721d2aa7521b648b297969bfcef0 (diff) | |
[MERGE] ir.ui.menu,rng: support for embedded web icons for menuitems
bzr revid: odo@openerp.com-20101125105002-o6pbzql6lsqhx60w
Diffstat (limited to 'bin/addons')
| -rw-r--r-- | bin/addons/base/ir/ir.xml | 6 | ||||
| -rw-r--r-- | bin/addons/base/ir/ir_ui_menu.py | 28 |
2 files changed, 32 insertions, 2 deletions
diff --git a/bin/addons/base/ir/ir.xml b/bin/addons/base/ir/ir.xml index 9c8ec022d4a..193b1aeaa43 100644 --- a/bin/addons/base/ir/ir.xml +++ b/bin/addons/base/ir/ir.xml @@ -1379,6 +1379,12 @@ <field name="action" colspan="4" /> <field name="icon" on_change="onchange_icon(icon)" colspan="2"/> <field name="icon_pict" widget="picture" nolabel="1" colspan="2"/> + <group col="4" colspan="8" groups="base.group_extended"> + <field name="web_icon" groups="base.group_extended" /> + <field name="web_icon_hover" groups="base.group_extended" /> + <field name="web_icon_data" widget="image" groups="base.group_extended"/> + <field name="web_icon_hover_data" widget="image" groups="base.group_extended"/> + </group> </group> <notebook colspan="4"> <page string="Groups"> diff --git a/bin/addons/base/ir/ir_ui_menu.py b/bin/addons/base/ir/ir_ui_menu.py index f79493b4813..b41129f642a 100644 --- a/bin/addons/base/ir/ir_ui_menu.py +++ b/bin/addons/base/ir/ir_ui_menu.py @@ -22,6 +22,8 @@ from osv import fields, osv import re import tools +import base64 +import addons def one_in(setA, setB): """Check the presence of an element of setA in setB @@ -260,8 +262,26 @@ class ir_ui_menu(osv.osv): return False level -= 1 return True - - + + def read_image(self, path): + path_info = path.split(',') + icon_path = addons.get_module_resource(path_info[0],path_info[1]) + icon = tools.file_open(icon_path,'rb').read() + return base64.encodestring(icon) + + def _get_image_icon(self, cr, uid, ids, name, args, context=None): + res = {} + for menu in self.browse(cr, uid, ids, context=context): + res[menu.id] = { + 'web_icon_data': False, + 'web_icon_hover_data': False, + } + if not menu.parent_id: + if menu.web_icon_hover: + res[menu.id]['web_icon_hover_data'] = self.read_image(menu.web_icon_hover) + if menu.web_icon: + res[menu.id]['web_icon_data'] = self.read_image(menu.web_icon) + return res _columns = { 'name': fields.char('Menu', size=64, required=True, translate=True), @@ -275,6 +295,10 @@ class ir_ui_menu(osv.osv): string='Complete Name', type='char', size=128), 'icon': fields.selection(tools.icons, 'Icon', size=64), 'icon_pict': fields.function(_get_icon_pict, method=True, type='char', size=32), + 'web_icon': fields.char('Icon File', size=128), + 'web_icon_hover':fields.char('Icon hover File', size=128), + 'web_icon_data': fields.function(_get_image_icon, string='Web Icons', type='binary', method=True, readonly=True, store=True, multi='icon'), + 'web_icon_hover_data':fields.function(_get_image_icon, string='Web Icons Hover', type='binary', method=True, readonly=True, store=True,multi='icon'), 'action': fields.function(_action, fnct_inv=_action_inv, method=True, type='reference', string='Action', selection=[ |
