diff --git a/openerp/addons/base/base_update.xml b/openerp/addons/base/base_update.xml
index 914e3a9a488..0680dcb4326 100644
--- a/openerp/addons/base/base_update.xml
+++ b/openerp/addons/base/base_update.xml
@@ -180,6 +180,40 @@
+
+
+
+
+ res.company.logo.form
+ res.company.logo
+ form
+
+
+
+
+
+
+ Set Logo
+ res.company.logo
+ form
+ tree,form
+
+ new
+
+
+
+
+ Give access to others users
+ ir.actions.act_window
+ res.users
+ form
+ form
+
+
+
+
+
+
+
+ never
+ current
+ 1000
+ skip
+
Configure Your Interface
@@ -358,5 +417,58 @@
1
skip
+
+
+
+
+ Define default users preferences
+ user.preferences.config
+ form
+
+
+
+
+
+ Define default users preferences
+
+
+ Specify default values. These data are just default values, each user is free to change his own preferences.
+
+
+
+ 12
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Define default users preferences
+ ir.actions.act_window
+ user.preferences.config
+ form
+
+ form
+ new
+
+
+
+
+
+
+ on_trigger
+
+
diff --git a/openerp/addons/base/ir/ir_actions.py b/openerp/addons/base/ir/ir_actions.py
index 9627db112ca..be15bf665f1 100644
--- a/openerp/addons/base/ir/ir_actions.py
+++ b/openerp/addons/base/ir/ir_actions.py
@@ -832,8 +832,8 @@ class ir_actions_todo(osv.osv):
context = {}
wizard_id = ids and ids[0] or False
wizard = self.browse(cr, uid, wizard_id, context=context)
- res = self.pool.get('ir.actions.act_window').read(cr, uid, wizard.action_id.id, ['name', 'view_type', 'view_mode', 'res_model', 'context', 'views', 'type'], context=context)
- res.update({'target':'new', 'nodestroy': True})
+ res = self.pool.get('ir.actions.act_window').read(cr, uid, wizard.action_id.id, ['name', 'view_type', 'view_mode', 'res_model', 'context', 'views', 'type','target'], context=context)
+ res.update({'nodestroy': True})
return res
def action_open(self, cr, uid, ids, context=None):
diff --git a/openerp/addons/base/res/res_company.py b/openerp/addons/base/res/res_company.py
index 0143b03fd2a..5db023d2547 100644
--- a/openerp/addons/base/res/res_company.py
+++ b/openerp/addons/base/res/res_company.py
@@ -68,6 +68,25 @@ class multi_company_default(osv.osv):
multi_company_default()
+class res_company_logo(osv.osv_memory):
+ _name = 'res.company.logo'
+ _columns = {
+ 'logo' : fields.binary('Logo'),
+ }
+ _defaults={
+ 'logo':lambda self,cr,uid,c: self.pool.get('res.company').browse(cr, uid, uid,c).logo,
+ }
+
+ def execute(self, cr, uid, ids, context=None):
+ if context is None:
+ context = {}
+ record_id = context.get('active_id', False) or False
+ comp_obj = self.pool.get("res.company")
+ get_val = self.browse(cr, uid, ids)[0]
+ comp_obj.write(cr, uid, record_id, {'logo': get_val.logo}, context=context)
+ return {'type': 'ir.actions.act_window_close'}
+
+res_company_logo()
class res_company(osv.osv):
_name = "res.company"
@@ -138,6 +157,26 @@ class res_company(osv.osv):
return []
ids = self.search(cr, uid, [('parent_id','child_of',[company])])
return ids
+
+# For Report
+
+ def createReport(cr, uid, report, ids, name=False):
+ files = []
+ for id in ids:
+ try:
+ service = netsvc.LocalService(report)
+ (result, format) = service.create(cr, uid, [id], {}, {})
+ if not name:
+ report_file = '/tmp/reports'+ str(id) + '.pdf'
+ else:
+ report_file = name
+ fp = open(report_file,'wb+')
+ fp.write(result);
+ fp.close();
+ files += [report_file]
+ except Exception,e:
+ continue
+ return files
def _get_partner_hierarchy(self, cr, uid, company_id, context={}):
if company_id:
diff --git a/openerp/addons/base/res/res_user.py b/openerp/addons/base/res/res_user.py
index 261ec699659..5d9bf8b5f05 100644
--- a/openerp/addons/base/res/res_user.py
+++ b/openerp/addons/base/res/res_user.py
@@ -604,4 +604,39 @@ class res_config_view(osv.osv_memory):
res_config_view()
+# Define default users preferences config wiz
+
+class user_preferences_config(osv.osv_memory):
+ _name = 'user.preferences.config'
+ _inherit = 'res.config'
+ _columns = {
+ 'context_tz': fields.selection(_tz_get, 'Timezone', size=64,
+ help="Set default for new user's timezone, used to perform timezone conversions "
+ "between the server and the client."),
+ 'context_lang': fields.selection(_lang_get, 'Language', required=True,
+ help="Sets default language for the new user's user interface, when UI "
+ "translations are available"),
+ 'view': fields.selection([('simple','Simplified'),
+ ('extended','Extended')],
+ 'Interface', required=True ),
+ 'menu_tips': fields.boolean('Menu Tips', help="Check out this box if you want to always display tips on each menu action"),
+
+ }
+ _defaults={
+ 'view' : lambda self,cr,uid,*args: self.pool.get('res.users').browse(cr, uid, uid).view or 'simple',
+ 'context_lang' : 'en_US',
+ 'menu_tips' : True
+ }
+
+ def execute(self, cr, uid, ids, context=None):
+ for o in self.browse(cr, uid, ids, context=context):
+ ir_values_obj = self.pool.get('ir.values')
+ ir_values_obj.set(cr, uid, 'default', False, 'context_tz', ['res.users'], o.context_tz)
+ ir_values_obj.set(cr, uid, 'default', False, 'context_lang', ['res.users'], o.context_lang)
+ ir_values_obj.set(cr, uid, 'default', False, 'view', ['res.users'], o.view)
+ ir_values_obj.set(cr, uid, 'default', False, 'menu_tips', ['res.users'], o.menu_tips)
+ return {}
+
+user_preferences_config()
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file