ProgrammingError: can't adapt type 'browse_record' - when "refuse" an approved holiday

Bug #794099 reported by Nissar
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Odoo Addons (MOVED TO GITHUB)
Fix Released
Medium
OpenERP Publisher's Warranty Team

Bug Description

I logged in as "admin" and tried to "refuse" one approved holiday I got the following coding error. I tried to modify the python code to get more details.. I didn't get it fixed..

Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/openerp-server/netsvc.py", line 489, in dispatch
    result = ExportService.getService(service_name).dispatch(method, auth, params)
  File "/usr/lib/python2.6/site-packages/openerp-server/service/web_services.py", line 599, in dispatch
    res = fn(db, uid, *params)
  File "/usr/lib/python2.6/site-packages/openerp-server/osv/osv.py", line 122, in wrapper
    return f(self, dbname, *args, **kwargs)
  File "/usr/lib/python2.6/site-packages/openerp-server/osv/osv.py", line 196, in exec_workflow
    res = self.exec_workflow_cr(cr, uid, obj, method, *args)
  File "/usr/lib/python2.6/site-packages/openerp-server/osv/osv.py", line 189, in exec_workflow_cr
    return wf_service.trg_validate(uid, obj, args[0], method, cr)
  File "/usr/lib/python2.6/site-packages/openerp-server/workflow/wkf_service.py", line 80, in trg_validate
    res2 = instance.validate(cr, id, ident, signal)
  File "/usr/lib/python2.6/site-packages/openerp-server/workflow/instance.py", line 48, in validate
    workitem.process(cr, witem, ident, signal, force_running, stack=stack)
  File "/usr/lib/python2.6/site-packages/openerp-server/workflow/workitem.py", line 61, in process
    ok = _split_test(cr, workitem, activity['split_mode'], ident, signal, stack)
  File "/usr/lib/python2.6/site-packages/openerp-server/workflow/workitem.py", line 174, in _split_test
    _join_test(cr, t[0], t[1], ident, stack)
  File "/usr/lib/python2.6/site-packages/openerp-server/workflow/workitem.py", line 182, in _join_test
    create(cr,[activity], inst_id, ident, stack)
  File "/usr/lib/python2.6/site-packages/openerp-server/workflow/workitem.py", line 41, in create
    process(cr, res, ident, stack=stack)
  File "/usr/lib/python2.6/site-packages/openerp-server/workflow/workitem.py", line 53, in process
    result = _execute(cr, workitem, activity, ident, stack)
  File "/usr/lib/python2.6/site-packages/openerp-server/workflow/workitem.py", line 120, in _execute
    wkf_expr.execute(cr, ident, workitem, activity)
  File "/usr/lib/python2.6/site-packages/openerp-server/workflow/wkf_expr.py", line 68, in execute
    return _eval_expr(cr, ident, workitem, activity['action'])
  File "/usr/lib/python2.6/site-packages/openerp-server/workflow/wkf_expr.py", line 58, in _eval_expr
    ret = eval(line, env, nocopy=True)
  File "/usr/lib/python2.6/site-packages/openerp-server/tools/safe_eval.py", line 284, in safe_eval
    return eval(test_expr(expr,_SAFE_OPCODES, mode=mode), globals_dict, locals_dict)
  File "", line 1, in <module>
  File "/usr/lib/python2.6/site-packages/openerp-server/osv/orm.py", line 181, in <lambda>
    return lambda *args, **argv: attr(self._cr, self._uid, [self._id], *args, **argv)
  File "/usr/lib/python2.6/site-packages/openerp-server/addons/hr_holidays/hr_holidays.py", line 285, in holidays_refuse
    self.holidays_cancel(cr, uid, ids)
  File "/usr/lib/python2.6/site-packages/openerp-server/addons/hr_holidays/hr_holidays.py", line 298, in holidays_cancel
    wf_service.trg_validate(uid, 'hr.holidays', id, 'cancel', cr)
  File "/usr/lib/python2.6/site-packages/openerp-server/workflow/wkf_service.py", line 78, in trg_validate
    cr.execute('select id from wkf_instance where res_id=%s and res_type=%s and state=%s', (res_id, res_type, 'active'))
  File "/usr/lib/python2.6/site-packages/openerp-server/sql_db.py", line 78, in wrapper
    return f(self, *args, **kwargs)
  File "/usr/lib/python2.6/site-packages/openerp-server/sql_db.py", line 131, in execute
    res = self._obj.execute(query, params)
ProgrammingError: can't adapt type 'browse_record'

I checked the opernerp-server logs:

[2011-06-07 16:31:24,356][lt_openerp] WARNING:browse_record:[01]: Field '__conform__' does not exist in object 'browse_record(hr.holidays, 6)':
[2011-06-07 16:31:24,356][lt_openerp] WARNING:browse_record:[02]: None
[2011-06-07 16:31:24,356][lt_openerp] ERROR:db.cursor:Programming error: can't adapt type 'browse_record', in query select id from wkf_instance where res_id=%s and res_type=%s and state=%s

Can anyone give me a light on this? Am I missing anything?

Related branches

Revision history for this message
Nissar (pknissar) wrote :
Changed in openobject-addons:
status: New → Confirmed
importance: Undecided → Medium
assignee: nobody → OpenERP Publisher's Warranty Team (openerp-opw)
Revision history for this message
Jay Vora (Serpent Consulting Services) (jayvora) wrote :

Nissar,

Thanks for reporting.

It has been fixed by revision 4638 <email address hidden> into stable 6.

Changed in openobject-addons:
status: Confirmed → Fix Released
milestone: none → 6.0.3
Revision history for this message
Nissar (pknissar) wrote :

Hi Jay,

Thanks for fixing the issue. I saw that its a change in hr_holidays/hr_holidays.py
But how can I apply this change to my current phython installation?

I tried to
- Upgrade hr_holidays module. but no luck
- Modify the code directly here /usr/lib/python2.6/site-packages/openerp-server/addons/hr_holidays/hr_holidays.py

but still no luck.. My installed openerp version is 6.0.2 and hr_holidays version (after upgrade) is 6.0.1.5

any help?

Revision history for this message
Nissar (pknissar) wrote :

Hi again..

After I restart openerp-server service, it worked..

Thanks for your quick help.. much appreciated..

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.