If you installed the website_seo module you can't uninstall it later.
Steps to reproduce
create a new database with the latest v9
install the website_seo module (see #25 "Additional information" for more information)
try to uninstall the website_seo module and you get the following error
2015-11-12 11:54:55,361 11161 ERROR master2 openerp.http: Exception during JSON request handling.
Traceback (most recent call last):
File "/var/www/openerp/http.py", line 599, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/var/www/openerp/http.py", line 636, in dispatch
result = self._call_function(**self.params)
File "/var/www/openerp/http.py", line 315, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/var/www/openerp/service/model.py", line 113, in wrapper
return f(dbname, *args, **kwargs)
File "/var/www/openerp/http.py", line 308, in checked_call
result = self.endpoint(*a, **kw)
File "/var/www/openerp/http.py", line 887, in __call__
return self.method(*args, **kw)
File "/var/www/openerp/http.py", line 465, in response_wrap
response = f(*args, **kw)
File "/var/www/addons/web/controllers/main.py", line 975, in call_button
action = self._call_kw(model, method, args, {})
File "/var/www/addons/web/controllers/main.py", line 963, in _call_kw
return checked_call(request.db, *args, **kwargs)
File "/var/www/openerp/service/model.py", line 113, in wrapper
return f(dbname, *args, **kwargs)
File "/var/www/addons/web/controllers/main.py", line 962, in checked_call
return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
File "/var/www/openerp/api.py", line 223, in wrapper
return old_api(self, *args, **kwargs)
File "/var/www/openerp/addons/base/module/wizard/base_module_upgrade.py", line 87, in upgrade_module
openerp.modules.registry.RegistryManager.new(cr.dbname, update_module=True)
File "/var/www/openerp/modules/registry.py", line 385, in new
openerp.modules.load_modules(registry._db, force_demo, status, update_module)
File "/var/www/openerp/modules/loading.py", line 385, in load_modules
registry['ir.module.module'].module_uninstall(cr, SUPERUSER_ID, modules_to_remove.values())
File "/var/www/openerp/api.py", line 223, in wrapper
return old_api(self, *args, **kwargs)
File "/var/www/openerp/addons/base/module/module.py", line 471, in module_uninstall
ir_model_data._module_data_uninstall(cr, uid, modules_to_remove, context)
File "/var/www/openerp/api.py", line 223, in wrapper
return old_api(self, *args, **kwargs)
File "/var/www/openerp/addons/base/ir/ir_model.py", line 1247, in _module_data_uninstall
unlink_if_refcount((model, res_id) for model, res_id in to_unlink
File "/var/www/openerp/addons/base/ir/ir_model.py", line 1221, in unlink_if_refcount
if field.name in openerp.models.LOG_ACCESS_COLUMNS and self.pool[field.model]._log_access:
File "/var/www/openerp/fields.py", line 805, in __get__
self.determine_value(record)
File "/var/www/openerp/fields.py", line 903, in determine_value
record._prefetch_field(self)
File "/var/www/openerp/api.py", line 221, in wrapper
return new_api(self, *args, **kwargs)
File "/var/www/openerp/models.py", line 3270, in _prefetch_field
result = records.read([f.name for f in fs], load='_classic_write')
File "/var/www/openerp/api.py", line 221, in wrapper
return new_api(self, *args, **kwargs)
File "/var/www/openerp/models.py", line 3211, in read
self._read_from_database(stored, inherited)
File "/var/www/openerp/api.py", line 221, in wrapper
return new_api(self, *args, **kwargs)
File "/var/www/openerp/models.py", line 3321, in _read_from_database
qual_names = map(qualify, set(fields_pre + [self._fields['id']]))
File "/var/www/openerp/models.py", line 3315, in qualify
res = self._inherits_join_calc(self._table, field.name, query)
File "/var/www/openerp/api.py", line 221, in wrapper
return new_api(self, *args, **kwargs)
File "/var/www/openerp/models.py", line 2189, in _inherits_join_calc
return model._generate_translated_field(alias, field, query)
File "/var/www/openerp/api.py", line 221, in wrapper
return new_api(self, *args, **kwargs)
File "/var/www/addons_bloopark/website_seo/core/core.py", line 46, in _extended_generate_translated_field
lang = lang_model.get_code_from_alias(self._context.get('lang'))
File "/var/www/openerp/api.py", line 221, in wrapper
return new_api(self, *args, **kwargs)
File "/var/www/addons_bloopark/website_seo/models/res_lang.py", line 32, in get_code_from_alias
lang = self.search([('short_code', '=', code)])
File "/var/www/openerp/api.py", line 221, in wrapper
return new_api(self, *args, **kwargs)
File "/var/www/openerp/api.py", line 454, in new_api
result = method(self._model, cr, uid, *args, **kwargs)
File "/var/www/openerp/models.py", line 1659, in search
return self._search(cr, user, args, offset=offset, limit=limit, order=order, context=context, count=count)
File "/var/www/openerp/api.py", line 223, in wrapper
return old_api(self, *args, **kwargs)
File "/var/www/openerp/models.py", line 4729, in _search
query = self._where_calc(cr, user, args, context=context)
File "/var/www/openerp/api.py", line 223, in wrapper
return old_api(self, *args, **kwargs)
File "/var/www/openerp/models.py", line 4513, in _where_calc
e = expression.expression(cr, user, domain, self, context)
File "/var/www/addons_bloopark/website_seo/core/core.py", line 89, in extended_init
self.parse(cr, uid, context=parse_ctx)
File "/var/www/openerp/osv/expression.py", line 833, in parse
raise ValueError("Invalid field %r in leaf %r" % (left, str(leaf)))
ValueError: Invalid field 'short_code' in leaf "<osv.ExtendedLeaf: ('short_code', '=', None) on res_lang (ctx: )>"
Expected behaviour
the website_seo module should be uninstallable at any time
Additional information
If you commented out the including of the file "website_seo/core/core.py" you can uninstall the website_seo module.
Problem
If you installed the website_seo module you can't uninstall it later.
Steps to reproduce
Expected behaviour
Additional information
If you commented out the including of the file "website_seo/core/core.py" you can uninstall the website_seo module.