← Back to team overview

openerp-brazil-team team mailing list archive

Re: várias views para um mesmo objeto

 

2009/10/15 Luiz Franca <luiz@xxxxxxxxxxxxxxxxxxxxx>

> Boa noite,
> tenho um objeto chamado cotacoes.
> e tenho um form view, uma tree view e uma action para ele
> <record model="ir.ui.view" id="*view_cotacoes_form*">
>         <field name="name">cotacoes.form</field>
>         <field name="model">cotacoes</field>
> ...
> <record model="ir.ui.view" id=*"view_cotacoes_tree*">
>         <field name="name">cotacoes.tree</field>
>         <field name="model">cotacoes</field>
> ...
> <record model="ir.actions.act_window" id="*action_cotacoes*">
>         <field name="name">Cotações</field>
>         <field name="res_model">cotacoes</field>
> ...
>
> preciso de um novo form view, uma nova tree view e uma action para o *
> mesmo* objeto.
>
> <record model="ir.ui.view" id="*view_cotacoes_1_form*">
>         <field name="name">cotacoes.form</field>
>         <field name="model">cotacoes</field>
> ...
> <record model="ir.ui.view" id=*"view_cotacoes_1_tree*">
>         <field name="name">cotacoes.tree</field>
>         <field name="model">cotacoes</field>
> ...
> <record model="ir.actions.act_window" id="*action_cotacoes*_1">
>         <field name="name">Cotações</field>
>         <field name="res_model">cotacoes</field>
>         <field name="view_id" ref="view_cotacoes_1_tree"/>
> ...
> na action ="*action_cotacoes*_1, estou usando o "view_id", que funcionou
> muito bem, chamou a view_cotacoes_1_tree.
> Porem, quando seleciono um registro na "view_cotacoes_1_tree", ele abre a
> *view_cotacoes_form *e nao a *view_cotacoes_1_form*, como eu queria
> Se eu repetir a linha do view_id tambem para o form, vale apenas a ultima
> definição.
> Alguem tem alguma ideia de como posso resolver este problema?
> obrigado
> []s
>


Ola Luiz,

entao, esse view_id no ir.actions.act_window apenas serve quando tem apenas
uma view que é especifica é que as outras sao as de menor prioridade
encontradas (padrao).
So que logo que voce, tem VARIAS views que tem que ser especificadas e fora
do padrao, vc nao pode usar mas do view_id mas tem que botar varias linhas
de espcecificaçoes de view dentro da ir.actions.act_window, exactemente da
mesma forma que vc vé na interface grafica (nao me pergunte porque é assim).
Vc pode ver um tal exemplo olhando a ir.actions.act_window com nome "Users"
passando por Administration> Low level Objects > Actions > Window Actions

Agora, assim que vc pode reparar usando do modulo base_module_record por
exemplo, para definir varias linhas de view especificas dentro de
um ir.actions.act_window, vc deve criar varios record do
objeto ir.actions.act_window.view dentro do seu XML.
Por exemplo, assim que eu fiz no modulo fleet_maintenance/stock_view.xml
(stable extra addons branch).


Bom, por acabar com o assunto das views especificas, 3 ultimas
consideraçoes:
1) as vezes é melhor ter uma view so mas com partes escondidas sobre
condiçoes (tag group e attrs=...)
2) Tiny acabou de fazer o commit na versao estavel da possibilidade de
seleçao de view pelo "context", o que se torna especialmente util quando um
camp many2one tem que ter view especifica. Entao, coisas que nem fizemos no
fleet_maintenance/stock.py#fields_view_get agora nem precisa mas override
custom do fields_view_get. Veja o fields_view_get no orm.py para ver como
usar.
3) Quando vc realmente precisa de coisas malucas, vc pode criar o XML da
view direito em Python no fields_view_get


Boa sorte,


Raphaël Valyi
http://www.akretion.com



> --
> Luiz Fernando Maciel França
> Sig Informática Ltda.
> Rua João Pereira Amorim, 700
> Bairro Jardim Arizona
> 35.700-373 - Sete Lagoas - MG - Brasil
> (31)3773-1043
> Skype: lfmfsig
>
> _______________________________________________
> Mailing list: https://launchpad.net/~openerp-brazil-team
> Post to     : openerp-brazil-team@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~openerp-brazil-team
> More help   : https://help.launchpad.net/ListHelp
>
>

Follow ups

References