From a076f056f1013e9b325deccca02e85313d04d83e Mon Sep 17 00:00:00 2001 From: "Rvo (Open ERP)" Date: Mon, 26 Apr 2010 10:53:45 +0530 Subject: [PATCH 001/142] [ADD]:ref attribute support in demo files for reference fields bzr revid: rvo@tinyerp.co.in-20100426052345-s351m4qjr717o3m0 --- bin/addons/base/res/partner/partner_demo.xml | 2 +- bin/tools/convert.py | 20 ++++++++++++++++---- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/bin/addons/base/res/partner/partner_demo.xml b/bin/addons/base/res/partner/partner_demo.xml index c6de312bc4c..f5d70a2490d 100644 --- a/bin/addons/base/res/partner/partner_demo.xml +++ b/bin/addons/base/res/partner/partner_demo.xml @@ -357,7 +357,7 @@ ASUSTEK-Subject - res.partner,2 + diff --git a/bin/tools/convert.py b/bin/tools/convert.py index 36f2740dbc9..4a2a879698a 100644 --- a/bin/tools/convert.py +++ b/bin/tools/convert.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- ############################################################################## -# +# # OpenERP, Open Source Management Solution # Copyright (C) 2004-2009 Tiny SPRL (). # @@ -15,7 +15,7 @@ # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . +# along with this program. If not, see . # ############################################################################## @@ -369,10 +369,10 @@ form: module.record_id""" % (xml_id,) domain = rec.get('domain','').encode('utf-8') or '{}' context = rec.get('context','').encode('utf-8') or '{}' res_model = rec.get('res_model','').encode('utf-8') - src_model = rec.get('src_model','').encode('utf-8') + src_model = rec.get('src_model','').encode('utf-8') view_type = rec.get('view_type','').encode('utf-8') or 'form' view_mode = rec.get('view_mode','').encode('utf-8') or 'tree,form' - + usage = rec.get('usage','').encode('utf-8') limit = rec.get('limit','').encode('utf-8') auto_refresh = rec.get('auto_refresh','').encode('utf-8') @@ -721,6 +721,10 @@ form: module.record_id""" % (xml_id,) f_val = False else: f_val = self.id_get(cr, f_model, f_ref) + if f_name in model._columns \ + and model._columns[f_name]._type == 'reference': + model_name = self.model_get(cr, f_ref) + f_val = model_name + ',' + str(f_val) else: f_val = _eval_xml(self,field, self.pool, cr, self.uid, self.idref) if model._columns.has_key(f_name): @@ -747,6 +751,14 @@ form: module.record_id""" % (xml_id,) return int(res[0]['res_id']) return False + def model_get(self, cr, id_str): + model_data_obj = self.pool.get('ir.model.data') + id = model_data_obj.search(cr, self.uid, [('name', '=', id_str)]) + res = model_data_obj.read(cr, self.uid, id, ['model']) + if res and res[0] and res[0]['model']: + return res[0]['model'] + return False + def parse(self, de): if not de.tag in ['terp', 'openerp']: self.logger.notifyChannel("init", netsvc.LOG_ERROR, "Mismatch xml format" ) From 89f73095cf03c916740b54585d3d5d9619287280 Mon Sep 17 00:00:00 2001 From: "nch@tinyerp.com" <> Date: Mon, 26 Apr 2010 18:01:47 +0530 Subject: [PATCH 002/142] [IMP]:Select your interface wizard bzr revid: nch@tinyerp.com-20100426123147-ihps0qqox9ljrwyk --- bin/addons/base/base_update.xml | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/bin/addons/base/base_update.xml b/bin/addons/base/base_update.xml index 17952ea0146..42e4aae4e8e 100644 --- a/bin/addons/base/base_update.xml +++ b/bin/addons/base/base_update.xml @@ -280,17 +280,21 @@
- Select your Interface + Choose Your Interface
- From 1e186b3c128784c9a19f77bc73b57715a3cf12ac Mon Sep 17 00:00:00 2001 From: "nch@tinyerp.com" <> Date: Tue, 27 Apr 2010 18:39:11 +0530 Subject: [PATCH 003/142] [IMP]:added info picture to choose your wizard bzr revid: nch@tinyerp.com-20100427130911-chmveh4zkn961bpu --- bin/addons/base/base_update.xml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/bin/addons/base/base_update.xml b/bin/addons/base/base_update.xml index 42e4aae4e8e..542434d4be6 100644 --- a/bin/addons/base/base_update.xml +++ b/bin/addons/base/base_update.xml @@ -285,12 +285,13 @@ - + + - + From 76201eb88a69fa27c9f1d300f03984971bbf830c Mon Sep 17 00:00:00 2001 From: "nch@tinyerp.com" <> Date: Wed, 28 Apr 2010 12:24:06 +0530 Subject: [PATCH 004/142] [IMP]:ir.actions.todo added groups to the actions bzr revid: nch@tinyerp.com-20100428065406-97056qrpvp4tun0e --- bin/addons/base/ir/ir.xml | 5 +++++ bin/addons/base/ir/ir_actions.py | 13 +++++++------ bin/addons/base/res/res_config.py | 12 +++++++++++- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/bin/addons/base/ir/ir.xml b/bin/addons/base/ir/ir.xml index 667a77e8a13..77ae7643645 100644 --- a/bin/addons/base/ir/ir.xml +++ b/bin/addons/base/ir/ir.xml @@ -1383,6 +1383,11 @@ + + + + + diff --git a/bin/addons/base/ir/ir_actions.py b/bin/addons/base/ir/ir_actions.py index 33be3fe99ee..a9eab3ea3da 100644 --- a/bin/addons/base/ir/ir_actions.py +++ b/bin/addons/base/ir/ir_actions.py @@ -387,13 +387,13 @@ class actions_server(osv.osv): line = rs[0], "%s - (%s)" % (rs[1], rs[0]) res.append(line) return res - + def _select_objects(self, cr, uid, context={}): model_pool = self.pool.get('ir.model') ids = model_pool.search(cr, uid, [('name','not ilike','.')]) res = model_pool.read(cr, uid, ids, ['model', 'name']) return [(r['model'], r['name']) for r in res] + [('','')] - + def change_object(self, cr, uid, ids, copy_object, state, context={}): if state == 'object_copy': model_pool = self.pool.get('ir.model') @@ -581,10 +581,10 @@ class actions_server(osv.osv): continue if not user: raise osv.except_osv(_('Error'), _("Please specify server option --smtp-from !")) - + subject = self.merge_message(cr, uid, action.subject, action, context) body = self.merge_message(cr, uid, action.message, action, context) - + if tools.email_send(user, [address], subject, body, debug=False, subtype='html') == True: logger.notifyChannel('email', netsvc.LOG_INFO, 'Email successfully send to : %s' % (address)) else: @@ -686,7 +686,7 @@ class actions_server(osv.osv): cr.commit() if action.record_id: self.pool.get(action.model_id.model).write(cr, uid, [context.get('active_id')], {action.record_id.name:res_id}) - + if action.state == 'object_copy': res = {} for exp in action.fields_lines: @@ -701,7 +701,7 @@ class actions_server(osv.osv): obj_pool = None res_id = False - + model = action.copy_object.split(',')[0] cid = action.copy_object.split(',')[1] obj_pool = self.pool.get(model) @@ -736,6 +736,7 @@ class ir_actions_todo(osv.osv): 'state': fields.selection(TODO_STATES, string='State', required=True), 'name':fields.char('Name', size=64), 'restart': fields.selection([('onskip','On Skip'),('always','Always'),('never','Never')],'Restart',required=True), + 'groups_id':fields.many2many('res.groups', 'res_groups_action_rel', 'uid', 'gid', 'Groups'), 'note':fields.text('Text', translate=True), } _defaults={ diff --git a/bin/addons/base/res/res_config.py b/bin/addons/base/res/res_config.py index 68a5a383cbb..9899830a4f3 100644 --- a/bin/addons/base/res/res_config.py +++ b/bin/addons/base/res/res_config.py @@ -58,8 +58,18 @@ class res_config_configurable(osv.osv_memory): 'getting next %s' % todos) active_todos = todos.search(cr, uid, [('state','=','open')], limit=1) + dont_skip_todo = True if active_todos: - return todos.browse(cr, uid, active_todos[0], context=None) + todo_obj = todos.browse(cr, uid, active_todos[0], context=None) + todo_groups = map(lambda x:x.id, todo_obj.groups_id) + if todo_groups: + cr.execute("select 1 from res_groups_users_rel where uid=%s and gid=ANY(%s)",(uid, todo_groups,)) + dont_skip_todo = bool(cr.fetchone()) + if dont_skip_todo: + return todos.browse(cr, uid, active_todos[0], context=None) + else: + todos.write(cr, uid, active_todos[0], {'state':'skip'}, context=None) + return self._next_action(cr, uid) return None def _set_previous_todo(self, cr, uid, state): From e6131ae55e4f5deb3231e99a0f1e19a22b76d1c1 Mon Sep 17 00:00:00 2001 From: "Rvo (Open ERP)" Date: Thu, 29 Apr 2010 11:24:48 +0530 Subject: [PATCH 005/142] [IMP]: improved the code, added model_id_get() to support ref attribute for reference fields bzr revid: rvo@tinyerp.co.in-20100429055448-ozeuc3ssv6mtpqiy --- bin/addons/base/res/partner/partner_demo.xml | 2 +- bin/tools/convert.py | 27 +++++++++----------- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/bin/addons/base/res/partner/partner_demo.xml b/bin/addons/base/res/partner/partner_demo.xml index f5d70a2490d..86b665c396b 100644 --- a/bin/addons/base/res/partner/partner_demo.xml +++ b/bin/addons/base/res/partner/partner_demo.xml @@ -357,7 +357,7 @@ ASUSTEK-Subject - +
diff --git a/bin/tools/convert.py b/bin/tools/convert.py index 4a2a879698a..5ad184d6b19 100644 --- a/bin/tools/convert.py +++ b/bin/tools/convert.py @@ -720,11 +720,12 @@ form: module.record_id""" % (xml_id,) if f_ref=="null": f_val = False else: - f_val = self.id_get(cr, f_model, f_ref) if f_name in model._columns \ and model._columns[f_name]._type == 'reference': - model_name = self.model_get(cr, f_ref) - f_val = model_name + ',' + str(f_val) + val = self.model_id_get(cr, f_model, f_ref) + f_val = val[0] + ',' + str(val[1]) + else: + f_val = self.id_get(cr, f_model, f_ref) else: f_val = _eval_xml(self,field, self.pool, cr, self.uid, self.idref) if model._columns.has_key(f_name): @@ -740,23 +741,19 @@ form: module.record_id""" % (xml_id,) return rec_model, id def id_get(self, cr, model, id_str): + return self.model_id_get(cr, model, id_str)[1] + + def model_id_get(self, cr, model, id_str): if id_str in self.idref: - return self.idref[id_str] + return '', self.idref[id_str] + model_data_obj = self.pool.get('ir.model.data') mod = self.module if '.' in id_str: mod,id_str = id_str.split('.') - result = self.pool.get('ir.model.data')._get_id(cr, self.uid, mod, id_str) - res = self.pool.get('ir.model.data').read(cr, self.uid, [result], ['res_id']) + result = model_data_obj._get_id(cr, self.uid, mod, id_str) + res = model_data_obj.read(cr, self.uid, [result], ['model', 'res_id']) if res and res[0] and res[0]['res_id']: - return int(res[0]['res_id']) - return False - - def model_get(self, cr, id_str): - model_data_obj = self.pool.get('ir.model.data') - id = model_data_obj.search(cr, self.uid, [('name', '=', id_str)]) - res = model_data_obj.read(cr, self.uid, id, ['model']) - if res and res[0] and res[0]['model']: - return res[0]['model'] + return res[0]['model'], int(res[0]['res_id']) return False def parse(self, de): From 3056fa907b531d794e6c6e3b7d9f60fa451dacf5 Mon Sep 17 00:00:00 2001 From: "nch@tinyerp.com" <> Date: Thu, 29 Apr 2010 14:09:44 +0530 Subject: [PATCH 006/142] [FIX]:added rowspan for vertical separator bzr revid: nch@tinyerp.com-20100429083944-xdjjobq7f41o7r7h --- bin/addons/base/rng/view.rng | 1 + 1 file changed, 1 insertion(+) diff --git a/bin/addons/base/rng/view.rng b/bin/addons/base/rng/view.rng index d822ed3c4ac..5a489a55936 100644 --- a/bin/addons/base/rng/view.rng +++ b/bin/addons/base/rng/view.rng @@ -280,6 +280,7 @@ + From 7151076eeea180cc1dda9a8a8681cc5ff128dd9e Mon Sep 17 00:00:00 2001 From: "nch@tinyerp.com" <> Date: Thu, 29 Apr 2010 14:13:00 +0530 Subject: [PATCH 007/142] [IMP]:change the template for config wizards and installer wizards bzr revid: nch@tinyerp.com-20100429084300-q49ni93828ha8b48 --- bin/addons/base/base_update.xml | 28 ++++++++-------- bin/addons/base/res/res_config.xml | 54 +++++++++++++++++++----------- 2 files changed, 48 insertions(+), 34 deletions(-) diff --git a/bin/addons/base/base_update.xml b/bin/addons/base/base_update.xml index 542434d4be6..41797f756f5 100644 --- a/bin/addons/base/base_update.xml +++ b/bin/addons/base/base_update.xml @@ -282,21 +282,21 @@
Choose Your Interface
- - - - - - - - - - + + Choose between the simplified interface and the extended one.If you are testing OpenERP or using it for the first time, we suggest you use the simplified interface. It has less options and fields but is easier to understand.You will be able to switch to the extended interface later. + + + Choose Your Interface + + + + + + + - + Set diff --git a/bin/addons/base/res/res_config.xml b/bin/addons/base/res/res_config.xml index 11d753018c2..ca00a4944d2 100644 --- a/bin/addons/base/res/res_config.xml +++ b/bin/addons/base/res/res_config.xml @@ -5,22 +5,30 @@ res.config form -
- - - - - -