abrir popup desde boton tipo action no muestra botón guardar/cancelar

1,208 views
Skip to first unread message

Emilio Alvarez

unread,
Jul 22, 2014, 4:20:12 AM7/22/14
to openerp-s...@googlegroups.com
Buen día

Estoy desarrollando un módulo para openerp 7. En mi módulo tengo una entidad A relacionada many2one con una entidad b

En la vista de formulario de la entidad a he colocado un botón. Min intención es que al pulsar el botón se abra un popup con la ficha de la entidad b para crear/editar el elemento de la entidad b relacionado con la entidad a.

 <button name="%(planoperacional_view_action)d" string="Plan operacional" type="action"/>

Todo funciona correcto excepto que en el popup no me aparecen los botones para poder guardar los datos introducidos en el formulario.

Lo que pretendo es una funcionalidad similar a la que se produce en un <tree> al pulsar el link "añadir elemento".

Salud.

cubells

unread,
Jul 22, 2014, 4:25:54 AM7/22/14
to openerp-s...@googlegroups.com
El 22/07/14 10:20, Emilio Alvarez ha escrit:
> Buen día
>
> Estoy desarrollando un módulo para openerp 7. En mi módulo tengo una
> entidad A relacionada many2one con una entidad b
>
> En la vista de formulario de la entidad a he colocado un botón. Min
> intención es que al pulsar el botón se abra un popup con la ficha de la
> entidad b para crear/editar el elemento de la entidad b relacionado con
> la entidad a.
>
> <button name="%(planoperacional_view_action)d" string="Plan
> operacional" type="action"/>
>
> Todo funciona correcto excepto que en el popup no me aparecen los
> botones para poder guardar los datos introducidos en el formulario.

No te entiendo.

Ese botón sirve para abrir una acción llamada planoperacional_view_action.

Donde defines la acción debes definir la vista que se abrirá al hacer
clic en el botón. Dices que la vista definida no muestra los botones?

--
Atentament, cubells.
--

Emilio Alvarez

unread,
Jul 22, 2014, 5:49:41 AM7/22/14
to openerp-s...@googlegroups.com
Buen día.

Efectivamente tal como comentas este botón abre la vista planoperacional_view_action. El problema que tengo es que al abrirse el popup no aparecen los botones para grabar la información

Aprovecho también para comentarte si puedes proporcioarme un ejemplo de como rellenar algunos campos con la información de la entidad a (padre).

Salud.

cubells

unread,
Jul 22, 2014, 6:11:07 AM7/22/14
to openerp-s...@googlegroups.com
El 22/07/14 11:49, Emilio Alvarez ha escrit:
> Buen día.
>
> Efectivamente tal como comentas este botón abre la vista
> planoperacional_view_action. El problema que tengo es que al abrirse el
> popup no aparecen los botones para grabar la información
>

Los botones de la vista, a no ser que tenga algún campo one2many o
many2many los has de crear tu.


> Aprovecho también para comentarte si puedes proporcioarme un ejemplo de
> como rellenar algunos campos con la información de la entidad a (padre).
>

Tienes centenares de ejemplos en los wizard. Mira la carpeta wizard el
modelo sale, stock o account y verás ejemplos de cómo se hace.


--
Atentament, cubells.
--

Emilio Alvarez

unread,
Jul 22, 2014, 7:17:24 AM7/22/14
to openerp-s...@googlegroups.com
Buen día.

En primer lugar agradecerte la ayuda que me estas proporcionando.

En segundo lugar comentarte que existe una relación one2many.

En la entidad a tengo definido el campo:

'planoperacional_id' : fields.one2many('entidadb', 'vuelo_id', 'Plan Operacional', select="1"),

En la entidad b  tengo definido el campo:

'vuelo_id' : fields.many2one('entidadb', 'Vuelo', ondelete='cascade', required=True),

A pesar de ello sigue sin aparecerme los botones.

Salud.

cubells

unread,
Jul 22, 2014, 7:49:13 AM7/22/14
to openerp-s...@googlegroups.com
El 22/07/14 13:17, Emilio Alvarez ha escrit:
> Buen día.
>
> En primer lugar agradecerte la ayuda que me estas proporcionando.
>
> En segundo lugar comentarte que existe una relación one2many.
>
> En la entidad a tengo definido el campo:
>
> 'planoperacional_id' : fields.one2many('entidadb', 'vuelo_id', 'Plan
> Operacional', select="1"),
>
>


En la definición del tree de la vista del campo one2many pon
editable="bottom"

Te debería de funcionar.

Si no, adjunta código para que podamos ver dónde está el problema.


--
Atentament, cubells.
--

Emilio Alvarez

unread,
Jul 22, 2014, 11:13:08 AM7/22/14
to openerp-s...@googlegroups.com
Buen día.

Adjunto código comentado

La clase entidada

class entidada(osv.osv):
    _name = "entidada"
    
    _columns = {
        'name'        : fields.char('descripción',required=True),
        'planoperacional_id' : fields.one2many('entidadb', 'vuelo_id', 'Plan Operacional', select="1"),
    }
helipistas_vuelos_tipo()

La clase entidadb

class entidadb(osv.osv):
    _name = "entidadb"
    

    _columns = {
        'name'     : fields.char('Descripción',required=True),
        'vuelo_id'       : fields.many2one('entidada', 'Vuelo', ondelete='cascade', required=True),
    }
entidadb()

El xml de la entidad a


<?xml version="1.0" encoding="UTF-8"?>
<openerp>
    <data>
 <record model="ir.ui. view" id="vuelos_vuelos_form_view">
            <field name="name">entidada.form</field>
            <field name="model">entidada</field>
            <field name="arch" type="xml">
                <form string="Vuelo" version="7.0">
                    <field name="wbdata" invisible="1"/>
                        <header>       
                            <button name="%(planoperacional_view_action)d" string="Plan operacional" type="action"/>
                            <field name="estado" widget="statusbar"/>
                        </header>                 
.....
.....


El xml de planoperacional_view_action

<?xml version="1.0" encoding="UTF-8"?>
<openerp>
    <data>        
        <record model="ir.ui.view" id="planoperacional_form_view">
            <field name="name">Helipistas - Plan operacional form view</field>
            <field name="model">entidadb</field>
            <field name="arch" type="xml">
                <form string="Plan operacional" version="7.0">
                    <group col="6">
                        <field name="helicoptero_id"/>
                        <field name="idvuelo"/>
                        <field name="qtytripulacion"/>
                    </group>
                    <group col="4">
                        <field name="lugarsalida"/>
                        <field name="horasalida" widget="float_time"/>
                    </group>
                    <group col="4">
                        <field name="lugarllegada"/>
                        <field name="horallegada" widget="float_time"/>
                    </group>
                    <group col="1">
                        <field name="alternativos"/>
                    </group>
                    <group col="4">
                        <field name="tiempovueloestimado" widget="float_time"/>
                        <field name="distanciatotal"/>
                        <field name="velocidadprevista"/>
                        <field name="combustible"/>
                    </group>
                    <group col="2">
                        <field name="calculocomobustible"/>
                        <field name="observaciones"/>
                    </group>
                    <div>
                        <h3>Puntos de ruta</h3>
                        <field name="puntoderuta_ids">
                            <tree>
                                <field name="indicativo"/>
                                <field name="coordenadas"/>
                                <field name="distancia"/>
                                <field name="rumbo"/>
                                <field name="tiempoprevisto"/>
                                <field name="altitudprevista"/>
                                <field name="altitudseguimento"/>
                            </tree>
                        </field>
                    </div>
                </form>
            </field>
        </record>        
                
   <record model="ir.actions.act_window" id="planoperacional_view_action">
            <field name="name">Helipistas - Plan operacional</field>
            <field name="type">ir.actions.act_window</field>
            <field name="res_model">helipistas.planoperacional</field>
            <field name="view_type">form</field>
            <field name="view_id" ref="planoperacional_form_view"/>
            <field name="target">new</field>
        </record>        

    </data>
</openerp> 
 

Salud.

cubells

unread,
Jul 23, 2014, 5:41:36 AM7/23/14
to openerp-s...@googlegroups.com
El 22/07/14 a les 17:13, Emilio Alvarez ha escrit:
> Buen día.
>
En la vista no tienes el campo one2many planoperacional_id

Cómo quieres que aparezcan los botones?

Soy más concreto dónde quieres que aparezcan en el xml?


--
Atentament, cubells.
--

Emilio Alvarez

unread,
Jul 23, 2014, 5:46:16 AM7/23/14
to openerp-s...@googlegroups.com
Buen día.

No aparece porqué no quiero que se muestre. Voy a probar poniendo un field invisible. 

Salud.

Emilio Alvarez

unread,
Jul 23, 2014, 5:53:08 AM7/23/14
to openerp-s...@googlegroups.com
Buen día

He probado añadiendo a la vista de la entidad a, dónde tengo los botones que abren el pop 

                    <field name="planoperacional_id" invisible="0"/>
                    <field name="planvueloATS_id" invisible="0"/>                    
                        <header>       
                            <button name="%(planoperacional_view_action)d" string="Plan operacional" type="action" />
                            <button name="%(planvueloats_view_action)d" string="Plan ATS" type="action" />
                            <field name="estado" widget="statusbar"/>
                        </header> 

y el comportamiento es el mismo en el popop donde aparec el formulario de la entidad b siguen sin aparecer los botones para poder grabar

Salud.

El miércoles, 23 de julio de 2014 11:41:36 UTC+2, cubells escribió:

cubells

unread,
Jul 23, 2014, 5:54:42 AM7/23/14
to openerp-s...@googlegroups.com
El 22/07/14 a les 17:13, Emilio Alvarez ha escrit:
> Buen día.
>
> Adjunto código comentado
>
>


Soy más concreto todavía porque veo que no sabes encontrar.

Presupongo que quieres poner un campo one2many en una vista y que
aparezcan los botones de añadir.

Ejemplo de las clases de openerp:

class sale_order(osv.osv):
_name = "sale.order"

...

_columns = {
....
### Las variables que se pasan al campo one2many no son
aleatorios, son así por algo, comparalo con tu código.
'order_line': fields.one2many('sale.order.line', 'order_id',
'Order Lines', readonly=True, states={'draft': [('readonly', False)],
'sent': [('readonly', False)]}),
...
}

...

class sale_order_line(osv.osv):
...
_name = 'sale.order.line'
....
_columns = {
...
### Se define este campo por algo
'order_id': fields.many2one('sale.order', 'Order Reference',
required=True, ondelete='cascade', select=True, readonly=True,
states={'draft':[('readonly',False)]}),
...
}


En la vista:
### Definimos el formulario
<record id="view_order_form" model="ir.ui.view">
<field name="name">sale.order.form</field>
<field name="model">sale.order</field>
<field name="arch" type="xml">
<form string="Sales Order" version="7.0">
...
<notebook>
<page string="Order Lines">
### Añadimos el campo one2many
<field name="order_line">
<form string="Sales Order Lines"
version="7.0">
...
### Hacmos el treview editable
<tree string="Sales Order Lines" editable="bottom">
...


Lo ves?


--
Atentament, cubells.
--

cubells

unread,
Jul 23, 2014, 5:56:07 AM7/23/14
to openerp-s...@googlegroups.com
El 23/07/14 a les 11:46, Emilio Alvarez ha escrit:
> Buen día.
>
> No aparece porqué no quiero que se muestre. Voy a probar poniendo un
> field invisible.
>


Ahora sí que me has dejado de piedra.

Puedes explicar qué botones quieres que aparezcan en el popup y dónde?


--
Atentament, cubells.
--

cubells

unread,
Jul 23, 2014, 6:00:53 AM7/23/14
to openerp-s...@googlegroups.com
El 22/07/14 a les 17:13, Emilio Alvarez ha escrit:
> Buen día.
>
Revisando tu código.

El botón

<button name="%(planoperacional_view_action)d" string="Plan operacional"
type="action"/>

Iniciará la vista planoperacional_form_view

Si quieres que aparezcan los botones en el tree que hay en

<field name="puntoderuta_ids">

deberás de poner editable="bottom" al tree

Es eso?

--
Atentament, cubells.
--

Emilio Alvarez

unread,
Jul 23, 2014, 6:14:07 AM7/23/14
to openerp-s...@googlegroups.com
Buen día.

Voy a intentar ser más claro en mi explicación

"Entidad a" 
--> En esta entidad añado un botón "plan operacional" en el header de la vista de la "entidad a". (ver imagen adjunta imagen1.png)
--> Mi objetivo es que al pulsar el botón se muestre en pantalla una venta popup con la vista de la "entidad b".
--> Mi problema es que al mostrarse el la vista de la "entidad b" en el popup no aparecen los botones "guardar y cerrar" y "guardar y nuevo" para guardar los cambios. (ver imagen adjunta imagen2.png)

Salud.
imagen1.PNG
imagen2.PNG

cubells

unread,
Jul 23, 2014, 6:44:25 AM7/23/14
to openerp-s...@googlegroups.com
El 23/07/14 a les 12:14, Emilio Alvarez ha escrit:
> Buen día.
>
> Voy a intentar ser más claro en mi explicación
>
> "Entidad a"
> --> En esta entidad añado un botón "plan operacional" en el header de la
> vista de la "entidad a". (ver imagen adjunta imagen1.png)
> --> Mi objetivo es que al pulsar el botón se muestre en pantalla una
> venta popup con la vista de la "entidad b".
> --> Mi problema es que al mostrarse el la vista de la "entidad b" en el
> popup no aparecen los botones "guardar y cerrar" y "guardar y nuevo"
> para guardar los cambios. (ver imagen adjunta imagen2.png)
>
>


has de añadir tú los botones de tipo object y con su correspondiente
función para que realice lo que tú quieras en la vista del wizard. Te lo
dije desde un principio.

Ejemplo en un wizard de account:

<footer>
<button name="reconcile" string="Reconcile"
type="object" class="oe_highlight"/>
or
<button string="Cancel" class="oe_link"
special="cancel"/>
</footer>


--
Atentament, cubells.
--

Emilio Alvarez

unread,
Jul 23, 2014, 7:22:23 AM7/23/14
to openerp-s...@googlegroups.com
Buen día.

Disculpa no lo entendí correctamente. Muchas gracias por tu ayuda.

Salud.

David Durá Vilches

unread,
Jul 24, 2014, 4:58:57 AM7/24/14
to openerp-s...@googlegroups.com
Añade los botones tú en la vista de la entidad B. Puedes utilizar los wizards como ejemplo como dice Cubells.
Reply all
Reply to author
Forward
0 new messages