Qweb y grupos de seguridad

174 views
Skip to first unread message

Alejandro Santana

unread,
Jan 26, 2015, 2:08:18 PM1/26/15
to openerp-s...@googlegroups.com
¿Alguien sabe cómo usar (si se pueden) políticas de grupos en plantillas Qweb (igual que en las vistas)? ¿Un enlace o ejemplo?
En la documentación no he encontrado nada al respecto y lo poco que he encontrado (ver después) no funciona o no lo hago correctamente.

Al extender una plantilla qweb en v8, ¿es posible aplicar políticas de grupos a elementos, como se hace en las vistas*? ¿Cómo?
(*) Añadiendo:
groups="my_module.my_security_group"

Estoy intentando ocultar el botón de im_chat que hay en la barra de menú y mostrarlo sólo para un cierto grupo de responsables, pero no soy capaz de hacer que funcione: lo ve todo el mundo.
El código:

<?xml version="1.0" encoding="UTF-8"?>
<templates xml:space="preserve">
<t t-extend="im_chat.ImTopButton">
    <t t-jquery="li" t-operation="replace">
        <li t-att-title='_t("Display Instant Messaging")' groups="my_module.group_my_module_manager">
            <a href="#">
                  <i id="oe_topbar_imbutton_icon" class="fa fa-comments-o"/>
            </a>
        </li>
    </t>
</t>
</templates>

También intenté expresar la restricción de grupo mediante  t-field-options, con el mismo resultado (o falta de él):

<li t-att-title='_t("Display Instant Messaging")' t-field-options='{"groups": "crm_ticket_platforms.group_crm_ticket_platforms_manager"}'>

Pedro Manuel Baeza Romero

unread,
Jan 28, 2015, 1:58:14 AM1/28/15
to openerp-s...@googlegroups.com
¿Y si pruebas con:

t-att-groups="my_module.group_my_module_manager">?

Un saludo.

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

Alejandro Santana

unread,
Jan 29, 2015, 4:32:52 AM1/29/15
to openerp-s...@googlegroups.com
Vaya, t-att-groups no lo veo en ningún módulo OCA, al menos.

Pues parece que no funciona.

Si no pongo el nombre del módulo antes del grupo, lo ignora del todo, sin aviso en log ni nada, y queda visible para todos.
Si pongo el grupo con el nombre del módulo primero, me salta este error en un popup (pero no en el log) y supongo que no se añade el botón porque queda inaccesible a todos.
El popup de error en Chromium:
Odoo Error del cliente
Uncaught Error: QWeb2 - template['im_chat.ImTopButton']: Runtime Error: TypeError: Cannot read property 'group_my_module_manager' of undefined
http://localhost:8069/web/js/web.assets_common/05b35c0:1020
Y este en Firefox, que es diferente:

Odoo Error del cliente
TypeError: dict.my_module is undefined
http://localhost:8069/web/static/lib/qweb/qweb2.js line 400 > Function:8



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

Pedro Manuel Baeza Romero

unread,
Jan 29, 2015, 4:36:20 AM1/29/15
to openerp-s...@googlegroups.com
Pero estás sustituyéndolo por el XML-ID correspondiente, ¿no?

Un saludo.

Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a openerp-spain-u...@googlegroups.com.

Alejandro Santana

unread,
Jan 29, 2015, 5:23:30 AM1/29/15
to openerp-s...@googlegroups.com
Sí, eso es.
El XML-ID del grupo que quiero que acceda al botón es: crm_ticket_platforms.group_crm_ticket_platforms_manager

De esta manera, intento modificar este template original:
<t t-name="im_chat.ImTopButton">
    <li t-att-title='_t("Display Instant Messaging")'>
        <a href="#">
              <i id="oe_topbar_imbutton_icon" class="fa fa-comments-o"/>
        </a>
    </li>
</t>

Modificándolo con esto, en mi módulo y cargándolo en __openerp__.py como: 'qweb': ['static/src/xml/im_chat.xml'],':
<t t-extend="im_chat.ImTopButton">
    <t t-jquery="li" t-operation="replace">
        <li t-att-title='_t("Display Instant Messaging")' t-att-groups="crm_ticket_platforms.group_crm_ticket_platforms_manager">
            <a href="#">
                <i id="oe_topbar_imbutton_icon" class="fa fa-comments-o"/>
            </a>
        </li>
    </t>
</t>


Pero da el error en popup que ponía antes.

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

Para acceder a más opciones, visita https://groups.google.com/d/optout.

Pedro Manuel Baeza Romero

unread,
Jan 30, 2015, 12:33:43 PM1/30/15
to openerp-s...@googlegroups.com
La lógica implica que así te debería funcionar. Podrías poner un issue a ver si es un caso no contemplado pero que pueden contemplar, o probar la fórmula JavaScript que te han dado en los foros de Odoo.

Un saludo.

Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a openerp-spain-u...@googlegroups.com.

Alejandro Santana

unread,
Feb 4, 2015, 8:38:36 AM2/4/15
to openerp-s...@googlegroups.com
Después de hacer unas pruebas más sin resultado positivo, abrí una incidencia: https://github.com/odoo/odoo/issues/5058

A ver si sale algo de ahí.

Mientras, estoy tocando la parte de JS, pero tengo problemas de orden de ejecución y/o falta de herencia (no consigo eliminar el botón que ya hay, pero sí añadir otro). Primeros pasos con JS.

Si consigo resolverlo, escribiré la solución aquí, por si ayuda a alguien.
Reply all
Reply to author
Forward
0 new messages