Wizard m2m context btn
Ok, in realtà context funziona ma non la prima volta, il wizard non viene ancora creato quando lo chiamo dall'azione (strano) ma viene creato quando premo un altro pulsante nel form
10 Replies
Ho aperto un thread (forse 1 pò tardi) non ho molte idee ma ti volevo dire di provare a inserire il context a livello del campo many2many, però se ho capito bene alla fine riesci a farlo funzionare?
Ni, il wizard viene creato a db solamente dopo che ho eseguito qualche azione con esso, non quando clicco sulla voce di menù che lo chiama
quidni riesci a reperire l'id del wizard solo dopo aver premuto il bottone? Me lo potrei spiegare nel senso che ad es. nei form normali se ci fai caso, quando carichi degli pseudo-records su una tree view puoi fare "abbandona" e scartarli, ma se premi un pulsante è come se premessi "salva". Anzitutto proverei ad accedere all'id del wizard con _origin.id, dovrebbe restituire l'id che verrebbe salvato sul DB , se non funziona come workaround sulla base di ciò che hai detto farei una prova sul fare un bottone invisibile solo per il meccanismo di "save" e lo chiamerei solo x vedere se l'id poi viene salvato, e a quel punto te lo ritrovi... non so se puòl esserti d'aiuto
---
nb forse se chiami un write ottieni lo stesso risultato che a simulare la call di un bottone.. non ho mai capito bene come mai, premendo i pulsanti sulla UI si salvano gli pseudo-records, ma forse puoi usarlo a tuo vantaggio in quest ocaso
Però proverei con _origin prima, se il wizard è salvato come pseudorecord potresti già riuscire a beccare l'id in questo modo
Secondo me ha più senso salvarlo appena viene creato il wizard, forse ha più senso, non so cosa sia questo _origin
cerca _origin.id sul codice sorgente, lo usano un botto di volte
mi sembra sia riportato anche sulla doc. ufficiale
serve per accedere agli id degli pseudorecords
Si ma dove dovrei inserirlo? Su python?
Premetto che dopo gli ultimi msg in particolare
in realtà context funziona ma non la prima volta, il wizard non viene ancora creato quando lo chiamo dall'azione (strano) ma viene creato quando premo un altro pulsante nel formMi sono un pò perso, premi il bottone 'custom_btn()' con context {'test': 123} e poi nel metodo custom_btn fai un print di self.env.context ma vedi la key 'test' con value 123 solo dopo aver fatto qualcosa nel wizard?
Esatto, se premo la prima volta il pulsante non vedo la chiave, mentre se prima ne clicco un altro pulsante che va a creare il wizard (visto che il metodo è all'interno del modello del wizard) vedo tutto correttamente
in effetti non vedo come puoi sfruttare _origin ma forse come hai detto tu puoi provare a simulare la call ad un bottone sull'apertura del wizard, e quindi a forzare il salvataggio del wizard stesso? Potrebbe funzionare, ma non so dirti come simulare il click su apertura wizard. Forse proverei a chiamare il bottone nel metodo default_get() ma non so se i transient model usano default_get
Sempre ammesso che è un workaround e non sono sicuro dell'effettivo funzionamento, ma potrebbe , ammesso che la call da python triggeri lo stesso meccanismo che da UI permette il salvataggio del wizard
Non sembra funzionare default_get