If you try to change the SEO url on the contact page in the promote panel a server error occurs.
Steps to reproduce
create a new database with language german and with demo data
install the website_seo module
activate the developer mode
go to Settings -> Translations -> Languages and set the "Short code" to "en" for the "English" entry
go to Website Admin -> Configuration and add "German / Deutsch" as second language ans as default language and save
go to the contact page in the frontend, open the promote panel, fill in a SEO url and save: you will get the following error in the server log (maybe the IDs in the last line differ) and the promote panel doesn't close (but it seems that the value will be saved)
Traceback (most recent call last):
File "/var/www/openerp/http.py", line 605, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/var/www/openerp/http.py", line 642, in dispatch
result = self._call_function(**self.params)
File "/var/www/openerp/http.py", line 316, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/var/www/openerp/service/model.py", line 118, in wrapper
return f(dbname, *args, **kwargs)
File "/var/www/openerp/http.py", line 309, in checked_call
result = self.endpoint(*a, **kw)
File "/var/www/openerp/http.py", line 893, in __call__
return self.method(*args, **kw)
File "/var/www/openerp/http.py", line 471, in response_wrap
response = f(*args, **kw)
File "/var/www/addons/web/controllers/main.py", line 892, in call_kw
return self._call_kw(model, method, args, kwargs)
File "/var/www/addons/web/controllers/main.py", line 884, in _call_kw
return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
File "/var/www/openerp/api.py", line 238, in wrapper
return old_api(self, *args, **kwargs)
File "/var/www/openerp/api.py", line 369, in old_api
result = method(recs, *args, **kwargs)
File "/var/www/addons/website_seo/models/ir_ui_view.py", line 116, in write
res = super(View, self.with_context(lang=lang)).write(vals)
File "/var/www/openerp/api.py", line 236, in wrapper
return new_api(self, *args, **kwargs)
File "/var/www/openerp/api.py", line 562, in new_api
result = method(self._model, cr, uid, self.ids, *args, **old_kwargs)
File "/var/www/openerp/addons/base/ir/ir_ui_view.py", line 374, in write
context)
File "/var/www/openerp/api.py", line 238, in wrapper
return old_api(self, *args, **kwargs)
File "/var/www/openerp/api.py", line 369, in old_api
result = method(recs, *args, **kwargs)
File "/var/www/addons/website_seo/models/website.py", line 248, in write
super(WebsiteSeoMetadata, obj).write(vals)
File "/var/www/openerp/api.py", line 236, in wrapper
return new_api(self, *args, **kwargs)
File "/var/www/openerp/models.py", line 3819, in write
self._write(old_vals)
File "/var/www/openerp/api.py", line 236, in wrapper
return new_api(self, *args, **kwargs)
File "/var/www/openerp/api.py", line 562, in new_api
result = method(self._model, cr, uid, self.ids, *args, **old_kwargs)
File "/var/www/openerp/models.py", line 3951, in _write
self.write(cr, user, ids, {f: vals[f]}, context=context_wo_lang)
File "/var/www/openerp/api.py", line 238, in wrapper
return old_api(self, *args, **kwargs)
File "/var/www/openerp/api.py", line 369, in old_api
result = method(recs, *args, **kwargs)
File "/var/www/addons/website_seo/models/ir_ui_view.py", line 120, in write
self.with_context(lang=lang).update_website_menus()
File "/var/www/openerp/api.py", line 236, in wrapper
return new_api(self, *args, **kwargs)
File "/var/www/addons/website_seo/models/ir_ui_view.py", line 131, in update_website_menus
self.env['website.menu'].search([]).update_website_menus()
File "/var/www/openerp/api.py", line 236, in wrapper
return new_api(self, *args, **kwargs)
File "/var/www/addons/website_seo/models/website.py", line 193, in update_website_menus
vals.update({'url': '/page/%s' % view.key.replace('website.', '')})
File "/var/www/openerp/fields.py", line 797, in __get__
record.ensure_one()
File "/var/www/openerp/models.py", line 5378, in ensure_one
raise ValueError("Expected singleton: %s" % self)
ValueError: Expected singleton: ir.ui.view(296, 250)
Expected behaviour
the promote panel should be closed and no error should be shown in the log
Problem
If you try to change the SEO url on the contact page in the promote panel a server error occurs.
Steps to reproduce
Expected behaviour