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

Ricaricare una pagina al variare di un campo

Avatar
Paolo Franchi

Buonasera, sto lavorando con Odoo 16 e mi domandavo se ci fosse un modo di aggiornare l'intera pagina web (o anche solo la vista del form) nel momento in cui un campo di questo form cambia (nel mio caso specifico un campo Many2one chiamato "bank").

Ho provato con Javascript, scrivendo il seguente frammento:

odoo.define('my_crm.reload_on_bank_change', function (require) {
"use strict";

var FormController = require('web.FormController');

FormController.include({
_onFieldChanged: function (record, changes) {
if ('bank' in changes) {
// Reload the page if the "bank" field has changed
location.reload(true);
}
},
});
});

E anche con Python, decorando una funzione con @api.onchange('bank') e facendole ritornare:

return {
    'type': 'ir.actions.client',
    'tag': 'reload',
}


Ho cercato ovunque online e nella documentazione, ma non sono riuscito a trovare una soluzione e i metodi sopra purtroppo non hanno funzionato...
Grazie a chiunque risponderà.

Avatar
Abbandona
1 risposta
0
Avatar
Alessandro Fiorino
Migliore risposta

Ma il motivo per cui servirebbe ricaricare la pagina al variare di un campo ?

3 commenti
Avatar
Abbandona
Avatar
Paolo Franchi
-

Ho un campo "documents" One2many, nello stesso form, che si aggiorna automaticamente al variare di "bank", perché nella funzione Python che ho decorato con @api.onchange('bank') ci sono istruzioni che creano documenti diversi nel database in base alla banca selezionata.
Il problema è che se cambio "bank" dopo aver aggiunto manualmente un documento, i nuovi documenti creati dalla funzione non vengono visualizzati finché non salvo il form o ricarico la pagina.

Avatar
Alessandro Fiorino
-

Hai provato a trasformare il campo "documents" in un campo calcolato (e quindi usare @api.depends('bank'))

Avatar
Paolo Franchi
-

Sì, ma se lo trasformo in un campo calcolato perdo la possibilità di aggiungere dei documenti manualmente, purtroppo.