Mostrar campos heredados sin modificar la vista principal

1,490 views
Skip to first unread message

José María Moreno

unread,
Oct 13, 2017, 7:57:43 AM10/13/17
to Usuarios Odoo / OpenERP en España
Buenos días,

Después de llevar ya varias horas probando no encuentro la manera de hacer que funcione.

Básicamente lo que quiero hacer es: en una módulo nuevo, heredando la tabla product.template, mostrar solo varios campos.

Este es el archivo de la vista:

<?xml version="1.0" encoding="UTF-8"?>
<openerp>
   <data>

    <record model="ir.actions.act_window" id="informes_list_action">
      <field name="name">Informes</field>
      <field name="res_model">product.product</field>
      <field name="view_type">form</field>
      <field name="view_mode">tree</field>
      </record>

      <record model="ir.ui.view" id="informes_tree_view">
        <field name="name">informes.tree</field>
        <field name="model">product.product</field>
        <field name="inherit_id" ref="product.product_template_tree_view"/>
        <field name="mode">primary</field>
        <field name="arch" type="xml">
          <tree string="Product">
            <field name="name" readonly="1"/>
            <field name="default_code"/>
            <field name="ean13"/>
            <field name="weight_net"/>
          </tree>
        </field>
      </record>

      <record id="informes_view_search" model="ir.ui.view">
        <field name="name">informes.search</field>
        <field name="model">product.template</field>
        <field name="arch" type="xml">
          <search>
           <field name="ean13"/>
           <filter string="No Barcode" domain="[('ean13','=',False)]"/>
          </search>
        </field>
      </record>

      <menuitem id="odoo_menu" name="Odoo" parent="main_pws_menu" />
      <menuitem id="informes_menu" name="Informes" parent="odoo_menu" action="informes_list_action" />

    </data>
  </openerp>

Lo único que necesito es que en esta vista solo se vean esos 4 campos de la tabla product.template, en la vista tree. Pero me muestra la tabla entera con todos los campos, y no se que hago mal...

Espero que me podáis ayudar. Gracias !!

victor...@kayuulab.com

unread,
Oct 14, 2017, 2:24:55 PM10/14/17
to Usuarios Odoo / OpenERP en España
Hola,

Como la vista original que heredas sí que muestra esos campos yo creo que lo que hay que hacer es coger todos los campos que NO quieres que se vean y ponerlos como invisibles, pe:

            <field name="campo_que_no_quiero_ver" position="attributes">
                <attribute name="invisible">1</attribute>
            </field>

Prueba a ver que tal...

Saludos,

Victor

José María Moreno

unread,
Oct 16, 2017, 3:23:26 AM10/16/17
to Usuarios Odoo / OpenERP en España
He probado y sigue sin mostrarme los campos que quiero que muestre.

victor...@kayuulab.com

unread,
Oct 16, 2017, 5:41:07 AM10/16/17
to Usuarios Odoo / OpenERP en España

¿Te hace falta el   <field name="mode">primary</field> ? ¿Has probado quitándolo?

Saludos,

Victor

José María Moreno

unread,
Oct 16, 2017, 5:50:45 AM10/16/17
to Usuarios Odoo / OpenERP en España

Lo he quitado pero sigue mostrándome lo mismo. Realmente no se qué es lo que falla. Muchas gracias igualmente por la ayuda!!

Jose Angel Carmona

unread,
Oct 16, 2017, 6:06:54 AM10/16/17
to openerp-s...@googlegroups.com
Buenas,

Quizás digo una obviedad pero a mí me pasó, estaba modificando un módulo personalizado y no me cargaba.

Al final hice un reinicio del servidor y update del módulo y se cargaron los cambios.


Saludos,
Jose Angel Carmona

Enviado desde mi iPhone 

El 16 oct 2017, a las 11:50, José María Moreno <csys...@gmail.com> escribió:


Lo he quitado pero sigue mostrándome lo mismo. Realmente no se qué es lo que falla. Muchas gracias igualmente por la ayuda!!

--
Has recibido este mensaje porque estás suscrito al grupo "Usuarios Odoo / OpenERP en España" de Grupos de Google.
Para cancelar 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.

José María Moreno

unread,
Oct 16, 2017, 6:16:13 AM10/16/17
to Usuarios Odoo / OpenERP en España
Sí sí. He reiniciado el servidor, actualizado el módulo y demás. He probado ya varias opciones pero aún así me sigue mostrando todos los campos de la tabla.

victor...@kayuulab.com

unread,
Oct 16, 2017, 6:51:06 AM10/16/17
to Usuarios Odoo / OpenERP en España
Otra obviedad... ¿realmente estás viendo esa vista? ¿Has comprobado con el modo desarrollador activado que la vista que te muestra el browser es esa y no la del módulo original?

Saludos,

Victor

José María Moreno

unread,
Oct 16, 2017, 9:26:50 AM10/16/17
to Usuarios Odoo / OpenERP en España
Si yo llamo a:

<field name="model">product.product</
field>
        <field name="inherit_id" ref="product.product_template_tree_view"/>

la vista que me muestra es esa. De hecho yo quiero usar esa vista, solo que no quiero que me muestre todos los campos. Solo algunos, y es ahí donde no hay manera haga lo que haga.

victor...@kayuulab.com

unread,
Oct 16, 2017, 9:44:38 AM10/16/17
to Usuarios Odoo / OpenERP en España
A lo que me refiero es a lo de activar el modo desarrollador y usar "Editar tree vista" y ves el ID Externo para ver si lo que estás viendo viene de tu módulo o de otro.

Saludos,

Victor

José María Moreno

unread,
Oct 16, 2017, 10:10:46 AM10/16/17
to Usuarios Odoo / OpenERP en España

Viene del módulo heredado:

ID externo product.product_product_tree_view

Supuestamente si tengo quiero mostrar lo que contiene esa vista es normal que me lo herede no?, solo que no quiero mostrar todas las columnas. Solo algunas. Pero me las muestra todas.

victor...@kayuulab.com

unread,
Oct 16, 2017, 10:26:34 AM10/16/17
to Usuarios Odoo / OpenERP en España
IMHO ese ID externo indica que estás viendo la vista llamada product_product_tree_view del módulo llamado product.

No creo que ese sea el nombre de tu módulo, y si lo es mejor elegir otro ya que coincide con el ya existente.

Como ejercicio puedes buscar directamente en la base de datos en la tabla ir_model_data y ver que entradas tienen el campo "name" a "product_product_tree_view", y de que módulos y modelos. En mi caso sale del módulo product, modelo ir.ui.view (las vistas de la interface de usuario)...  por lo que creo que no estás viendo la vista que has definido en tu módulo.

Creo que tu vista debería tener como ID externo Tu_Modulo.informes_tree_view, y aparecer en la tabla ir_model_data de la BBDD asociada a tu módulo y al modelo ir.ui.view

Saludos,
Victor

José María Moreno

unread,
Oct 16, 2017, 10:47:35 AM10/16/17
to Usuarios Odoo / OpenERP en España

Sí. Como bien dices, Victor, me refería a que la vista que estoy viendo es la vista padre: product_product_tree del módulo product.

He comprobado la base de datos y la vista informes_tree_view sí aparece en la tabla ir_model_data de la BBDD  y va asociada a ir.ui.view.

Pero en el ID externo, me aparece: ID externo product.product_product_tree_view

Mi XML contiene lo siguiente:


<record model="ir.ui.view" id="informes_tree_view">
        <field name="name">informes.tree</field>
        <field name="model">product.product</field>
        <field name="mode">primary</field>
        <field name="inherit_id" ref="product.product_product_tree_view"/>

        <field name="arch" type="xml">
          <tree string="Product Variants">
              <field name="name"/>
          </tree>
        </field>
      </record>

Ya que en informes solo quiero mostrar la columna "name" de product.product. Pero nada no hay forma

Gracias y saludos !

José María

victor...@kayuulab.com

unread,
Oct 16, 2017, 11:37:50 AM10/16/17
to Usuarios Odoo / OpenERP en España
Prueba a cambiar como defines la acción para indicarle explícitamente que quieres usar la vista que defines en ese xml con su view_id para que no busque la que ya tiene definida por defecto, prueba con:



<record model="ir.actions.act_window" id="informes_list_action">
      <field name="name">Informes</field>
   <field name="type">ir.actions.act_window</field>
      <field name="res_model">product.product</field>
      <field name="view_type">form</field>
      <field name="view_mode">tree</field>
    <field name="view_id" ref="informes_tree_view"/>
 </record>


Saludos,

Victor

Erick Venegas

unread,
Oct 16, 2017, 11:40:29 AM10/16/17
to Usuarios Odoo / OpenERP en España
Buenos días tuve un problema similar, por que necesitaba cambiar la vista de facturas y revisando en este foro lo puse la siguiente manera para ocultar los campos ya existian y me funciona.

Muchas gracias

<record id="invoice_tree_inherited"  model="ir.ui.view">
    <field name="name">account.invoice.tree.inherited</field>
    <field name="model">account.invoice</field>
    <field name="inherit_id" ref="account.invoice_tree"/>

    <field name="arch" type="xml">
    <!--  <tree decoration-info="state == 'draft'" decoration-muted="state == 'cancel'" string="Invoice"> -->

          <field name="number" position="attributes">

              <attribute name="invisible">1</attribute>
          </field>
          <field name="partner_id" position="attributes">

              <attribute name="invisible">1</attribute>
          </field>

José María Moreno

unread,
Oct 17, 2017, 5:49:21 AM10/17/17
to Usuarios Odoo / OpenERP en España
Nada.

Además no se por qué, me ha intercambiado las vistas y dónde ahora se debería ver la product_template_tree_view se ve informes_tree_view y viceversa... A ver si doy con la tecla.

Gracias !!

victor...@kayuulab.com

unread,
Oct 17, 2017, 5:57:27 AM10/17/17
to Usuarios Odoo / OpenERP en España
Vas por buen camino, una vez que veas en el modo desarrollador que lo que estás viendo es informes_tree_view ya puedes ocultar en tu xml los campos que no quieras ver poniéndolos como invisibles en la definición de dicha vista.

Ten en cuenta que el mode primary hace que no se modifique la vista original, es como si crearas una copia, por lo que tienes que llamar a la copia que es la que estás modificando, y modificarla ocultando campos que no quieras ver.

Saludos,

Victor

José María Moreno

unread,
Oct 17, 2017, 6:07:57 AM10/17/17
to Usuarios Odoo / OpenERP en España

Tiene pinta de que por ahí van los tiros. Solo que ahora en Ventas --> Productos, es donde me aparece la vista informes_tree_view y en mi sección informes es donde aparece product_template_tree_view... Con lo cual las modificaciones ahora se me hacen donde no se deberían hacer. Los ID externo y modelo de datos se han intercambiado...

La verdad que es engorroso.

Gracias por la ayuda.

Saludos!

victor...@kayuulab.com

unread,
Oct 17, 2017, 6:13:27 AM10/17/17
to Usuarios Odoo / OpenERP en España
Pues entonces en lugar de heredar la vista original y cambiarla, créala desde cero, total si sólo necesitas ver un campo y no necesitas el resto, ¿para qué heredarla?

Saludos,
Victort

José María Moreno

unread,
Oct 17, 2017, 6:16:37 AM10/17/17
to Usuarios Odoo / OpenERP en España

Necesito las dos. La de ventas -> Productos, que muestre toda la información como siempre, y la de informes en la que se muestren algunos campos de productos, más los se le tengan que ir añadiendo más adelante.


victor...@kayuulab.com

unread,
Oct 17, 2017, 7:09:15 AM10/17/17
to Usuarios Odoo / OpenERP en España
Pues eso, deja la original sin tocarla para que se vea en Ventas->Productos y crea la otra de informes sin heredar nada de la original, no le pongas el campo inherit_id ni el mode.

José María Moreno

unread,
Oct 17, 2017, 7:13:15 AM10/17/17
to Usuarios Odoo / OpenERP en España
Y en ese caso, cómo puedo crear una vista que muestre por ejemplo el contenido de las columnas que me interesen de ventas->productos en la nueva vista?

victor...@kayuulab.com

unread,
Oct 17, 2017, 10:25:43 AM10/17/17
to Usuarios Odoo / OpenERP en España
Prueba con esto, que crea una nueva entrada de menú "informes" debajo de Ventas->Productos, si quieres que el usuario pueda clicar y abrir el formulario del producto cambia tree por tree,form en la línea view_mode de la acción:



<record model="ir.ui.view" id="informes_tree_view">
          <field name="name">mis_informes.tree</field>

<field name="model">product.product</field>
          <field name="type">tree</field>

<field name="arch" type="xml">
            <tree string="Products">
<field name="name_template" readonly="1"/>

<field name="default_code"/>
<field name="ean13"/>
            </tree>
</field>
</record>


<record id="informes_view_search" model="ir.ui.view">
  <field name="name">informes_search</field>

<field name="model">product.product</field>
  <field name="arch" type="xml">
<search>
<field name="ean13"/>
<filter string="No Barcode" domain="[('ean13','=',False)]"/>
</search>
</field>
</record>


  <record model="ir.actions.act_window" id="informes_list_action">
<field name="name">Informes</field>
          <field name="type">ir.actions.act_window</field>

<field name="res_model">product.product</field>
<field name="view_type">form</field>
<field name="view_mode">tree</field>
          <field name="view_id" ref="informes_tree_view"/>
</record>


  <menuitem   id="menu_mis_informes_tree" parent="base.menu_product" action="informes_list_action" sequence="20"/>

José María Moreno

unread,
Oct 17, 2017, 11:04:06 AM10/17/17
to Usuarios Odoo / OpenERP en España
Pues después de mil fallos reinicios reseteos y demás, he empezado de cero, he copiado el código que me has puesto, y por fin FUNCIONA !!


Mil gracias !!!!


victor...@kayuulab.com

unread,
Oct 17, 2017, 11:28:29 AM10/17/17
to Usuarios Odoo / OpenERP en España
De nada!

Saludos,
Victor
Reply all
Reply to author
Forward
0 new messages