Python 尝试将加载项导入Odoo时出现Odoo服务器错误

Python 尝试将加载项导入Odoo时出现Odoo服务器错误,python,server,odoo,odoo-11,Python,Server,Odoo,Odoo 11,我有3个附加模块需要导入到位于Odoo.sh环境中的odoov11企业版中。我能够成功导入其中两个模块,但在第三种情况下收到一条Odoo服务器错误消息。这是我收到的错误消息。有没有人有类似的问题,可以提供一些帮助 Error: Odoo Server Error Traceback (most recent call last): File "/home/odoo/src/odoo/odoo/models.py", line 1046, in _validate_fields ch

我有3个附加模块需要导入到位于Odoo.sh环境中的odoov11企业版中。我能够成功导入其中两个模块,但在第三种情况下收到一条Odoo服务器错误消息。这是我收到的错误消息。有没有人有类似的问题,可以提供一些帮助

Error:
Odoo Server Error

Traceback (most recent call last):
  File "/home/odoo/src/odoo/odoo/models.py", line 1046, in _validate_fields
    check(self)
  File "/home/odoo/src/odoo/odoo/addons/base/ir/ir_ui_view.py", line 342, in _check_xml
    self.postprocess_and_fields(view.model, view_doc, view.id)
  File "/home/odoo/src/odoo/odoo/addons/base/ir/ir_ui_view.py", line 1082, in postprocess_and_fields
    self.raise_view_error("\n".join(msg_lines), view_id)
  File "/home/odoo/src/odoo/odoo/addons/base/ir/ir_ui_view.py", line 519, in raise_view_error
    raise ValueError(message)
ValueError: Field 'x_studio_over_credit' used in attributes must be present in view but is missing:
 - 'x_studio_over_credit' in attrs="{'invisible': ['|', ('state', 'not in', ['draft']), ('x_studio_over_credit', '!=', False)]}"
 - 'x_studio_over_credit' in attrs="{'invisible': ['|', ('state', 'not in', ['sent']), ('x_studio_over_credit', '!=', False)]}"

Error context:
View `view.sales.form.extend.one`
[view_id: 2257, xml_id: n/a, model: sale.order, parent_id: 844]

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/odoo/src/odoo/odoo/tools/convert.py", line 745, in parse
    self._tags[rec.tag](rec, de, mode=mode)
  File "/home/odoo/src/odoo/odoo/tools/convert.py", line 655, in _tag_record
    id = self.env(context=rec_context)['ir.model.data']._update(rec_model, self.module, res, rec_id or False, not self.isnoupdate(data_node), noupdate=self.isnoupdate(data_node), mode=self.mode)
  File "/home/odoo/src/odoo/odoo/addons/base/ir/ir_model.py", line 1513, in _update
    record = record.create(values)
  File "/home/odoo/src/enterprise/web_studio/models/studio_mixin.py", line 18, in create
    res = super(StudioMixin, self).create(vals)
  File "/home/odoo/src/odoo/odoo/addons/base/ir/ir_ui_view.py", line 408, in create
    return super(View, self).create(self._compute_defaults(values))
  File "/home/odoo/src/odoo/odoo/models.py", line 3434, in create
    self._fields[key].determine_inverse(record)
  File "/home/odoo/src/odoo/odoo/fields.py", line 1085, in determine_inverse
    getattr(records, self.inverse)()
  File "/home/odoo/src/odoo/odoo/addons/base/ir/ir_ui_view.py", line 273, in _inverse_arch
    view.write(data)
  File "/home/odoo/src/enterprise/web_studio/models/studio_mixin.py", line 27, in write
    res = super(StudioMixin, self).write(vals)
  File "/home/odoo/src/odoo/odoo/addons/base/ir/ir_ui_view.py", line 424, in write
    return super(View, self).write(self._compute_defaults(vals))
  File "/home/odoo/src/odoo/odoo/models.py", line 3138, in write
    self._write(old_vals)
  File "/home/odoo/src/odoo/odoo/models.py", line 3309, in _write
    self._validate_fields(vals)
  File "/home/odoo/src/odoo/odoo/models.py", line 1050, in _validate_fields
    raise ValidationError("%s\n\n%s" % (_("Error while validating constraint"), tools.ustr(e)))
odoo.exceptions.ValidationError: ('Error while validating constraint\n\nField \'x_studio_over_credit\' used in attributes must be present in view but is missing:\n - \'x_studio_over_credit\' in attrs="{\'invisible\': [\'|\', (\'state\', \'not in\', [\'draft\']), (\'x_studio_over_credit\', \'!=\', False)]}"\n - \'x_studio_over_credit\' in attrs="{\'invisible\': [\'|\', (\'state\', \'not in\', [\'sent\']), (\'x_studio_over_credit\', \'!=\', False)]}"\n\nError context:\nView `view.sales.form.extend.one`\n[view_id: 2257, xml_id: n/a, model: sale.order, parent_id: 844]', None)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/odoo/src/odoo/odoo/http.py", line 653, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/home/odoo/src/odoo/odoo/http.py", line 312, in _handle_exception
    raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
  File "/home/odoo/src/odoo/odoo/tools/pycompat.py", line 87, in reraise
    raise value
  File "/home/odoo/src/odoo/odoo/http.py", line 695, in dispatch
    result = self._call_function(**self.params)
  File "/home/odoo/src/odoo/odoo/http.py", line 344, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/home/odoo/src/odoo/odoo/service/model.py", line 97, in wrapper
    return f(dbname, *args, **kwargs)
  File "/home/odoo/src/odoo/odoo/http.py", line 337, in checked_call
    result = self.endpoint(*a, **kw)
  File "/home/odoo/src/odoo/odoo/http.py", line 939, in __call__
    return self.method(*args, **kw)
  File "/home/odoo/src/odoo/odoo/http.py", line 517, in response_wrap
    response = f(*args, **kw)
  File "/home/odoo/src/odoo/addons/web/controllers/main.py", line 938, in call_button
    action = self._call_kw(model, method, args, {})
  File "/home/odoo/src/odoo/addons/web/controllers/main.py", line 926, in _call_kw
    return call_kw(request.env[model], method, args, kwargs)
  File "/home/odoo/src/odoo/odoo/api.py", line 699, in call_kw
    return call_kw_multi(method, model, args, kwargs)
  File "/home/odoo/src/odoo/odoo/api.py", line 690, in call_kw_multi
    result = method(recs, *args, **kwargs)
  File "<decorator-gen-42>", line 2, in button_immediate_install
  File "/home/odoo/src/odoo/odoo/addons/base/module/module.py", line 72, in check_and_log
    return method(self, *args, **kwargs)
  File "/home/odoo/src/odoo/odoo/addons/base/module/module.py", line 450, in button_immediate_install
    return self._button_immediate_function(type(self).button_install)
  File "/home/odoo/src/odoo/odoo/addons/base/module/module.py", line 552, in _button_immediate_function
    modules.registry.Registry.new(self._cr.dbname, update_module=True)
  File "/home/odoo/src/odoo/odoo/modules/registry.py", line 85, in new
    odoo.modules.load_modules(registry._db, force_demo, status, update_module)
  File "/home/odoo/src/odoo/odoo/modules/loading.py", line 380, in load_modules
    loaded_modules, update_module, models_to_check)
  File "/home/odoo/src/odoo/odoo/modules/loading.py", line 274, in load_marked_modules
    perform_checks=perform_checks, models_to_check=models_to_check
  File "/home/odoo/src/odoo/odoo/modules/loading.py", line 181, in load_module_graph
    _load_data(cr, module_name, idref, mode, kind='data')
  File "/home/odoo/src/odoo/odoo/modules/loading.py", line 95, in _load_data
    tools.convert_file(cr, module_name, filename, idref, mode, noupdate, kind, report)
  File "/home/odoo/src/odoo/odoo/tools/convert.py", line 792, in convert_file
    convert_xml_import(cr, module, fp, idref, mode, noupdate, report)
  File "/home/odoo/src/odoo/odoo/tools/convert.py", line 853, in convert_xml_import
    obj.parse(doc.getroot(), mode=mode)
  File "/home/odoo/src/odoo/odoo/tools/convert.py", line 752, in parse
    exc_info[2]
  File "/home/odoo/src/odoo/odoo/tools/pycompat.py", line 86, in reraise
    raise value.with_traceback(tb)
  File "/home/odoo/src/odoo/odoo/tools/convert.py", line 745, in parse
    self._tags[rec.tag](rec, de, mode=mode)
  File "/home/odoo/src/odoo/odoo/tools/convert.py", line 655, in _tag_record
    id = self.env(context=rec_context)['ir.model.data']._update(rec_model, self.module, res, rec_id or False, not self.isnoupdate(data_node), noupdate=self.isnoupdate(data_node), mode=self.mode)
  File "/home/odoo/src/odoo/odoo/addons/base/ir/ir_model.py", line 1513, in _update
    record = record.create(values)
  File "/home/odoo/src/enterprise/web_studio/models/studio_mixin.py", line 18, in create
    res = super(StudioMixin, self).create(vals)
  File "/home/odoo/src/odoo/odoo/addons/base/ir/ir_ui_view.py", line 408, in create
    return super(View, self).create(self._compute_defaults(values))
  File "/home/odoo/src/odoo/odoo/models.py", line 3434, in create
    self._fields[key].determine_inverse(record)
  File "/home/odoo/src/odoo/odoo/fields.py", line 1085, in determine_inverse
    getattr(records, self.inverse)()
  File "/home/odoo/src/odoo/odoo/addons/base/ir/ir_ui_view.py", line 273, in _inverse_arch
    view.write(data)
  File "/home/odoo/src/enterprise/web_studio/models/studio_mixin.py", line 27, in write
    res = super(StudioMixin, self).write(vals)
  File "/home/odoo/src/odoo/odoo/addons/base/ir/ir_ui_view.py", line 424, in write
    return super(View, self).write(self._compute_defaults(vals))
  File "/home/odoo/src/odoo/odoo/models.py", line 3138, in write
    self._write(old_vals)
  File "/home/odoo/src/odoo/odoo/models.py", line 3309, in _write
    self._validate_fields(vals)
  File "/home/odoo/src/odoo/odoo/models.py", line 1050, in _validate_fields
    raise ValidationError("%s\n\n%s" % (_("Error while validating constraint"), tools.ustr(e)))
odoo.tools.convert.ParseError: "Error while validating constraint

Field 'x_studio_over_credit' used in attributes must be present in view but is missing:
 - 'x_studio_over_credit' in attrs="{'invisible': ['|', ('state', 'not in', ['draft']), ('x_studio_over_credit', '!=', False)]}"
 - 'x_studio_over_credit' in attrs="{'invisible': ['|', ('state', 'not in', ['sent']), ('x_studio_over_credit', '!=', False)]}"

Error context:
View `view.sales.form.extend.one`
[view_id: 2257, xml_id: n/a, model: sale.order, parent_id: 844]
None" while parsing /home/odoo/src/odoo/addons/crm_customer_rating/views/views.xml:4, near
<record id="view_sales_form_extend_1" model="ir.ui.view">
        <field name="name">view.sales.form.extend.one</field>
        <field name="model">sale.order</field>
        <field name="inherit_id" ref="sale.view_order_form"/>
        <field name="arch" type="xml">

            <xpath expr="//page[1]" position="after">
                <page name="customer_satisfaction" string="Customer Satisfaction">
                    <group colspan="2" col="2">
                        <field name="quality_of_products" widget="priority"/>
                        <field name="acc_of_delivery" widget="priority"/>
                        <field name="order_satisfaction" widget="priority"/>
                        <field name="oa_package_rating" widget="priority"/>
                    </group>
                </page>
            </xpath>
        </field>
    </record>
错误:
Odoo服务器错误
回溯(最近一次呼叫最后一次):
文件“/home/odoo/src/odoo/odoo/models.py”,第1046行,在验证字段中
检查(自我)
xml中的文件“/home/odoo/src/odoo/odoo/addons/base/ir/ir\u ui\u view.py”,第342行
self.postprocess_和_字段(view.model、view_doc、view.id)
文件“/home/odoo/src/odoo/odoo/addons/base/ir/ir_ui_view.py”,第1082行,在后处理_和_字段中
self.raise\u view\u错误(“\n”).join(消息行),view\u id)
文件“/home/odoo/src/odoo/odoo/addons/base/ir/ir\u ui\u view.py”,第519行,出现错误
提升值错误(消息)
ValueError:属性中使用的字段“x_studio_over_credit”必须出现在视图中,但缺少:
-属性中的“x_studio_over_credit”=“{'invisible':['|',('state','notin',['draft']),('x_studio_over_credit','!=',False)]中的“x_studio_over_credit”
-属性中的“x_studio_over_credit”=“{'invisible':['|',('state','notin',['sent']),('x_studio_over_credit','!=',False)]中的“x_studio_over_credit”
错误上下文:
View`View.sales.form.extend.one`
[视图id:2257,xml\U id:n/a,型号:sale.order,父视图id:844]
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
解析中第745行的文件“/home/odoo/src/odoo/odoo/tools/convert.py”
self._标签[rec.tag](rec,de,mode=mode)
文件“/home/odoo/src/odoo/odoo/tools/convert.py”,第655行,在标记记录中
id=self.env(context=rec\u context)['ir.model.data']。\u更新(rec\u model,self.module,res,rec\u id或False,而不是self.isnoupdate(data\u节点),noupdate=self.isnoupdate(data\u节点),mode=self.mode)
文件“/home/odoo/src/odoo/odoo/addons/base/ir/ir\u model.py”,第1513行,在更新中
记录=记录。创建(值)
文件“/home/odoo/src/enterprise/web\u studio/models/studio\u mixin.py”,第18行,在create中
res=super(StudioMixin,self).create(vals)
文件“/home/odoo/src/odoo/odoo/addons/base/ir/ir\u ui\u view.py”,第408行,在create中
返回super(视图,self).create(self.\u compute\u默认值(值))
文件“/home/odoo/src/odoo/odoo/models.py”,第3434行,创建
self.\u字段[键]。确定\u逆(记录)
文件“/home/odoo/src/odoo/odoo/fields.py”,第1085行
getattr(记录,自反转)()
文件“/home/odoo/src/odoo/odoo/addons/base/ir/ir\u ui\u view.py”,第273行,在拱中
查看.写入(数据)
文件“/home/odoo/src/enterprise/web\u studio/models/studio\u mixin.py”,第27行,以书面形式
res=super(StudioMixin,self).write(VAL)
写入文件“/home/odoo/src/odoo/odoo/addons/base/ir/ir_ui_view.py”,第424行
返回super(视图,self).write(self.\u计算\默认值(VAL))
写入文件“/home/odoo/src/odoo/odoo/models.py”,第3138行
自我书写(旧版本)
文件“/home/odoo/src/odoo/odoo/models.py”,第3309行,写入
自我验证字段(VAL)
文件“/home/odoo/src/odoo/odoo/models.py”,第1050行,在验证字段中
raise ValidationError(“%s\n\n%s”%(“验证约束时出错”)、tools.ustr(e)))
odoo.exceptions.ValidationError:(“验证约束时出错”\n\n属性中使用的字段“x\u studio\u over\u credit\”必须出现在视图中,但已丢失:\n-“x\u studio\u over\u credit\”属性中的“{不可见\':[\'\'\'\\\'”,[\'state\'not in\',[\'draft\'”),('x\u studio\u over u-credit\',“,”,“!=”,False)]{“不可见”:[\\'\\',(\'state\',\'not in\',[\'sent\'],(\'x\'u studio\'u over\'u credit\',\'!=\',False)]“\n\n错误上下文:\n视图`view.sales.form.extend.one`\n[view\u id:2257,xml\u id:n/a,model:sale.order,parent\u id:844],无)
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“/home/odoo/src/odoo/odoo/http.py”,第653行,在异常处理中
返回super(JsonRequest,self)。\u handle\u异常(exception)
文件“/home/odoo/src/odoo/odoo/http.py”,第312行,在异常处理中
raise pycompat.reraise(类型(异常)、异常、sys.exc_info()[2])
文件“/home/odoo/src/odoo/odoo/tools/pycompat.py”,第87行,在reraise中
增值
文件“/home/odoo/src/odoo/odoo/http.py”,第695行,在分派中
结果=self.\u调用函数(**self.params)
文件“/home/odoo/src/odoo/odoo/http.py”,第344行,在调用函数中
返回选中的\u调用(self.db、*args、**kwargs)
文件“/home/odoo/src/odoo/odoo/service/model.py”,第97行,在包装器中
返回f(数据库名,*args,**kwargs)
文件“/home/odoo/src/odoo/odoo/http.py”,第337行,在checked_调用中
结果=自身终点(*a,**kw)
文件“/home/odoo/src/odoo/odoo/http.py”,第939行,在调用中__
返回自方法(*参数,**kw)
文件“/home/odoo/src/odoo/odoo/http.py”,第517行,作为响应
响应=f(*参数,**kw)
文件“/home/odoo/src/odoo/addons/web/controllers/main.py”,第938行,调用按钮
action=self.\u调用\u kw(模型、方法、参数,{})
文件“/home/odoo/src/odoo/addons/web/controllers/main.py”,第926行,输入
返回调用(request.env[model],方法,args,kwargs)
文件“/home/odoo/src/odoo/odoo/api.py”,第699行,在call\u-kw中
返回调用(方法、模型、参数、kwargs)
文件“/home/odoo/src/odoo/odoo/api.py”,第690行,在call\u kw\u multi中
结果=方法(recs、*args、**kwargs)
文件“”,第2行,在“立即安装”按钮中
文件“/home/odoo/src/odoo/odoo/addons/base/module/module.py”,第72行,在检查和检查日志中
返回方法(self、*args、**kwargs)
文件“/home/odoo/src/odoo/odoo/addons/base/module/module.py”,第450行,在“立即安装”按钮中
返回self.\u按钮\u立即\u功能(类型(self).按钮\u安装)
文件“/home/odoo/src/odoo/odoo/addons/base/module/module.py”,第552行,在
<record id="view_sales_form_extend_1" model="ir.ui.view">
    <field name="name">view.sales.form.extend.one</field>
    <field name="model">sale.order</field>
    <field name="inherit_id" ref="sale.view_order_form"/>
    <field name="arch" type="xml">

        <xpath expr="//page[1]" position="after">
            <page name="customer_satisfaction" string="Customer Satisfaction">
                <group colspan="2" col="2">
                    <field name="quality_of_products" widget="priority"/>
                    <field name="acc_of_delivery" widget="priority"/>
                    <field name="order_satisfaction" widget="priority"/>
                    <field name="oa_package_rating" widget="priority"/>
                </group>
            </page>
        </xpath>
    </field>
</record>

<record id="view_sales_filter_extend" model="ir.ui.view">
    <field name="name">view.sales.filter.extend.one</field>
    <field name="model">sale.order</field>
    <field name="inherit_id" ref="sale.view_sales_order_filter"/>
    <field name="arch" type="xml">
        <xpath expr="//filter[@name='customer']" position="after">
            <separator/>
            <filter string="Quality of Products" name="quality_of_products" domain="[]" context="{'group_by':'quality_of_products'}"/>
            <filter string="Accuracy of Delivery" name="acc_of_delivery" domain="[]" context="{'group_by':'acc_of_delivery'}"/>
            <filter string="Order Satisfaction" name="order_satisfaction" domain="[]" context="{'group_by':'order_satisfaction'}"/>
            <filter string="Overall Rating of Package" name="oa_package_rating" domain="[]" context="{'group_by':'oa_package_rating'}"/>
        </xpath>
    </field>
</record>

<record id="res_partner_customer_preferences" model="ir.ui.view">
    <field name="name">res.partner.customer.preferences</field>
    <field name="model">res.partner</field>
    <field name="inherit_id" ref="base.view_partner_form" />
    <field name="arch" type="xml">
         <xpath expr="//page[@name='internal_notes']" position="after">
            <page name="customer_preferences" string="Preferences">
                <group colspan="2" col="2">
                    <field name="likes"/>
                    <field name="dislikes"/>
                    <field name="preferred_supply_time"/>
                    <field name="peculiarity_of_client"/>
                </group>
            </page>
        </xpath>

    </field>
</record>
Error:
Odoo Server Error

Traceback (most recent call last):
  File "/home/odoo/src/odoo/odoo/http.py", line 653, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/home/odoo/src/odoo/odoo/http.py", line 312, in _handle_exception
    raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
  File "/home/odoo/src/odoo/odoo/tools/pycompat.py", line 87, in reraise
    raise value
  File "/home/odoo/src/odoo/odoo/http.py", line 695, in dispatch
    result = self._call_function(**self.params)
  File "/home/odoo/src/odoo/odoo/http.py", line 344, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/home/odoo/src/odoo/odoo/service/model.py", line 97, in wrapper
    return f(dbname, *args, **kwargs)
  File "/home/odoo/src/odoo/odoo/http.py", line 337, in checked_call
    result = self.endpoint(*a, **kw)
  File "/home/odoo/src/odoo/odoo/http.py", line 939, in __call__
    return self.method(*args, **kw)
  File "/home/odoo/src/odoo/odoo/http.py", line 517, in response_wrap
    response = f(*args, **kw)
  File "/home/odoo/src/odoo/addons/web/controllers/main.py", line 938, in call_button
    action = self._call_kw(model, method, args, {})
  File "/home/odoo/src/odoo/addons/web/controllers/main.py", line 926, in _call_kw
    return call_kw(request.env[model], method, args, kwargs)
  File "/home/odoo/src/odoo/odoo/api.py", line 699, in call_kw
    return call_kw_multi(method, model, args, kwargs)
  File "/home/odoo/src/odoo/odoo/api.py", line 690, in call_kw_multi
    result = method(recs, *args, **kwargs)
  File "<decorator-gen-42>", line 2, in button_immediate_install
  File "/home/odoo/src/odoo/odoo/addons/base/module/module.py", line 72, in check_and_log
    return method(self, *args, **kwargs)
  File "/home/odoo/src/odoo/odoo/addons/base/module/module.py", line 450, in button_immediate_install
    return self._button_immediate_function(type(self).button_install)
  File "/home/odoo/src/odoo/odoo/addons/base/module/module.py", line 552, in _button_immediate_function
    modules.registry.Registry.new(self._cr.dbname, update_module=True)
  File "/home/odoo/src/odoo/odoo/modules/registry.py", line 85, in new
    odoo.modules.load_modules(registry._db, force_demo, status, update_module)
  File "/home/odoo/src/odoo/odoo/modules/loading.py", line 380, in load_modules
    loaded_modules, update_module, models_to_check)
  File "/home/odoo/src/odoo/odoo/modules/loading.py", line 274, in load_marked_modules
    perform_checks=perform_checks, models_to_check=models_to_check
  File "/home/odoo/src/odoo/odoo/modules/loading.py", line 181, in load_module_graph
    _load_data(cr, module_name, idref, mode, kind='data')
  File "/home/odoo/src/odoo/odoo/modules/loading.py", line 95, in _load_data
    tools.convert_file(cr, module_name, filename, idref, mode, noupdate, kind, report)
  File "/home/odoo/src/odoo/odoo/tools/convert.py", line 792, in convert_file
    convert_xml_import(cr, module, fp, idref, mode, noupdate, report)
  File "/home/odoo/src/odoo/odoo/tools/convert.py", line 836, in convert_xml_import
    doc = etree.parse(xmlfile)
  File "src/lxml/etree.pyx", line 3426, in lxml.etree.parse
  File "src/lxml/parser.pxi", line 1861, in lxml.etree._parseDocument
  File "src/lxml/parser.pxi", line 1881, in lxml.etree._parseFilelikeDocument
  File "src/lxml/parser.pxi", line 1776, in lxml.etree._parseDocFromFilelike
  File "src/lxml/parser.pxi", line 1187, in lxml.etree._BaseParser._parseDocFromFilelike
  File "src/lxml/parser.pxi", line 601, in lxml.etree._ParserContext._handleParseResultDoc
  File "src/lxml/parser.pxi", line 711, in lxml.etree._handleParseResult
  File "src/lxml/parser.pxi", line 640, in lxml.etree._raiseParseError
  File "/home/odoo/src/enterprise/crm_customer_rating/views/views.xml", line 10
lxml.etree.XMLSyntaxError: attributes construct error, line 10, column 82
<notebook position="inside">
 <page name="customer_satisfaction" string="Customer Satisfaction">
     <group colspan="2" col="2">
         <field name="quality_of_products" widget="priority"/>
         <field name="acc_of_delivery" widget="priority"/>
         <field name="order_satisfaction" widget="priority"/>
         <field name="oa_package_rating" widget="priority"/>
     </group>
  </page>
</notebook>