summaryrefslogtreecommitdiff
path: root/bin/addons
diff options
context:
space:
mode:
authorGPA (OpenERP) <gpa@tinyerp.com>2010-11-25 11:50:02 +0100
committerOlivier Dony <odo@openerp.com>2010-11-25 11:50:02 +0100
commitf4c509bcfb2ca305c889a1bd57d4fd0e8cb6b7a0 (patch)
tree4a123484176c4cbcb54daf5864f37754c8627845 /bin/addons
parent37f2e927e71be71befccdbc6bd03abbffdd39b0e (diff)
parent9de5e301e1cd721d2aa7521b648b297969bfcef0 (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.xml6
-rw-r--r--bin/addons/base/ir/ir_ui_menu.py28
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=[