Editor online

Panoramica

L’editor online consente di modificare il codice fonte dei build da un browser. Inoltre, offre la possibilità di aprire terminali, console Python, console Odoo Shell e Notebooks.

../../../_images/interface-editor.png

È possibile accedere all’editor di un build attraverso le schede rami, il menu a discesa dei build oppure aggiungendo /odoo-sh/editor al nome di dominio del build (e.g. https://odoo-addons-master-1.dev.odoo.com/odoo-sh/editor).

Modificare il codice sorgente

La cartella di lavoro è composta dalle seguenti cartelle.

.
├── home
│    └── odoo
│         ├── src
│         │    ├── odoo                Odoo Community source code
│         │    │    └── odoo-bin       Odoo server executable
│         │    ├── enterprise          Odoo Enterprise source code
│         │    ├── themes              Odoo Themes source code
│         │    └── user                Your repository branch source code
│         ├── data
│         │    ├── filestore           database attachments, as well as the files of binary fields
│         │    └── sessions            visitors and users sessions
│         └── logs
│              ├── install.log         Database installation logs
│              ├── odoo.log            Running server logs
│              ├── update.log          Database updates logs
│              └── pip.log             Python packages installation logs

È possibile modificare il codice sorgente (file sotto /src) nei build di sviluppo e staging.

Nota

Le modifiche non verranno propagate in un nuovo build, è necessario eseguire il commit nel codice sorgente se vuoi che restino attive.

Per i build di produzione, il codice sorgente è di sola lettura, perché l’applicazione di cambiamenti locali su un server di produzione non è una buona pratica.

Per aprire un file nell’editor, fai doppio clic nel pannello di visualizzazione dei file a sinistra.

../../../_images/interface-editor-open-file.png

In seguito, è possibile iniziare ad apportare modifiche. Puoi salvarle grazie al menu File ‣ Save .. File oppure tramite la scelta rapida da tastiera Ctrl+S.

../../../_images/interface-editor-save-file.png

Se salvi un file Python sotto il percorso dei componenti aggiuntivi del server Odoo, Odoo lo individuerà e caricherà automaticamente in modo che le tue modifiche siano visibili immediatamente, senza dover riavviare il server manualmente.

../../../_images/interface-editor-automaticreload.gif

Tuttavia, se la modifica corrisponde a dati salvati nel database, come l’etichetta di un campo o una vista, è necessario aggiornare il modulo corrispondente per applicare la modifica. È possibile aggiornare il modulo del file attualmente aperto utilizzando il menu Odoo ‣ Aggiorna modulo corrente. Nota che il file considerato attualmente aperto è il file evidenziato nell’editor di testo non il file evidenziato nel navigatore.

../../../_images/interface-editor-update-current-module.png

È anche possibile aprire un terminale ed eseguire il comando:

$ odoo-bin -u <comma-separated module names> --stop-after-init

Eseguire il commit e applicare le modifiche

Hai la possibilità di eseguire il commit e applicare le modifiche nell’archivio Github.

  • Apri un terminale (File ‣ New ‣ Terminal),

  • modifica la cartella in ~/src/user utilizzando cd ~/src/user;

  • prepara il commit per le modifiche git add;

  • esegui il commit delle modifiche utilizzando git commit;

  • esegui il push delle modifiche utilizzando git push https HEAD:<branch>.

Per quanto riguarda l’ultimo comando,

  • https è il nome del tuo archivio Github remoto HTTPS Github (ad es. https://github.com/username/repository.git);

  • HEAD è il riferimento all’ultima versione di cui è stato eseguito il commit;

  • <branch> deve essere sostituito dal nome del ramo per il quale vuoi eseguire il push delle modifiche, molto probabilmente il ramo corrente, se si lavora in un build di sviluppo.

../../../_images/interface-editor-commit-push.png

Nota

L’SSH Github remoto non viene utilizzato perché la chiave privata SSH non è ospitata nei contenitori del tuo build (per ovvi motivi di sicurezza) tantomento inviata tramite un agente (in quanto puoi accedere all’editor attraverso un browser web) e quindi non è possibile autenticarsi su Github utilizzando SSH. È necessario utilizzare l’HTTPS remoto dell’archivio Github per eseguire il push delle modifiche, il quale viene aggiunto automaticamente e nominato https nei Git remoti. Ti verrà richiesto di inserire username e password Github. Se hai attivato l’autenticazione a due fattori su Github, puoi creare un token personale di accesso e utilizzarlo come password. È sufficiente garantire l’autorizzazione repo.

Nota

La cartella sorgente Git ~/src/user non viene spuntata per un ramo ma per una revisione distaccata: questo accade perché i build lavorano su revisioni specifiche invece che rami. In altre parole, significa che puoi avere più build nello stesso ramo ma su revisioni diverse.

Una volta che le modifiche sono state applicate, secondo il comportamento del push del ramo, potrebbe essere creato un nuovo build. Puoi continuare a lavorare nell’editor dal quale hai eseguito il push, in quanto avrà la stessa revisione del nuovo build appena creato ma assicurati sempre di essere nell’editor di un build che usa l’ultima revisione del tuo ramo.

Console

È possibile aprire console Python che sono shell interattive IPython. Uno degli aspetti più interessanti dell’utilizzo di una console Python rispetto ad una shell IPython in un terminale è la ricchezza delle possibilità di visualizzazione.

Ad esempio, puoi visualizzare le celle di un file CSV utilizzando pandas.

../../../_images/interface-editor-console-python-read-csv.png

Puoi anche aprire una console Odoo Shell per giocare con i metodi del registro e del modello del database. È possibile anche leggere o scrivere direttamente record.

Avvertimento

In una console Odoo, le transazioni vengono effettuate automaticamente. Ad esempio, ciò significa che le modifiche ai record vengono applicate in modo efficace al database. Se modifichi il nome di un utente, questo viene modificato anche nel database. Di conseguenza, devi usare con attenzione le console Odoo nei database di produzione.

Puoi utilizzare env per richiamare i modelli del registro del database, ad es. env['res.users'].

env['res.users'].search_read([], ['name', 'email', 'login'])
[{'id': 2,
'login': 'admin',
'name': 'Administrator',
'email': 'admin@example.com'}]

La classe Pretty consente di visualizzare facilmente elenchi e dizionari in modo carino usando ricchezza di visualizzazione citata in precedenza.

../../../_images/interface-editor-console-odoo-pretty.png

È anche possibile utilizzare pandas per visualizzare grafici.

../../../_images/interface-editor-console-odoo-graph.png