Valencia Rodrigues (OpenERP) has proposed merging 
lp:~openerp-dev/openobject-server/6.0-opw-51206-vro into 
lp:openobject-server/6.0.

Requested reviews:
  Vinay Rana (openerp) (vra-openerp)

For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-server/6.0-opw-51206-vro/+merge/85792

Hello,

Import of datas was recently improved to allow import of inactive records 
(revision: 3547). But this presumed that the 'active' field is present in the 
object. Hence, import results in the following traceback for objects without 
the field 'active':

Environment Information : 
System : Windows-XP-5.1.2600-SP3
OS Name : nt
Operating System Release : XP
Operating System Version : 5.1.2600
Operating System Architecture : 32bit
Operating System Locale : nl_NL.cp1252
Python Version : 2.5.2
OpenERP-Client Version : 6.0.2
Last revision No. & ID :Bazaar Package not Found !Traceback (most recent call 
last):
  File "/home/odoo/openerp/server/bin/netsvc.py", line 490, in dispatch
    result = ExportService.getService(service_name).dispatch(method, auth, 
params)
  File "/home/odoo/openerp/server/bin/addons/use_control/services.py", line 41, 
in dispatch
    return super(recording_objects_proxy, self).dispatch(func, auth, params)
  File "/home/odoo/openerp/server/bin/service/web_services.py", line 654, in 
dispatch
    res = fn(db, uid, *params)
  File "/home/odoo/openerp/server/bin/addons/audittrail/audittrail.py", line 
522, in execute
    res = my_fct(db, uid, model, method, *args)
  File "/home/odoo/openerp/server/bin/addons/audittrail/audittrail.py", line 
500, in my_fct
    return fct_src(db, uid_orig, model, method, *args)
  File "/home/odoo/openerp/server/bin/osv/osv.py", line 122, in wrapper
    return f(self, dbname, *args, **kwargs)
  File "/home/odoo/openerp/server/bin/osv/osv.py", line 176, in execute
    res = self.execute_cr(cr, uid, obj, method, *args, **kw)
  File "/home/odoo/openerp/server/bin/osv/osv.py", line 167, in execute_cr
    return getattr(object, method)(cr, uid, *args, **kw)
  File "/home/odoo/openerp/server/bin/osv/orm.py", line 870, in import_data
    process_liness(self, datas, [], current_module, self._name, fields_def, 
position=position)
  File "/home/odoo/openerp/server/bin/osv/orm.py", line 820, in process_liness
    res = _get_id(relation, line[i], current_module, mode)
  File "/home/odoo/openerp/server/bin/osv/orm.py", line 726, in _get_id
    ids = obj_model.search(cr, uid, [('id', '=', 
int(id)),('active','in',['True','False'])], context=context)
  File "/home/odoo/openerp/server/bin/osv/orm.py", line 1745, in search
    return self._search(cr, user, args, offset=offset, limit=limit, 
order=order, context=context, count=count)
  File "/home/odoo/openerp/server/bin/osv/orm.py", line 4016, in _search
    query = self._where_calc(cr, user, args, context=context)
  File "/home/odoo/openerp/server/bin/osv/orm.py", line 3871, in _where_calc
    where_clause, where_params = e.to_sql()
  File "/home/odoo/openerp/server/bin/osv/expression.py", line 490, in to_sql
    q, p = self.__leaf_to_sql(e, table)
  File "/home/odoo/openerp/server/bin/osv/expression.py", line 416, in 
__leaf_to_sql
    instr = ','.join([table._columns[left]._symbol_set[0]] * len_after)
KeyError: 'active'

This fix resolves the error.

Thanks
-- 
https://code.launchpad.net/~openerp-dev/openobject-server/6.0-opw-51206-vro/+merge/85792
Your team OpenERP R&D Team is subscribed to branch 
lp:~openerp-dev/openobject-server/6.0-opw-51206-vro.
=== modified file 'bin/osv/orm.py'
--- bin/osv/orm.py	2011-11-24 12:52:13 +0000
+++ bin/osv/orm.py	2011-12-15 05:57:25 +0000
@@ -723,7 +723,10 @@
             if mode=='.id':
                 id = int(id)
                 obj_model = self.pool.get(model_name)
-                ids = obj_model.search(cr, uid, [('id', '=', int(id)),('active','in',['True','False'])], context=context)
+                if obj_model._columns.get('active'):
+                    ids = obj_model.search(cr, uid, [('id', '=', int(id)),('active','in',['True','False'])], context=context)
+                else:
+                    ids = obj_model.search(cr, uid, [('id', '=', int(id))], context=context)
                 if not len(ids):
                     raise Exception(_("Database ID doesn't exist: %s : %s") %(model_name, id))
             elif mode=='id':

_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help   : https://help.launchpad.net/ListHelp

Reply via email to