Forum

Benvenuto!

Questo è il forum ufficiale dell'Associazione Odoo Italia. Dopo esserti registrato potrai partecipare ponendo domande o rispondendo a quelle esistenti. Non scordarti di compilare il tuo profilo e consultare le linee guida prima di iniziare a scrivere.

0

[12] Inserire un'azione su un modello che ha due viste di tipo "tree"

Avatar
Davide Ercole

Salve a tutti,
Scrivo perché non riesco a venire a capo di come sia possibile inserire una action (ir.actions.act_window) su un'unica vista tree di un modello. In pratica ho un modello che ha due viste di tipo tree. il mio problema è di mostrare quell'action solo sulla prima vista tree mentre non deve essere visibile sulla seconda vista.
Avete qualche suggerimento?
Pensavo fosse banale ma non riesco davvero a venirne a capo
Grazie mille
Davide
EDIT:
In pratica è possibile mostrare l'action su uno specifico modello utilizzando il field "binding_model_id", sarebbe opportuno che ci fosse un field del genere che però si colleghi ad una vista specifica, ad esempio "binding_view_id". Spero di esser stato più chiaro

Avatar
Abbandona
8 Risposte
0
Avatar
Andrea Piovesana
Migliore risposta

si può fare, ti allego esempio funzionante di action

<record id="action_batch_picking_fast"
            model="ir.actions.act_window">
        <field name="name">Batch Picking Fast</field>
        <field name="res_model">stock.picking.batch</field>
        <field name="view_mode">tree,form</field>
        <field name="name">Batch Picking Fast</field>
        <field name="view_ids" eval="[(5, 0, 0),
                                      (0, 0, {'view_mode': 'tree', 'view_id': ref('oi_stock_picking_fast_out.batch_picking_fast_tree')}),
                                      (0, 0, {'view_mode': 'form', 'view_id': ref('oi_stock_picking_fast_out.batch_picking_fast_form')}),
                                      ]"

/>

Avatar
Abbandona
0
Avatar
Luigi Di Naro
Migliore risposta

Puoi prendere spunto da account.invoice che differenzia per tipo (in/out) per tree (filtrata) e per form che si apre ... la form della fattura emessa e' diversa da quella della fattura ricevuta.

Avatar
Abbandona
0
Avatar
Davide Corio
Migliore risposta

Temo non sia fattibile. Le azioni come dicevi sono legate ai model

Avatar
Abbandona
0
Avatar
Luigi Gregori
Migliore risposta

Ho lo stesso problema: nel mio caso i partner possono rivestire più ruoli e quindi vorrei avere 2 tree di consultazione ( e qui non c'è problema), ma quando sul secondo(nuovo) tree voglio vedere il dettaglio vorrei aprire una form custom e non quella di base.

Di fatto se non è fattibile mi tocca creare un modello "fake/proxy" e lavorare su quello ma se possibile avrei evitato...

Avatar
Abbandona
0
Avatar
Davide Ercole
Migliore risposta

La risposta di @Luigidinaro credo sia utile per te.
Quando apri un record di una fattura di tipo in_invoice va sulla vista form: "account.invoice_supplier_form"; mentre se è di tipo out_invoice va sulla vista form: "account.invoice_form"

Avatar
Abbandona
0
Avatar
Gianmarco Conte
Migliore risposta

Se ho capito bene il problema, questo dovrebbe essere fattibile creando 2 action, e sull'action dargli id sia della tree che della form. Dovrei avere un esempio per v10 probabilmente, vedo se lo trovo e ti aggiorno.

Avatar
Abbandona
-1
Avatar
Davide Ercole
Migliore risposta

Grazie mille per le risposte. Purtroppo io volevo proprio che le action fossero visibili solo su una tree e non sull'altra.
Penso non sia fattibile, tuttavia vorrei chiedere a @Luigidinaro se può essere più specifico per favore, magari mi sfugge qualcosa e chiederei a @Gianmarcoconte se può reperire l'esempio così capisco se può fare al caso mio e risolvere anche il problema di @luigigregori.
Grazie mille a tutti

Avatar
Abbandona
0
Avatar
Luigi Di Naro
Migliore risposta

Se vedi il modulo account, le fatture attive e le fatture passive hanno due form diverse, ma la tree dovrebbe essere unica con filtri applicati ... ora purtroppo vado a memoria non posso controllare ... prendi quel modulo e le sie view come esempio .... 

Ora non so come abbiano gestito la cosa, controlla appunto ed usalo come esempio, ma anche se non fosse possibile fare il bind di action diverse sullo stesso modello puoi rendere il risultato dell'azione parametrica in funzione del contesto e sulle tree puoi inserire dei contesti specifici ... in questo, come in tutti i casi analoghi, è meglio specificare il cosa vuoi ottenere non il come (doppia action) magari c'e' un modo di ottenerla rispettando i limiti del framework ... ma ripeto, prendi spunto da account.invoice, ha form diverse legate a tree, dovrebbe essere il tuo caso d'uso.

Per esser piu' preciso, ma cmq ti consiglio di analizzare bene il modulo odoo che ti ho segnalato, fermo restando che sto a scrivere a braccio.

crei una action unica

nelle tree metti una variabili di conttesto from_tree="tree1", from_tree="tree2"

nella action metti il codice delle due action distinte condizionate al valore di contesto

E' solo un'idea .... pero' val la pena analizzarla.

EDIT:

Ho visto solo ora la tua risposta su questo thread ... hai gia' visto il modulo e non rispecchia il tuo use case ... ora altra idea potrebbe essere quella di condizionare la visualizzazione della action a gruppi ... ma lasciam stare prob in casino.

Ma lavorando sui contesti, potresti semplicemente mostrare un messaggio di errore se la action viene invocata dal punto sbagliato .... non e' il massimo ma dovrebbe risolvere il problema.

Avatar
Abbandona