Sto andando avanti con un pò di difficoltà, vi chiedo lumi per capire se ho capito bene :-P
Qualora riteniate sia meglio aprire un thread specifico, non ho problemi a farlo.
Riassumendo il problema che ho è di rendere "compatibili" i moduli nan_sale_3_discount e sale_layout.
Il primo risiede negli addon-extra il secondo negli addon standard.
Per quanto ho potuto vedere il modulo nan_sale_3_discount funziona correttamente se non è stato installato il module sale_layout. In sintesi nella vista dell'ordine di vendita (dettaglio righe) sono presenti tre colonne aggiuntive chiamate "discount1, discount2 e discount 3".
Gli stessi campi sono presenti se si clicca sulla riga o si clicca sul pulsante "nuovo" per inserirne una nuova e si apre la form sale.order.line.
Una volta installato il sale_layout nell'ordine di vendita i campi aggiuntivi dei tre sconti applicabili per linea vengono a mancare ed il modulo sale_layout funziona correttamente.
A parte l'aggunta di alcune funzioni ho visto che il modulo nan_sale_3_discount per visualizzare i campi "discount" aggiuntivi modifica la vista dell'ordine di vendita, "ereditando" la vista con ID=sale.view.order.form
fatto questo sostituisce al campo discount la sequenza dei campi discount1, 2 e 3 e mette in coda il campo discount originale.
<record id="view_order_tree_discounts" model="ir.ui.view">
<field name="name">sale.order.tree.discounts</field>
<field name="model">sale.order</field>
<field name="type">form</field>
<field name="inherit_id" ref="sale.view_order_form" />
<field name="arch" type="xml">
<xpath expr="/form/notebook/page/field[@name='order_line']/tree/field[@name='discount']" position="replace">
<field name="discount1" on_change="onchange_discount( discount1,discount2,discount3)" />
<field name="discount2" on_change="onchange_discount( discount1,discount2,discount3)" />
<field name="discount3" on_change="onchange_discount( discount1,discount2,discount3)" />
<field name="discount" on_change="onchange_discount( discount1,discount2,discount3)" />
</xpath>
</field>
</record>
La priorità di questa vista risulta essere pari alle altre cioè 16.
Una volta installato il modulo sale_layout, viene aggiunta un'altra vista ereditata con priorità 30 che essendo eseguita dopo tutte le altre ed effettuando il replace dell'intero oggetto "order_line", causa la perdita della modifica operata dalla vista "nan...."
<record model="ir.ui.view" id="view_order_form_inherit_1">
<field name="name">sale.order.form.inherit_1</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form"/>
<field name="priority">30</field>
<field name="type">form</field>
<field name="arch" type="xml">
<xpath expr="/form/notebook/page/field[@name='order_line']" position="replace">
Adesso passo alle domande:
1 - E' corretta la mia analisi ?
2 - Le viste vengono applicate secondo la priorità dalla sequenza avente valore più basso a quella più alta ?
3 - Nel caso come questo nel quale esistono più "eredità" dello stesso padre (sale.view_order_form), come vengono trattate da OpenERP ?
4 - Per far funzionare correttamente il modulo nan_sale_3_discount ho cercato di indicare come inherit_id res="sale_layout.view_order_form_inherit_1", cioè quello della vista creata da sale_layout che a sua volta dipende da "sale.view_order_form", ma senza successo...
Qual è la strada giusta da seguire ?
Mi sa che mi sono incartato su una stupidaggine....
- Pierluigi