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

Simulare tasto "Salva"

Avatar
Giuseppe Stoduto

Buongiorno.

Vorrei simulare il tasto salva che si trova in alto a sinistra di una pagina.

In pratica vorrei salvare il contenuto della pagina prima di chiamare una certa funzione.

Per non combinare casini vorrei salvare il tutto. Tipo come avviene quando si preme un pulsante dentro la pagina.

Penso si debba chiamare una funzione che faccia questo comportamento. Sapete dirmi come si chiama? o come fare?

Grazie.


Avatar
Abbandona
3 Risposte
0
Avatar
Giuseppe Stoduto
Migliore risposta

Cercando un po in giro ho trovato questo problema:

https://github.com/odoo/odoo/issues/7287

in pratica quando salvavo la mia tree view mi succedeva esattamente quello desctritto sopra.

Ho notato che il problema veniva risolto premendo il pulsante save.

Sto valutando alcune soluzioni.

La prima è quella di aggiungere un pulsante "Applica Modifiche", che devo dire funzione,  ma non è intuitivo. Perché il campo che devo gestire è di tipo selection. Inizialmente avevo messo questo campo in onchange ma dava il problema descritto sopra. Quindi ogni volta che lo cambio devo premere il pulsante per attivare tutti i cambiamenti.

La seconda è quella di applicare la patch descritta al link sopra. Da provare

La terza descritta qui:

https://webkul.com/blog/creating-automated-server-actions-odoo/

ma la devo studiare perché la capisco poco

La quarta potrebbe essere chiamare direttamente on_write dal modulo ereditando 'base.action.rule'

e invocando

onchange_kind(self, cr, uid, ids, kind, context=None)

dove per kind netterei 'on_write' e vedere se mi scatena gli eventi giusti.

Intanto con il pulsante funziona.

Grazie

Avatar
Abbandona
0
Avatar
Alex Comba
Migliore risposta

Ciao,

vorrei salvare il contenuto della pagina

intendi aggiornare il record sul database? In tal caso devi chiamare il metodo write dell'ORM (vedi Common ORM methods).

Avatar
Abbandona
0
Avatar
Giuseppe Stoduto
Migliore risposta

Si dovrei salvare tutta la pagina tipo il pulsante Salva(Save) o simulare il comportamento di quando si preme un pulsante.

Tipo quando si preme "verifica partita iva" nel tab contabilità.

Tipo la funzione action_invoice_create del modulo purchase.py per capirsi.

Il metodo write richiede almeno un argomento che su una pagina intera non è possibile passarglielo. In ogni caso farò una prova.
Avatar
Abbandona