Error:
Odoo Server Error
Traceback (most recent call last):
File "/opt/odoo/odoo-server/odoo/addons/base/models/ir_ui_view.py", line 671, in apply_inheritance_specs
pre_locate=pre_locate)
File "/opt/odoo/odoo-server/odoo/tools/template_inheritance.py", line 230, in apply_inheritance_specs
_("Element '%s' cannot be located in parent view") % tag
ValueError: El elemento '<field name="sequence">' no puede ser localizado en la vista padre
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/odoo/odoo-server/odoo/tools/convert.py", line 712, in parse
self._tag_root(de)
File "/opt/odoo/odoo-server/odoo/tools/convert.py", line 674, in _tag_root
f(rec)
File "/opt/odoo/odoo-server/odoo/tools/convert.py", line 577, in _tag_record
record = model._load_records([data], self.mode == 'update')
File "/opt/odoo/odoo-server/odoo/models.py", line 4131, in _load_records
records = self._load_records_create([data['values'] for data in to_create])
File "/opt/odoo/odoo-server/odoo/models.py", line 4045, in _load_records_create
return self.create(values)
File "<decorator-gen-31>", line 2, in create
File "/opt/odoo/odoo-server/odoo/api.py", line 336, in _model_create_multi
return create(self, arg)
File "/opt/odoo/odoo-server/odoo/addons/base/models/ir_ui_view.py", line 475, in create
return super(View, self).create(vals_list)
File "<decorator-gen-3>", line 2, in create
File "/opt/odoo/odoo-server/odoo/api.py", line 336, in _model_create_multi
return create(self, arg)
File "/opt/odoo/odoo-server/odoo/models.py", line 3806, in create
fields[0].determine_inverse(batch_recs)
File "/opt/odoo/odoo-server/odoo/fields.py", line 1118, in determine_inverse
getattr(records, self.inverse)()
File "/opt/odoo/odoo-server/odoo/addons/base/models/ir_ui_view.py", line 299, in _inverse_arch
view.write(data)
File "/opt/odoo/odoo-server/addons/website_theme_install/models/theme_models.py", line 226, in write
res = super(IrUiView, other_views).write(vals)
File "/opt/odoo/odoo-server/addons/website/models/ir_ui_view.py", line 51, in write
return super(View, self).write(vals)
File "/opt/odoo/odoo-server/odoo/addons/base/models/ir_ui_view.py", line 493, in write
res = super(View, self).write(self._compute_defaults(vals))
File "/opt/odoo/odoo-server/odoo/models.py", line 3595, in write
real_recs._validate_fields(set(vals) - set(inverse_fields))
File "/opt/odoo/odoo-server/odoo/models.py", line 1201, in _validate_fields
check(self)
File "/opt/odoo/odoo-server/odoo/addons/base/models/ir_ui_view.py", line 387, in _check_xml
view_def = view.read_combined(['arch'])
File "/opt/odoo/odoo-server/odoo/addons/base/models/ir_ui_view.py", line 742, in read_combined
arch_tree = self.apply_inheritance_specs(arch_tree, view_arch, parent_view['id'])
File "/opt/odoo/odoo-server/odoo/addons/base/models/ir_ui_view.py", line 673, in apply_inheritance_specs
self.raise_view_error(str(e), inherit_id)
File "/opt/odoo/odoo-server/odoo/addons/base/models/ir_ui_view.py", line 614, in raise_view_error
raise ValueError(message)
ValueError: El elemento '<field name="sequence">' no puede ser localizado en la vista padre
Contexto del error:
Vista `product.template.product.tree`
[view_id: 517, xml_id: product.product_template_tree_view, model: product.template, parent_id: n/a]
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/opt/odoo/odoo-server/odoo/http.py", line 624, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/opt/odoo/odoo-server/odoo/http.py", line 310, in _handle_exception
raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
File "/opt/odoo/odoo-server/odoo/tools/pycompat.py", line 14, in reraise
raise value
File "/opt/odoo/odoo-server/odoo/http.py", line 669, in dispatch
result = self._call_function(**self.params)
File "/opt/odoo/odoo-server/odoo/http.py", line 350, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/opt/odoo/odoo-server/odoo/service/model.py", line 94, in wrapper
return f(dbname, *args, **kwargs)
File "/opt/odoo/odoo-server/odoo/http.py", line 339, in checked_call
result = self.endpoint(*a, **kw)
File "/opt/odoo/odoo-server/odoo/http.py", line 915, in __call__
return self.method(*args, **kw)
File "/opt/odoo/odoo-server/odoo/http.py", line 515, in response_wrap
response = f(*args, **kw)
File "/opt/odoo/odoo-server/addons/web/controllers/main.py", line 1326, in call_button
action = self._call_kw(model, method, args, kwargs)
File "/opt/odoo/odoo-server/addons/web/controllers/main.py", line 1314, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/opt/odoo/odoo-server/odoo/api.py", line 387, in call_kw
result = _call_kw_multi(method, model, args, kwargs)
File "/opt/odoo/odoo-server/odoo/api.py", line 374, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "<decorator-gen-59>", line 2, in button_immediate_install
File "/opt/odoo/odoo-server/odoo/addons/base/models/ir_module.py", line 72, in check_and_log
return method(self, *args, **kwargs)
File "/opt/odoo/odoo-server/odoo/addons/base/models/ir_module.py", line 463, in button_immediate_install
return self._button_immediate_function(type(self).button_install)
File "/opt/odoo/odoo-server/odoo/addons/base/models/ir_module.py", line 573, in _button_immediate_function
File "/opt/odoo/odoo-server/odoo/modules/registry.py", line 86, in new
odoo.modules.load_modules(registry._db, force_demo, status, update_module)
File "/opt/odoo/odoo-server/odoo/modules/loading.py", line 423, in load_modules
loaded_modules, update_module, models_to_check)
File "/opt/odoo/odoo-server/odoo/modules/loading.py", line 315, in load_marked_modules
perform_checks=perform_checks, models_to_check=models_to_check
File "/opt/odoo/odoo-server/odoo/modules/loading.py", line 225, in load_module_graph
load_data(cr, idref, mode, kind='data', package=package, report=report)
File "/opt/odoo/odoo-server/odoo/modules/loading.py", line 68, in load_data
tools.convert_file(cr,
package.name, filename, idref, mode, noupdate, kind, report)
File "/opt/odoo/odoo-server/odoo/tools/convert.py", line 736, in convert_file
convert_xml_import(cr, module, fp, idref, mode, noupdate, report)
File "/opt/odoo/odoo-server/odoo/tools/convert.py", line 803, in convert_xml_import
obj.parse(doc.getroot())
File "/opt/odoo/odoo-server/odoo/tools/convert.py", line 721, in parse
exc_info[2]
File "/opt/odoo/odoo-server/odoo/tools/pycompat.py", line 13, in reraise
raise value.with_traceback(tb)
File "/opt/odoo/odoo-server/odoo/tools/convert.py", line 712, in parse
self._tag_root(de)
File "/opt/odoo/odoo-server/odoo/tools/convert.py", line 674, in _tag_root
f(rec)
File "/opt/odoo/odoo-server/odoo/tools/convert.py", line 577, in _tag_record
record = model._load_records([data], self.mode == 'update')
File "/opt/odoo/odoo-server/odoo/models.py", line 4131, in _load_records
records = self._load_records_create([data['values'] for data in to_create])
File "/opt/odoo/odoo-server/odoo/models.py", line 4045, in _load_records_create
return self.create(values)
File "<decorator-gen-31>", line 2, in create
File "/opt/odoo/odoo-server/odoo/api.py", line 336, in _model_create_multi
return create(self, arg)
File "/opt/odoo/odoo-server/odoo/addons/base/models/ir_ui_view.py", line 475, in create
return super(View, self).create(vals_list)
File "<decorator-gen-3>", line 2, in create
File "/opt/odoo/odoo-server/odoo/api.py", line 336, in _model_create_multi
return create(self, arg)
File "/opt/odoo/odoo-server/odoo/models.py", line 3806, in create
fields[0].determine_inverse(batch_recs)
File "/opt/odoo/odoo-server/odoo/fields.py", line 1118, in determine_inverse
getattr(records, self.inverse)()
File "/opt/odoo/odoo-server/odoo/addons/base/models/ir_ui_view.py", line 299, in _inverse_arch
view.write(data)
File "/opt/odoo/odoo-server/addons/website_theme_install/models/theme_models.py", line 226, in write
res = super(IrUiView, other_views).write(vals)
File "/opt/odoo/odoo-server/addons/website/models/ir_ui_view.py", line 51, in write
return super(View, self).write(vals)
File "/opt/odoo/odoo-server/odoo/addons/base/models/ir_ui_view.py", line 493, in write
res = super(View, self).write(self._compute_defaults(vals))
File "/opt/odoo/odoo-server/odoo/models.py", line 3595, in write
real_recs._validate_fields(set(vals) - set(inverse_fields))
File "/opt/odoo/odoo-server/odoo/models.py", line 1201, in _validate_fields
check(self)
File "/opt/odoo/odoo-server/odoo/addons/base/models/ir_ui_view.py", line 387, in _check_xml
view_def = view.read_combined(['arch'])
File "/opt/odoo/odoo-server/odoo/addons/base/models/ir_ui_view.py", line 742, in read_combined
arch_tree = self.apply_inheritance_specs(arch_tree, view_arch, parent_view['id'])
File "/opt/odoo/odoo-server/odoo/addons/base/models/ir_ui_view.py", line 673, in apply_inheritance_specs
self.raise_view_error(str(e), inherit_id)
File "/opt/odoo/odoo-server/odoo/addons/base/models/ir_ui_view.py", line 614, in raise_view_error
raise ValueError(message)
odoo.tools.convert.ParseError: "El elemento '<field name="sequence">' no puede ser localizado en la vista padre
Contexto del error:
Vista `product.template.product.tree`
[view_id: 517, xml_id: product.product_template_tree_view, model: product.template, parent_id: n/a]" while parsing /opt/odoo/odoo-server/addons/website_sale/views/product_views.xml:2, near
<odoo>
<record id="product_template_search_view_website" model="ir.ui.view">
<field name="name">product.template.search.published</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_search_view"/>
<field name="arch" type="xml">
<xpath expr="//filter[@name='consumable']" position="after">
<separator/>
<filter string="Published" name="published" domain="[('is_published', '=', True)]"/>
</xpath>
</field>
</record>
<record model="ir.ui.view" id="product_product_website_tree_view">
<field name="name">product.product.website.tree</field>
<field name="model">product.product</field>
<field name="inherit_id" ref="product.product_product_tree_view"/>
<field name="arch" type="xml">
<field name="name" position="after">
<field name="website_id" groups="website.group_multi_website" optional="show"/>
</field>
</field>
</record>
<!-- We want website_id to be shown outside of website module like other models -->
<record model="ir.ui.view" id="product_template_view_tree">
<field name="name">product.template.view.tree.inherit.website_sale</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_tree_view"/>
<field name="arch" type="xml">
<field name="name" position="after">
<field name="website_id" groups="website.group_multi_website" optional="show"/>
</field>
</field>
</record>
<!-- only website module template view should use the website_sequence -->
<record model="ir.ui.view" id="product_template_view_tree_website_sale">
<field name="name">product.template.view.tree.website_sale</field>
<field name="mode">primary</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="website_sale.product_template_view_tree"/>
<field name="arch" type="xml">
<field name="sequence" position="replace">
<field name="website_sequence" widget="handle"/>
</field>
</field>
</record>
<record id="product_template_action_website" model="ir.actions.act_window">
<field name="name">Products</field>
<field name="res_model">product.template</field>
<field name="view_mode">kanban,tree,form,activity</field>
<field name="view_id" ref="product_template_view_tree_website_sale"/>
<field name="search_view_id" ref="product_template_search_view_website"/>
<field name="context">{'search_default_published': 1}</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create a new product
</p><p>
A product can be either a physical product or a service that you sell to your customers.
</p>
</field>
</record>
<record model="ir.ui.view" id="product_template_form_view_invoice_policy">
<field name="name">product.template.invoice.policy</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="sale.product_template_form_view_invoice_policy"/>
<field name="arch" type="xml">
<xpath expr="//group[@name='invoicing']" position="attributes">
<attribute name="invisible">0</attribute>
</xpath>
</field>
</record>
<record model="ir.ui.view" id="product_template_form_view">
<field name="name">product.template.product.website.form</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_form_view"/>
<field name="arch" type="xml">
<!-- add state field in header -->
<xpath expr="//group[@name='email_template_and_project']" position="attributes">
<attribute name="invisible">0</attribute>
</xpath>
<xpath expr="//group[@name='description']" position="attributes">
<attribute name="invisible">0</attribute>
</xpath>
<div name="button_box" position="inside">
<field name="is_published" widget="website_redirect_button" attrs="{'invisible': [('sale_ok','=',False)]}"/>
</div>
<xpath expr="//page[@name='sales']" position="after">
<page name="shop" string="eCommerce" attrs="{'invisible': [('sale_ok','=',False)]}">
<group name="shop">
<group string="Shop">
<field name="website_url" invisible="1"/>
<field name="website_id" options="{'no_create': True}" groups="website.group_multi_website"/>
<field name="website_sequence" groups="base.group_no_one"/>
<field name="public_categ_ids" widget="many2many_tags" string="Categories"/>
<field name="alternative_product_ids" widget="many2many_tags" domain="[('id', '!=', active_id), '|', ('company_id', '=', company_id), ('company_id', '=', False)]"/>
<field name="accessory_product_ids" widget="many2many_tags"/>
<field name="website_style_ids" widget="many2many_tags" groups="base.group_no_one"/>
</group>
</group>
<group name="product_template_images" string="Extra Product Media">
<field name="product_template_image_ids" class="o_website_sale_image_list" context="{'default_name': name}" mode="kanban" options="{'create_text':'Add a Media'}" nolabel="1"/>
</group>
</page>
</xpath>
</field>
</record>
<record id="product_product_view_form_easy_inherit_website_sale" model="ir.ui.view">
<field name="name">product.product.view.form.easy.inherit.website_sale</field>
<field name="model">product.product</field>
<field name="inherit_id" ref="product.product_variant_easy_edit_view"/>
<field name="arch" type="xml">
<sheet position="inside">
<group name="product_variant_images" string="Extra Variant Media">
<field name="product_variant_image_ids" class="o_website_sale_image_list" context="{'default_name': name}" mode="kanban" options="{'create_text':'Add a Media'}" nolabel="1"/>
</group>
</sheet>
</field>
</record>
<!-- Product Public Categories -->
<record id="product_public_category_form_view" model="ir.ui.view">
<field name="name">product.public.category.form</field>
<field name="model">product.public.category</field>
<field name="arch" type="xml">
<form string="Website Public Categories">
<sheet>
<field name="image_1920" widget="image" class="oe_avatar" options="{'preview_image': 'image_128'}"/>
<div class="oe_left">
<group>
<field name="name"/>
<field name="parent_id"/>
<field name="website_id" options="{'no_create': True}" groups="website.group_multi_website"/>
<field name="sequence"/>
</group>
</div>
</sheet>
</form>
</field>
</record>
<record id="product_public_category_tree_view" model="ir.ui.view">
<field name="name">product.public.category.tree</field>
<field name="model">product.public.category</field>
<field name="field_parent" eval="False"/>
<field name="arch" type="xml">
<tree string="Product Public Categories">
<field name="sequence" widget="handle"/>
<field name="display_name"/>
<field name="website_id" groups="website.group_multi_website"/>
</tree>
</field>
</record>
<record id="product_public_category_action" model="ir.actions.act_window">
<field name="name">eCommerce Categories</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">product.public.category</field>
<field name="view_mode">tree,form</field>
<field name="view_id" eval="False"/>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Define a new category
</p><p>
Categories are used to browse your products through the
touchscreen interface.
</p>
</field>
</record>
<record id="website_sale_pricelist_form_view2" model="ir.ui.view">
<field name="name">website_sale.pricelist.form.2</field>
<field name="inherit_id" ref="product.product_pricelist_view"/>
<field name="model">product.pricelist</field>
<field name="priority">1</field>
<field name="arch" type="xml">
<xpath expr="//field[@name="item_ids"]/tree" position="inside">
<!-- this field should have been added by 9b62813cddb2726003b4b989c32185400059dfa1 -->
<!-- but it might be missing in dbs where "product" has been installed before this fix -->
<field name="company_id" invisible="1"/>
</xpath>
</field>
</record>
<record id="website_sale_pricelist_form_view" model="ir.ui.view">
<field name="name">website_sale.pricelist.form</field>
<field name="inherit_id" ref="product.product_pricelist_view"/>
<field name="model">product.pricelist</field>
<field name="arch" type="xml">
<xpath expr="//group[@name='pricelist_availability']" position="after">
<group name="pricelist_website" string="Website">
<field name="website_id" options="{'no_create': True}"/>
<field name="selectable"/>
<field name="code"/>
</group>
</xpath>
</field>
</record>
<record id="website_sale_pricelist_tree_view" model="ir.ui.view">
<field name="name">product.pricelist.tree.inherit.product</field>
<field name="model">product.pricelist</field>
<field name="inherit_id" ref="product.product_pricelist_view_tree"/>
<field name="arch" type="xml">
<field name="currency_id" position="after">
<field name="selectable"/>
<field name="website_id" groups="website.group_multi_website"/>
</field>
</field>
</record>
<!-- This view should only be used from the product o2m because the required field product_tmpl_id has to be automatically set. -->
<record id="view_product_image_form" model="ir.ui.view">
<field name="name">product.image.view.form</field>
<field name="model">product.image</field>
<field name="arch" type="xml">
<form string="Product Images">
<field name="sequence" invisible="1"/>
<div class="row o_website_sale_image_modal">
<div class="col-md-6 col-xl-5">
<label for="name" string="Image Name"/>
<h2><field name="name" placeholder="Image Name"/></h2>
<label for="video_url" string="Video URL"/><br/>
<field name="video_url"/><br/>
</div>
<div class="col-md-6 col-xl-7 text-center o_website_sale_image_modal_container">
<div class="row">
<div class="col">
<field name="image_1920" widget="image"/>
</div>
<div class="col" attrs="{'invisible': [('video_url', 'in', ['', False])]}">
<div class="o_video_container p-2">
<span>Video Preview</span>
<field name="embed_code" class="mt-2" widget="video_preview"/>
<h4 class="o_invalid_warning text-muted text-center" attrs="{'invisible': [('embed_code', '!=', False)]}">
Please enter a valid Video URL.
</h4>
</div>
</div>
</div>
</div>
</div>
</form>
</field>
</record>
<record id="product_image_view_kanban" model="ir.ui.view">
<field name="name">product.image.view.kanban</field>
<field name="model">product.image</field>
<field name="arch" type="xml">
<kanban string="Product Images" default_order="sequence">
<field name="id"/>
<field name="name"/>
<field name="image_1920"/>
<field name="sequence" widget="handle"/>
<templates>
<t t-name="kanban-box">
<div class="card oe_kanban_global_click p-0">
<div class="o_squared_image">
<img class="card-img-top" t-att-src="kanban_image('product.image', 'image_1920', record.id.raw_value)" t-att-alt="record.name.value"/>
</div>
<div class="card-body p-0">
<h4 class="card-title p-2 m-0 bg-200">
<small><field name="name"/></small>
</h4>
</div>
<!-- below 100 Kb: good -->
<t t-if="record.image_1920.raw_value.length < 100*1000">
<t t-set="size_status" t-value="'badge-success'"/>
<t t-set="message">Acceptable file size</t>
</t>
<!-- below 1000 Kb: decent -->
<t t-elif="record.image_1920.raw_value.length < 1000*1000">
<t t-set="size_status" t-value="'badge-warning'"/>
<t t-set="message">Huge file size. The image should be optimized/reduced.</t>
</t>
<!-- above 1000 Kb: bad -->
<t t-else="1">
<t t-set="size_status" t-value="'badge-danger'"/>
<t t-set="message">Optimization required! Reduce the image size or increase your compression settings.</t>
</t>
<span t-attf-class="badge #{size_status} o_product_image_size" t-esc="record.image_1920.value" t-att-title="message"/>
</div>
</t>
</templates>
</kanban>
</field>
</record>
</odoo>