← Back to team overview

c2c-oerpscenario team mailing list archive

[Bug 740202] Re: passing int to write method of stock.move gives "Field '0' does not exist in object 'browse_record(stock.move, ..."

 

Hello Vinay Rana,

this is not a bug of mrp_prodlot_autosplit, otherwise I could fix it by
myself.

If you read
http://doc.openerp.com/v6.0/developer/2_5_Objects_Fields_Methods/methods.html#osv.osv.osv.write
, you'll see that must be possible to write a record by passing its ID
(besides ID list).

If your answer is "mrp_prodlot_autosplit has to pass a list of ids",
this makes the developer book erroneous and forces every other modules
calling that method to use always LIST, instead of allowing the choice
to use INT or LIST.

Please fix the write method of 'stock.move' as described above.

** Changed in: openobject-addons
       Status: Fix Released => New

-- 
You received this bug notification because you are a member of C2C
OERPScenario, which is subscribed to the OpenERP Project Group.
https://bugs.launchpad.net/bugs/740202

Title:
  passing int to write method of stock.move gives "Field '0' does not
  exist in object 'browse_record(stock.move,..."

Status in OpenERP Modules (addons):
  New

Bug description:
  - Call the write method of stock.move passing ids as INT (instead of LIST) with user != admin
  - Get
    File "server/bin/addons/stock/stock.py", line 1616, in write
      for move in self.browse(cr, uid, ids, context=context):
    File "server/bin/osv/orm.py", line 189, in __getitem__
      name, self))
  KeyError: "Field '0' does not exist in object 'browse_record(stock.move, 422)'"

  Suggested FIX:
  After line 1614 ( http://bazaar.launchpad.net/~openerp/openobject-addons/trunk/view/4567/stock/stock.py#L1611 ) add

              if isinstance(ids, (int, long)):
                  ids = [ids]



References