← Back to team overview

openerp-dev-web team mailing list archive

[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