Problema en la traducción de módulos fuera de openerp/addons

352 views
Skip to first unread message

Pablo Cayuela Martínez - ASERTI

unread,
Dec 3, 2013, 4:49:26 AM12/3/13
to openerp-s...@googlegroups.com
Hola a todos

En la v7, por poner un poco de orden en los módulos y agruparlos siguiendo alguna lógica, tenemos configurado en el addons path varios directorios tal que así:

addons_path = ./openerp/addons_test,./openerp/addons_ags,./openerp/addons_l10n,./openerp/addons_extra,./openerp/addons,./openerp/addons_custom

Los módulos se detectan e instalan correctamente, hasta ahí todo bien, pero cuando intentamos sacar los .po de traducción hemos detectado que si los módulos no se encuentran en la carpeta addons, las cadenas que en el código marco para traducir (ej _("cadena") ) no se exportan. El mismo módulo lo muevo a la carpeta addons y ya las saca. ¿Alguien más se ha encontrado con este problema? ¿Se nos ha pasado algo que haya que hacer para que detecte los strings a traducir en el código o es un bug?
He probado a copiar los .py que hay en el raíz de addons a los otros directorios e incluso a en el __init__.py importar los otros directorios, pero no lo arregla.

Gracias
Un saludo,
Pablo

Pedro Manuel Baeza Romero

unread,
Dec 3, 2013, 4:51:30 AM12/3/13
to openerp-s...@googlegroups.com
Buenas, Pablo,

Pues es curioso. Yo no he tenido ningún problema en ese sentido, pero lo que hago es poner la ruta absoluta de cada path. ¿Por qué no pruebas a hacer lo mismo a ver qué tal?

Un saludo.


--
Has recibido este mensaje porque estás suscrito al grupo "Usuarios OpenERP en España" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a openerp-spain-u...@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.

Pablo Cayuela Martínez - ASERTI

unread,
Dec 3, 2013, 5:12:11 AM12/3/13
to openerp-s...@googlegroups.com
Gracias Pedro

He probado y sigue haciendo lo mismo, así que tiene pinta de bug. Voy a dejar un poco de tiempo por si alguien sabe algo acerca del tema y si no lo reporto.

Un saludo.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a openerp-spain-users+unsub...@googlegroups.com.

Alejandro Santana

unread,
Dec 3, 2013, 12:44:43 PM12/3/13
to openerp-s...@googlegroups.com
Lo que he probado de la v7 no tengo ese problema.
En mi caso sólo creo una carpeta en el addons_path, donde meto de forma automática enlaces simbólicos absolutos de los módulos (no ramas enteras) que necesito.

¿Será problema de permisos?

Pablo Cayuela Martínez - ASERTI

unread,
Dec 3, 2013, 1:08:27 PM12/3/13
to openerp-s...@googlegroups.com
Hola Alejandro

¿La v7 que usas es ocb? Nosotros estamos con una nightly build, que estamos viendo que aunque dicen que son estables no estoy yo muy convencido de usarlas en producción.
Por permisos no creo que sea, todos los fuentes pertenecen al usuario con el que lo lanzo.
La verdad es que es muy raro, pero muchas gracias, entre todos puede que consigamos acotar algo más cuál es el motivo de que pase esto.

Un saludo.

Alejandro Santana

unread,
Dec 3, 2013, 1:53:37 PM12/3/13
to openerp-s...@googlegroups.com
Pues sí, estoy usando las ramas OCB.
Así sin ver nada más, no se me ocurre la razón del fallo. ¿Algo en los logs?

Donde sí tengo algunos problemas con algunas cadenas (sólo unas pocas, algo aleatoriamente) es en la 6.1, pero se corrigen a mano y punto, que no son muchas.

Pablo Cayuela Martínez - ASERTI

unread,
Dec 4, 2013, 4:03:15 AM12/4/13
to openerp-s...@googlegroups.com
Versión nightly build openerp-7.0-20130806-231058, que es con la que estamos trabajando.
Prueba 1:

Creo bbdd nueva en español, instalo el módulo product y exporto la traducción. El log muestra esto durante la traducción
....
2013-12-04 07:58:39,890 4465 DEBUG bug_translate openerp.tools.translate: Ignoring empty or 1-letter source term: ('product', '', 'res.groups,comment', 'product.group_uos', 'model', [])
Traceback (most recent call last):
  File "/usr/lib/python2.7/logging/__init__.py", line 850, in emit
    msg = self.format(record)
  File "/usr/lib/python2.7/logging/__init__.py", line 723, in format
    return fmt.format(record)
  File "/home/pablo/workspace/openerp-7.0-20130806-231058/openerp/netsvc.py", line 150, in format
    return DBFormatter.format(self, record)
  File "/home/pablo/workspace/openerp-7.0-20130806-231058/openerp/netsvc.py", line 144, in format
    return logging.Formatter.format(self, record)
  File "/usr/lib/python2.7/logging/__init__.py", line 464, in format
    record.message = record.getMessage()
  File "/usr/lib/python2.7/logging/__init__.py", line 328, in getMessage
    msg = msg % self.args
TypeError: not all arguments converted during string formatting
Logged from file translate.py, line 857
2013-12-04 07:58:39,928 4465 DEBUG bug_translate openerp.tools.translate: Scanning files of modules at /home/pablo/workspace/openerp-7.0-20130806-231058/openerp/addons
....

De todas maneras saca bien las cadenas del código.

Prueba 2:
Muevo el módulo product a otro directorio y lo añado al path:
addons_path = ./openerp/addons,./openerp/addons_fuera
Al arrancar muestra que los coge bien:
2013-12-04 08:11:40,302 5957 INFO ? openerp: addons paths: /home/pablo/workspace/openerp-7.0-20130806-231058/openerp/addons,/home/pablo/workspace/openerp-7.0-20130806-231058/openerp/addons_fuera
Repito el caso anterior: creo la bbdd, instalo product (sin problemas) y saco la traducción.
Muestra exactamente el mismo error el log, pero esta vez no exporta las cadenas.

Bola extra ¿Off-topic?: He probado openerp-7.0-20131127-002420, openerp-7.0-20131204-002457 y openerp-7.0-20131202-002354 y en todas al instalar simplemente product te intenta instalar portal pero da error. Antes (openerp-7.0-20130806-231058 por ej) no lo hacía, pero si instalaba manualmente portal no hay problema.
El error es este, una vez que ya ha cargado el modelo e inicializado la bbdd, cuando se pone a cargar los xml:
...
2013-12-04 08:37:26,118 7088 DEBUG bug_translate openerp.osv.orm.schema: Table 'portal_payment_acquirer': column 'form_template': added a NOT NULL constraint
2013-12-04 08:37:26,177 7088 INFO bug_translate openerp.modules.loading: module portal: loading portal_data.xml
2013-12-04 08:37:26,285 7088 ERROR bug_translate openerp.tools.convert: Parse error in /opt/openerp/v70/openerp/addons/portal/portal_data.xml:16:
<record id="company_news_feed" model="mail.group">
            <field name="name">Company News</field>
            <field name="public">public</field>
        </record>
Traceback (most recent call last):
  File "/home/pablo/workspace/openerp-7.0-20131204-002457/openerp/tools/convert.py", line 847, in parse
    self._tags[rec.tag](self.cr, rec, n)
  File "/home/pablo/workspace/openerp-7.0-20131204-002457/openerp/tools/convert.py", line 814, in _tag_record
    id = self.pool.get('ir.model.data')._update(cr, self.uid, rec_model, self.module, res, rec_id or False, not self.isnoupdate(data_node), noupdate=self.isnoupdate(data_node), mode=self.mode, context=rec_context )
  File "/opt/openerp/v70/openerp/addons/base/ir/ir_model.py", line 956, in _update
    res_id = model_obj.create(cr, uid, values, context=context)
  File "/opt/openerp/v70/openerp/addons/mail/mail_group.py", line 154, in create
    newref = cobj.copy(cr, SUPERUSER_ID, ref[1], default={'params': str(params), 'name': vals['name']}, context=context)
  File "/home/pablo/workspace/openerp-7.0-20131204-002457/openerp/osv/orm.py", line 5058, in copy
    self.copy_translations(cr, uid, id, new_id, context)
  File "/home/pablo/workspace/openerp-7.0-20131204-002457/openerp/osv/orm.py", line 5029, in copy_translations
    del record['source']
KeyError: 'source'
...

Como parece estar relacionado con las traducciones por eso lo pongo. Ya sólo se me ocurre que pueda ser un problema de librerías, porque que openerp saque tantas builds con ese fallo importante me parece raro.
Adjunto el listado de librerías de python, que bastante ladrillo es ya la respuesta.

Un saludo.
lib_python.txt

Pedro Manuel Baeza Romero

unread,
Dec 5, 2013, 11:45:34 AM12/5/13
to openerp-s...@googlegroups.com
Buenas, Pablo,

Juega con distintas versiones de babel, que es la librería que se encarga de todos esos temas, a ver si consigues solucionarlo.

Un saludo.


--
Has recibido este mensaje porque estás suscrito al grupo "Usuarios OpenERP en España" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a openerp-spain-u...@googlegroups.com.

DSASOFTWARESG

unread,
Aug 8, 2016, 10:39:20 AM8/8/16
to Usuarios Odoo / OpenERP en España
Saludos!

Estoy comenzando en el grupo. En mi empresa deseamos habilitar el modulo prestashop, en la version 8 de Odoo. Ya logramos tener disponible el modulo en la lista de modulos locales. El problema ahora es que al momento de instalarlo  Presenta este error:

Traceback (most recent call last):
  File "/opt/odoo/server/openerp/http.py", line 537, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/opt/odoo/server/openerp/http.py", line 574, in dispatch
    result = self._call_function(**self.params)
  File "/opt/odoo/server/openerp/http.py", line 310, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/opt/odoo/server/openerp/service/model.py", line 118, in wrapper
    return f(dbname, *args, **kwargs)
  File "/opt/odoo/server/openerp/http.py", line 307, in checked_call
    return self.endpoint(*a, **kw)
  File "/opt/odoo/server/openerp/http.py", line 803, in __call__
    return self.method(*args, **kw)
  File "/opt/odoo/server/openerp/http.py", line 403, in response_wrap
    response = f(*args, **kw)
  File "/opt/odoo/server/addons/web/controllers/main.py", line 948, in call_button
    action = self._call_kw(model, method, args, {})
  File "/opt/odoo/server/addons/web/controllers/main.py", line 936, in _call_kw
    return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
  File "/opt/odoo/server/openerp/api.py", line 256, in wrapper
    return old_api(self, *args, **kwargs)
  File "/opt/odoo/server/openerp/addons/base/module/module.py", line 447, in button_immediate_install
    return self._button_immediate_function(cr, uid, ids, self.button_install, context=context)
  File "/opt/odoo/server/openerp/api.py", line 256, in wrapper
    return old_api(self, *args, **kwargs)
  File "/opt/odoo/server/openerp/addons/base/module/module.py", line 495, in _button_immediate_function
    registry = openerp.modules.registry.RegistryManager.new(cr.dbname, update_module=True)
  File "/opt/odoo/server/openerp/modules/registry.py", line 370, in new
    openerp.modules.load_modules(registry._db, force_demo, status, update_module)
  File "/opt/odoo/server/openerp/modules/loading.py", line 355, in load_modules
    loaded_modules, update_module)
  File "/opt/odoo/server/openerp/modules/loading.py", line 255, in load_marked_modules
    loaded, processed = load_module_graph(cr, graph, progressdict, report=report, skip_modules=loaded_modules, perform_checks=perform_checks)
  File "/opt/odoo/server/openerp/modules/loading.py", line 152, in load_module_graph
    models = registry.load(cr, package)
  File "/opt/odoo/server/openerp/modules/registry.py", line 163, in load
    model = cls._build_model(self, cr)
  File "/opt/odoo/server/openerp/models.py", line 596, in _build_model
    original_module = pool[name]._original_module if name in parents else cls._module
  File "/opt/odoo/server/openerp/modules/registry.py", line 102, in __getitem__
    return self.models[model_name]
KeyError: 'product.image'

Podra sugerirnos alguna accion al respecto?

Gracias

Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a openerp-spain-users+unsub...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages