File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 709, in _tag_root
raise ParseError(msg) from None # Restart with "--log-handler odoo.tools.convert:DEBUG" for complete traceback
odoo.tools.convert.ParseError: while parsing /opt/odoo/addons_extra/GestionServicios/views/servicio.xml:3
Ocurrió un error al validar vista cercana
Modelo no encontrado: models.servicio
View error context:
{'file': '/opt/odoo/addons_extra/GestionServicios/views/servicio.xml',
'line': 2,
'name': 'servicio.form',
'view': ir.ui.view(996,),
'view.model': 'models.servicio',
'view.parent': ir.ui.view(),
'xmlid': 'view_servicio_form'}
The above server error caused the following client error:
RPC_ERROR: Odoo Server Error
at makeErrorFromResponse (http://192.168.18.212:8069/web/assets/debug/web.assets_backend.js:10430:19) (/web/static/src/core/network/rpc_service.js:34)
at XMLHttpRequest. (http://192.168.18.212:8069/web/assets/debug/web.assets_backend.js:10483:27) (/web/static/src/core/network/rpc_service.js:87)
from odoo import models, fields
class servicio(models.Model):
_name = 'models.servicio'
_description = 'Servicio ofrecido por la empresa'
name = fields.Char(string='Nombre del Servicio', required=True)
description = fields.Text(string='Descripción del Servicio')
duration = fields.Float(string='Duración (en horas)')
price = fields.Float(string='Precio por hora')
client_id = fields.Many2one('res.partner', string='Cliente')
start_date = fields.Date(string='Fecha de Inicio')
end_date = fields.Date(string='Fecha de Fin')
state = fields.Selection([
('draft', 'Borrador'),
('confirmed', 'Confirmado'),
('done', 'Completado'),
('cancelled', 'Cancelado')
], string='Estado', default='draft')
servicio.form
models.servicio
Servicios
models.servicio
tree,form
<odoo>
<data>
<record model="ir.ui.view" id="view_servicio_form">
<field name="name">servicio.form</field>
<field name="model">models.servicio</field>
<field name="arch" type="xml">
<form string="Servicio">
<sheet>
<group>
<field name="name"/>
<field name="description"/>
<field name="duration"/>
<field name="price"/>
<field name="client_id"/>
<field name="start_date"/>
<field name="end_date"/>
<field name="state"/>
</group>
</sheet>
</form>
</field>
</record>
<record model="ir.actions.act_window" id="action_servicio">
<field name="name">Servicios</field>
<field name="res_model">models.servicio</field>
<field name="view_mode">tree,form</field>
</record>
<menuitem id="menu_servicios" name="Servicios" parent="base.menu_services" sequence="10"/>
<menuitem id="menu_servicio_list" name="Lista de Servicios" parent="menu_servicios" action="action_servicio"/>
</data>
</odoo>
service.py is inside the folder models and service.xml is inside the folder views.
this is my manifest.py {
'name': 'Gestión_de_servicios',
'version': '0.1',
'summary': 'Módulo para gestionar servicios ofrecidos por la empresa para los clientes.',
'author': 'Sergio Pastor Castellón',
'category': 'Services',
'depends': ['base'],
'data': [
'views/servicio.xml',
'demo/demo.xml'
],
'installable': True,
'auto_install': False,
}