Localización Española

¡Bienvenido a los foros Aeodoo!

Somos la comunidad de Odoo internacional hispanohablante.
Estos foros son para compartir y debatir dudas técnicas, funcionales y mejores prácticas para Odoo. Recuerda que no están permitidos los insultos, descalificaciones o spam, cualquier conducta reprobable supondrá el baneo del usuario.

 
Ocultar IntroRegistro

0

Módulo OCA maitenance_timesheet v16

Buenas, hemos actualizado a la última versión de Odoo 16 Community y este módulo cuando lo instalamos en una base de datos limpia, funciona ok, pero cuando lo instalamos en una base de datos que tiene datos de Equipos de mantenimiento, nos da este error:


File "/opt/odoo/odoo/odoo/odoo/addons/base/models/ir_module.py", line 599, in _button_immediate_function registry = modules.registry.Registry.new(self._cr.dbname, update_module=True) File "<decorator-gen-16>", line 2, in new File "/opt/odoo/odoo/odoo/odoo/tools/func.py", line 87, in locked return func(inst, *args, **kwargs) File "/opt/odoo/odoo/odoo/odoo/modules/registry.py", line 91, in new odoo.modules.load_modules(registry, force_demo, status, update_module) File "/opt/odoo/odoo/odoo/odoo/modules/loading.py", line 488, in load_modules processed_modules += load_marked_modules(cr, graph, File "/opt/odoo/odoo/odoo/odoo/modules/loading.py", line 372, in load_marked_modules loaded, processed = load_module_graph( File "/opt/odoo/odoo/odoo/odoo/modules/loading.py", line 188, in load_module_graph load_openerp_module(package.name) File "/opt/odoo/odoo/odoo/odoo/modules/module.py", line 471, in load_openerp_module __import__('odoo.addons.' + module_name) File "/opt/odoo/odoo/maintenance/maintenance_timesheet/__init__.py", line 1, in <module> from . import models File "/opt/odoo/odoo/maintenance/maintenance_timesheet/models/__init__.py", line 1, in <module> from . import hr_timesheet File "/opt/odoo/odoo/maintenance/maintenance_timesheet/models/hr_timesheet.py", line 8, in <module> class AccountAnalyticLine(models.Model): File "/opt/odoo/odoo/maintenance/maintenance_timesheet/models/hr_timesheet.py", line 44, in AccountAnalyticLine def _check_request_done(self, request_id: int | list[int]): TypeError: 'type' object is not subscriptable 2024-10-14 21:06:37,774 288911 INFO reinacompras werkzeug: 172.16.10.20 - - [14/Oct/2024 21:06:37] "POST /web/dataset/call_button HTTP/1.0" 200 - 12435 4.045 7.751

Parece ser que el problema está aqui:


/opt/odoo/odoo/maintenance/maintenance_timesheet/models/hr_timesheet.py

en la linea 44



def _check_request_done(self, request_id: int | list[int]): """ Editing a timesheet related to a finished request is forbidden. """ request_ids = [request_id] if isinstance(request_id, int) else request_id if any( self.env["maintenance.request"].browse(request_ids).stage_id.mapped("done") ): raise ValidationError( _( "Cannot save or delete a timesheet for " "a maintenance request already done" ) )
Alguien nos da una pista de por donde pueden ir los tiros???

Gracias de antemano y Saludos.

4 Comentarios
Avatar
Descartar
Avatar
Raúl
-

Hola, en la linea 44 tienes definida la siguiente función: ef _check_request_done(self, request_id: int | list[int]):

La declaración de una lista con sugerencia de tipo solo se puede utilizar desde la versión 3.9.x de python sin tener que importar la librería.

Tienes dos opciones:
1. Actualizar la versión de python
2. importar la librería: from typing import List y la función ponerla tal que así: List[int]

Aún así antes de hacer nada, comprueba la versión de python para verificar que es lo que te comento o es otra cosa, me puedo equivocar :)

Un saludo!

Avatar
Luciano Pérez Cepón
-

Buenas Raúl, no sabes lo que te agradecemos tu ayuda, estabamos bastante atrancados con esto. Gracias, gracias, vamos a probarlo.

Avatar
Luciano Pérez Cepón
-

Buenas, tras superar el error anterior actualizando la versión de Python ahora nos da otro error distinto:

UncaughtClientError > TypeError
Error de Javascript desconocido > Cannot read properties of undefined (reading 'writeText')

TypeError: Cannot read properties of undefined (reading 'writeText')
at RPCErrorDialog.onClickClipboard (http://10.98.210.19/web/assets/242-75b5d72/web.assets_backend.min.js:640:48)
at Object.mainEventHandler (http://10.98.210.19/web/assets/241-ac63496/web.assets_common.min.js:2112:77)
at HTMLButtonElement.listener (http://10.98.210.19/web/assets/241-ac63496/web.assets_common.min.js:1282:15)

Os ha pasado alguna vez?
Gracias de antemano y Saludos

Avatar
Luciano Pérez Cepón
-

Buenas, al final lo hemos resuelto esto subiendo la versión de Python a 3.10...
Gracias por vuestra ayuda :)