openerp-dev-web team mailing list archive
-
openerp-dev-web team
-
Mailing list archive
-
Message #00756
[Merge] lp:~openerp-dev/openobject-server/ysa-server-framework into lp:openobject-server
Ysa(Open ERP) has proposed merging lp:~openerp-dev/openobject-server/ysa-server-framework into lp:openobject-server.
Requested reviews:
OpenERP Core Team (openerp)
Solved the following bugs.
-> https://bugs.launchpad.net/openobject-server/+bug/663977
-> https://bugs.launchpad.net/openobject-server/+bug/673194
-> https://bugs.launchpad.net/openobject-server/+bug/663775
-> https://bugs.launchpad.net/openobject-server/+bug/672130
--
https://code.launchpad.net/~openerp-dev/openobject-server/ysa-server-framework/+merge/41737
Your team OpenERP R&D Team is subscribed to branch lp:~openerp-dev/openobject-server/ysa-server-framework.
=== modified file 'bin/addons/base/ir/ir_sequence.py'
--- bin/addons/base/ir/ir_sequence.py 2010-08-23 08:33:55 +0000
+++ bin/addons/base/ir/ir_sequence.py 2010-11-24 14:12:47 +0000
@@ -74,14 +74,17 @@
def get_id(self, cr, uid, sequence_id, test='id', context=None):
assert test in ('code','id')
- cr.execute('SELECT id, number_next, prefix, suffix, padding FROM ir_sequence WHERE '+test+'=%s AND active=%s FOR UPDATE NOWAIT', (sequence_id, True))
- res = cr.dictfetchone()
- if res:
- cr.execute('UPDATE ir_sequence SET number_next=number_next+number_increment WHERE id=%s AND active=%s', (res['id'], True))
- if res['number_next']:
- return self._process(res['prefix']) + '%%0%sd' % res['padding'] % res['number_next'] + self._process(res['suffix'])
+ company_id = self.pool.get('res.users').browse(cr, uid, uid, context).company_id.id
+ seq_id = self.search(cr, uid, [(test,'=',sequence_id),('active','=',True),('company_id','=',company_id)])
+ if not seq_id:
+ seq_id = self.search(cr, uid, [(test,'=',sequence_id),('active','=',True),('company_id','=',False)])
+ if seq_id:
+ sequece_data = self.browse(cr, uid, seq_id[0], context)
+ self.write(cr, uid, sequece_data.id, {'number_next': sequece_data.number_next + sequece_data.number_increment})
+ if sequece_data.number_next:
+ return self._process(sequece_data.prefix) + '%%0%sd' % sequece_data.padding % sequece_data.number_next + self._process(sequece_data.suffix)
else:
- return self._process(res['prefix']) + self._process(res['suffix'])
+ return self._process(sequece_data.prefix) + self._process(sequece_data.suffix)
return False
def get(self, cr, uid, code):
=== modified file 'bin/osv/orm.py'
--- bin/osv/orm.py 2010-11-23 16:05:06 +0000
+++ bin/osv/orm.py 2010-11-24 14:12:47 +0000
@@ -1386,6 +1386,12 @@
trans = self.pool.get('ir.translation')._get_source(cr, user, context['base_model_name'], 'view', context['lang'], node.get('string'))
if trans:
node.set('string', trans)
+ if node.get('confirm'):
+ trans = self.pool.get('ir.translation')._get_source(cr, user, self._name, 'view', context['lang'], node.get('confirm').encode('utf8'))
+ if not trans and ('base_model_name' in context):
+ trans = self.pool.get('ir.translation')._get_source(cr, user, context['base_model_name'], 'view', context['lang'], node.get('confirm').encode('utf8'))
+ if trans:
+ node.set('confirm', trans)
if node.get('sum'):
trans = self.pool.get('ir.translation')._get_source(cr, user, self._name, 'view', context['lang'], node.get('sum'))
if trans:
@@ -4160,6 +4166,8 @@
old_children = sorted(old_record[field_name])
new_children = sorted(new_record[field_name])
for (old_child, new_child) in zip(old_children, new_children):
+ if target_obj == self and old_child == old_id:
+ continue # avoid infinite loop with self-inheritance
# recursive copy of translations here
target_obj.copy_translations(cr, uid, old_child, new_child, context=context)
# and for translatable fields we keep them for copy
=== modified file 'bin/sql_db.py'
--- bin/sql_db.py 2010-09-18 09:30:52 +0000
+++ bin/sql_db.py 2010-11-24 14:12:47 +0000
@@ -290,7 +290,11 @@
# note: this code is called only if the for loop has completed (no break)
raise PoolError('The Connection Pool Is Full')
- result = psycopg2.connect(dsn=dsn, connection_factory=PsycoConnection)
+ try:
+ result = psycopg2.connect(dsn=dsn, connection_factory=PsycoConnection)
+ except psycopg2.Error, e:
+ self.__logger.log(logging.ERROR, 'connect:%s', e)
+ raise
self._connections.append((result, True))
self._debug('Create new connection')
return result
=== modified file 'bin/tools/translate.py'
--- bin/tools/translate.py 2010-11-16 14:15:08 +0000
+++ bin/tools/translate.py 2010-11-24 14:12:47 +0000
@@ -166,7 +166,7 @@
cr = pooler.get_db(dbs[0]).cursor()
is_new_cr = True
return cr, is_new_cr
-
+
def _get_lang(self, frame):
lang = frame.f_locals.get('context', {}).get('lang', False)
if not lang:
@@ -178,7 +178,7 @@
c = getattr(s, 'localcontext', {})
lang = c.get('lang', False)
return lang
-
+
def __call__(self, source):
is_new_cr = False
res = source
@@ -464,6 +464,8 @@
res.append(de.get('string').encode("utf8"))
if de.get("sum"):
res.append(de.get('sum').encode("utf8"))
+ if de.get("confirm"):
+ res.append(de.get('confirm').encode("utf8"))
for n in de:
res.extend(trans_parse_view(n))
return res
Follow ups