c2c-oerpscenario team mailing list archive
-
c2c-oerpscenario team
-
Mailing list archive
-
Message #26882
[Bug 799378] Re: Error reading fields of an object inherited by prototyping
Hello Lorenzo,
I have checked your issue but did not face any problem like this bug description.
would you please check this with respect of addons module only and provide me the proper test case which raises the same traceback.
Thanks and waiting for your reply.
** Changed in: openobject-server
Status: New => Incomplete
--
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/799378
Title:
Error reading fields of an object inherited by prototyping
Status in OpenERP Server:
Incomplete
Bug description:
openobject-server/6.0 revno 3445
Steps:
1 - Install 'crm' module
2 - Make a module that adds a field to 'res.partner.address' (for instance, you can use 'base_partner_surname' http://apps.openerp.com/addon/1526 or 'l10n_it_base' http://apps.openerp.com/addon/4528) and install it
3 - Try to create a new lead
you get:
[2011-06-19 14:16:01,056][test] ERROR:db.cursor:Programming error: column crm_lead.last_name does not exist
LINE 1: SELECT crm_lead.date_closed,crm_lead.last_name,date_trunc('s...
^
, in query SELECT crm_lead.date_closed,crm_lead.last_name,date_trunc('second', crm_lead.create_date) as create_date,crm_lead.probability,crm_lead.type_id,crm_lead.partner_address_id,crm_lead.date_action_last,crm_lead.day_close,crm_lead.street,crm_lead.day_open,crm_lead.contact_name,crm_lead.partner_id,crm_lead.date_action_next,crm_lead.city,crm_lead.first_name,crm_lead.user_id,crm_lead.zip,crm_lead.title,crm_lead.partner_name,crm_lead.planned_revenue,crm_lead.country_id,crm_lead.company_id,crm_lead.id,crm_lead.priority,crm_lead.state,crm_lead.email_cc,crm_lead.type,crm_lead.email,crm_lead.function,crm_lead.fax,crm_lead.optin,crm_lead.description,crm_lead.street2,crm_lead.ref2,crm_lead.section_id,crm_lead.title_action,crm_lead.phone,date_trunc('second', crm_lead.write_date) as write_date,crm_lead.active,crm_lead.date_action,crm_lead.categ_id,crm_lead.name,crm_lead.stage_id,crm_lead.date_open,crm_lead.date_deadline,crm_lead.optout,crm_lead.mobile,crm_lead.ref,crm_lead.birthdate,crm_lead.channel_id,crm_lead.state_id,crm_lead.email_from,crm_lead.referred,crm_lead.id FROM "crm_lead" WHERE crm_lead.id IN %s ORDER BY priority,date_action,id desc
[2011-06-19 14:16:01,057][test] ERROR:web-services:Uncaught exception
Traceback (most recent call last):
File "/home/elbati/workspace/openerp/openerp6/server/bin/osv/osv.py", line 122, in wrapper
return f(self, dbname, *args, **kwargs)
File "/home/elbati/workspace/openerp/openerp6/server/bin/osv/osv.py", line 176, in execute
res = self.execute_cr(cr, uid, obj, method, *args, **kw)
File "/home/elbati/workspace/openerp/openerp6/server/bin/osv/osv.py", line 167, in execute_cr
return getattr(object, method)(cr, uid, *args, **kw)
File "/home/elbati/workspace/openerp/openerp6/server/bin/osv/orm.py", line 3694, in create
self.pool.get(object)._store_set_values(cr, user, ids, fields2, context)
File "/home/elbati/workspace/openerp/openerp6/server/bin/osv/orm.py", line 3788, in _store_set_values
result = self._columns[val[0]].get(cr, self, ids, val, 1, context=context)
File "/home/elbati/workspace/openerp/openerp6/server/bin/osv/fields.py", line 800, in get
res = self._fnct(obj, cr, user, ids, name, self._arg, context)
File "/home/elbati/workspace/openerp/openerp6/server/bin/addons/crm/crm_lead.py", line 69, in _compute_day
if lead.date_closed:
File "/home/elbati/workspace/openerp/openerp6/server/bin/osv/orm.py", line 292, in __getattr__
return self[name]
File "/home/elbati/workspace/openerp/openerp6/server/bin/osv/orm.py", line 194, in __getitem__
fields_to_fetch = filter(lambda x: x[1]._classic_write, self._table._columns.items())
File "/home/elbati/workspace/openerp/openerp6/server/bin/osv/orm.py", line 2942, in read
result = self._read_flat(cr, user, select, fields, context, load)
File "/home/elbati/workspace/openerp/openerp6/server/bin/osv/orm.py", line 3001, in _read_flat
cr.execute(query, (tuple(sub_ids),))
File "/home/elbati/workspace/openerp/openerp6/server/bin/sql_db.py", line 78, in wrapper
return f(self, *args, **kwargs)
File "/home/elbati/workspace/openerp/openerp6/server/bin/sql_db.py", line 131, in execute
res = self._obj.execute(query, params)
ProgrammingError: column crm_lead.last_name does not exist
LINE 1: SELECT crm_lead.date_closed,crm_lead.last_name,date_trunc('s...
^
This is because 'crm.lead' inherits 'res.partner.address' by prototyping, but the new module (base_partner_surname) has been installed after 'crm', so, when 'crm' was installed, 'last_name' didn't exist.
Investigating, I noticed that at line 194
http://bazaar.launchpad.net/~openerp/openobject-server/6.0/view/3445/bin/osv/orm.py#L190
'self._table._columns' contains 'last_name' while that column, as mentioned above, is not present within the database.
To manage notifications about this bug go to:
https://bugs.launchpad.net/openobject-server/+bug/799378/+subscriptions
References