This issue is certainly not fixed, please do not change the status unless you
can find a patch that specifically addresses it.
It is a complicated issue inherent to the OpenERP module dependency system and
the inheritance mechanism, and it will not be fixed by chance.
If you cannot reproduce it with the simple test case of installing the
base_contact module after the crm module, it's only because the installation
procedure is slightly different in 6.1, as Thu explained in comment #5. The
issue will appear nevertheless as soon as the server is restarted, and as long
as the base_contact module is loaded before the crm module ( you can see the
loading order in the server log).
BTW the workaround is very simple: either force a dependency between the
conflicting modules, e.g. make crm depend on base_contact, or even
simpler, manually force an update of the module in which the error
occurs (in this case crm), and it will permanently solve the issue.
PS: Independently of this bug, it seems many people believe base_contact to be
an important and frequently needed module. This is mostly not correct, and
base_contact is not needed at all to manage contacts. On a database without
base_contact, the contacts are simply the partner addresses. The only case
where base_contact is required is when the same contact needs to be associated
with several parent companies. In most cases this is not needed, and for few
odd cases where a contact belongs to multiple partners, duplicating it is fine.
Avoiding to install base_contact will save you from a lot of trouble.
** Changed in: openobject-server
Status: Fix Released => Confirmed
--
You received this bug notification because you are a member of OpenERP
Indian Team, which is subscribed to OpenERP Server.
https://bugs.launchpad.net/bugs/799378
Title:
models inheriting by prototype (_inherit with different _name) do not
get updated when parent model is modified
Status in OpenERP Server:
Confirmed
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
_______________________________________________
Mailing list: https://launchpad.net/~openerp-india
Post to : [email protected]
Unsubscribe : https://launchpad.net/~openerp-india
More help : https://help.launchpad.net/ListHelp