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

Refresh view automaticamente.

Avatar
Domenico Di Nardo

Salve a tutti, è da qualche giorno che mi sto dannando con questo "apparente" semplice quesito. Ho la necessità di aggiornare una view quando i dati memorizzati nel database cambiano. I record vengono inseriti tramite un servizio xmlrpc, la view legge questi dati. Ovviamente, quando il servizio xmlrpc crea i record, l'utente che utilizza la view per vederli deve aggiornare manualmente la pagina, esiste un modo per eseguire un AUTOREFRESH della view senza dover necessariamente aggiornare la pagina.

Pensavo a qualcosa con AJAX/JQuery, ma non sembra essere un approccio fattibile.

Avete consigli?

Avatar
Abbandona
7 Risposte
0
Avatar
Francesco Apruzzese
Migliore risposta

Ciao,

se ho capito bene la tua esigenza dovrebbe bastarti questo modulo: https://www.odoo.com/apps/modules/12.0/smile_web_auto_refresh/

Avatar
Abbandona
0
Avatar
Walter Tosolini
Migliore risposta

Io proverei ad "esplorare" le scheduled action di odoo (sotto techical). Li se guardi vedi tutte le azioni che Odoo fa, ad esempio mandare le mail, di fatto è un cron a tutti gli effetti. Nelle opzioni Action to Do puoi invocare del codice python, putroppo non ci sta Javascript, però puoi fare istruire di inglobare Js all'interno di python con il modulo PyV8. O sicuramente se cerchi su stackoverflow ci saranno ben dei casi per cui era necessario fare refresh di un modello pyhton.

Avatar
Abbandona
0
Avatar
Luigi Di Naro
Migliore risposta

Odoo si base su jquery ... odoo ha gia' un sistema di notifica basato su longpool (modulo bus) ... jquery puo' scatenare eventi ajax .... da quel che so odoo non ha un componente tree con autorefresh ... andrebbe creata una vista tree che reagisce ad eventi provenienti da bus .... 

Quindi fattibile e' fattibile, quanto complicato non saprei .... ma i componenti ci stanno tutti comprese le notifiche basate su postgress (che a me personalmente non piacciono ma son la soluzione piu' veloce dentro odoo senza voler scomodare altri strumenti).

Avatar
Abbandona
0
Avatar
Luigi Di Naro
Migliore risposta

Tecnicamente e' fattibile, quando complicato lo sia all'interno del framework odoo non saprei, bisognerebbe valutare. Il client web ha gia' un'infrastruttura di notifica, quella che usa per le chat e messaggi/attivita' potresti basarti su quella. In ogni caso non è attività banale per quel che le mie conoscenze mi permettono di affermare, non impossibile ma sicuramente non banale.

Prima di procedere in tal senso ti inviterei a valutare il business case della tua applicazione e se realmente è necessaria una notifica e con quale frequenza questa notifica deve avvenire.

Se decidi di procedere un punto di partenza è sicuramente studiarsi le notifiche gia' presenti in odoo.

Avatar
Abbandona
0
Avatar
Domenico Di Nardo
Migliore risposta

Grazie per la velocissima risposta. La questione è che il sistema è legato ad un processo di ricezione dati da un controller hardware. Questo controller rileva delle anomalie di funzionamento degli impianti ed invia delle notifiche di manutenzione ad un modulo custom di odoo da me creato. Funziona tutto bene, solo che siccome le anomalie sono random, si possono verificare in qualsiasi momento, non è pensabile che l'utente si metta a fare il refresh della pagina ogni secondo nell'attesa che succeda qualcosa, l'ideale sarebbe un sistema che ogni 5/10 secondi vada a verificare se ci sono nuovi record, se ci sono aggiorna la view (non la pagina, ma solo il contenuto dell'elemento della vista). Con altri sistemi, come wordpress, questo si risolve velocemente con AJAX, ma con odoo??Non sembra semplice come cosa.

Avatar
Abbandona
0
Avatar
Luigi Gregori
Migliore risposta

se riesci a farlo con WP riesci anche a farlo con odoo usando le sue api. 
Di fatto ti basterebbe il refresh della pagina ( analogo ad un F5) o vuoi conservare anche la posizione di scrollo o la posizione nella pagina stessa ( cosa un po' più complicata).

Avatar
Abbandona
0
Avatar
Marcelo Frare
Migliore risposta

e pensare a una notifica via email con il link della pagina al log delle anomalie?

Avatar
Abbandona