← Back to team overview

credativ team mailing list archive

[Bug 904541] [NEW] import_data regression: merge revision 3547

 

Public bug reported:

OpenERP will crash if imported model does not have any 'active' column

To test it try calling:
sock.execute(dbname, uid, pwd, 'ir.ui.view', 'search', [('active','in',['True','False'])])

  File "/usr/local/openerp/6.0/server/bin/netsvc.py", line 489, in dispatch
    result = ExportService.getService(service_name).dispatch(method, auth, params)
  File "/usr/local/openerp/6.0/server/bin/service/web_services.py", line 599, in dispatch
    res = fn(db, uid, *params)
  File "/usr/local/openerp/6.0/server/bin/osv/osv.py", line 122, in wrapper
    return f(self, dbname, *args, **kwargs)
  File "/usr/local/openerp/6.0/server/bin/osv/osv.py", line 176, in execute
    res = self.execute_cr(cr, uid, obj, method, *args, **kw)
  File "/usr/local/openerp/6.0/server/bin/osv/osv.py", line 167, in execute_cr
    return getattr(object, method)(cr, uid, *args, **kw)
  File "/usr/local/openerp/6.0/server/bin/osv/orm.py", line 870, in import_data
    process_liness(self, datas, [], current_module, self._name, fields_def, position=position)
  File "/usr/local/openerp/6.0/server/bin/osv/orm.py", line 789, in process_liness
    data_res_id = _get_id(model_name, line[i], current_module, '.id')
  File "/usr/local/openerp/6.0/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 "/usr/local/openerp/6.0/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 "/usr/local/openerp/6.0/server/bin/osv/orm.py", line 4016, in _search
    query = self._where_calc(cr, user, args, context=context)
  File "/usr/local/openerp/6.0/server/bin/osv/orm.py", line 3871, in _where_calc
    where_clause, where_params = e.to_sql()
  File "/usr/local/openerp/6.0/server/bin/osv/expression.py", line 490, in to_sql
    q, p = self.__leaf_to_sql(e, table)
  File "/usr/local/openerp/6.0/server/bin/osv/expression.py", line 416, in __leaf_to_sql
    instr = ','.join([table._columns[left]._symbol_set[0]] * len_after)
KeyError: 'active'

See: http://bazaar.launchpad.net/~openerp/openobject-server/6.0/revision/3547
'active_test': True in the context should have been used instead of this ....

** Affects: openobject-server
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of OpenERP
Framework Experts, which is subscribed to OpenERP Server.
https://bugs.launchpad.net/bugs/904541

Title:
  import_data regression: merge revision 3547

Status in OpenERP Server:
  New

Bug description:
  OpenERP will crash if imported model does not have any 'active' column

  To test it try calling:
  sock.execute(dbname, uid, pwd, 'ir.ui.view', 'search', [('active','in',['True','False'])])

    File "/usr/local/openerp/6.0/server/bin/netsvc.py", line 489, in dispatch
      result = ExportService.getService(service_name).dispatch(method, auth, params)
    File "/usr/local/openerp/6.0/server/bin/service/web_services.py", line 599, in dispatch
      res = fn(db, uid, *params)
    File "/usr/local/openerp/6.0/server/bin/osv/osv.py", line 122, in wrapper
      return f(self, dbname, *args, **kwargs)
    File "/usr/local/openerp/6.0/server/bin/osv/osv.py", line 176, in execute
      res = self.execute_cr(cr, uid, obj, method, *args, **kw)
    File "/usr/local/openerp/6.0/server/bin/osv/osv.py", line 167, in execute_cr
      return getattr(object, method)(cr, uid, *args, **kw)
    File "/usr/local/openerp/6.0/server/bin/osv/orm.py", line 870, in import_data
      process_liness(self, datas, [], current_module, self._name, fields_def, position=position)
    File "/usr/local/openerp/6.0/server/bin/osv/orm.py", line 789, in process_liness
      data_res_id = _get_id(model_name, line[i], current_module, '.id')
    File "/usr/local/openerp/6.0/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 "/usr/local/openerp/6.0/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 "/usr/local/openerp/6.0/server/bin/osv/orm.py", line 4016, in _search
      query = self._where_calc(cr, user, args, context=context)
    File "/usr/local/openerp/6.0/server/bin/osv/orm.py", line 3871, in _where_calc
      where_clause, where_params = e.to_sql()
    File "/usr/local/openerp/6.0/server/bin/osv/expression.py", line 490, in to_sql
      q, p = self.__leaf_to_sql(e, table)
    File "/usr/local/openerp/6.0/server/bin/osv/expression.py", line 416, in __leaf_to_sql
      instr = ','.join([table._columns[left]._symbol_set[0]] * len_after)
  KeyError: 'active'

  See: http://bazaar.launchpad.net/~openerp/openobject-server/6.0/revision/3547
  'active_test': True in the context should have been used instead of this ....

To manage notifications about this bug go to:
https://bugs.launchpad.net/openobject-server/+bug/904541/+subscriptions


Follow ups

References