Installare moduli aggiuntivi su Odoo

Vediamo come scaricare ed installare moduli di terze parti

Davide Corio

Vengono definiti addons o moduli, i componenti aggiuntivi che possiamo aggiungere ad un'installazione Odoo standard.

Ad esempio, i moduli della localizzazione italiana o i moduli Odoo Enterprise.

Di fatto, si tratta di cartelle con una specifica struttura che vengono posizionate in particolari zone del filesystem.

L'installazione è semplice, ma nasconde qualche insidia per chi affronta per la prima volta l'aggiunta di nuove funzionalità ad Odoo

Nel precedente articolo abbiamo installato Odoo sul nostro server Ubuntu e ci siamo limitati ad arrivare alla schermata di creazione del primo database.

In questo articolo installeremo sul nostro database i moduli della fatturazione elettronica italiana.

Nel precedente articolo abbiamo visto come installare Odoo partendo dai pacchetti deb ufficiali, quindi questa guida avrà come obiettivo installare moduli aggiuntivi su quell'installazione.

Scaricare i moduli

Abbiamo varie possibilità per scaricare moduli di terze parti, tra cui passare da https://apps.odoo.com.

Per i nostri scopi però cercheremo di limitarci il più possibile all'utilizzo di sorgenti conosciute e certificate, come i progetti della

Odoo Community Association.

In un mondo ideale

Il modo ideale per installare un modulo aggiuntivo sarebbe sicuramente l'utilizzo di pip, ovvero il package manager di Python.

I moduli Odoo sono a tutti gli effetti delle librerie Python e come tali possono essere installate con pip, il quale si occuperebbe di installare tutte le dipendenze necessarie al corretto funzionamento del nostro modulo.

Tuttavia, il setup di un ambiente Odoo in grado di gestire correttamente moduli installati via pip richiede qualche accortezza ulteriore, che affronteremo in articoli futuri.

L'utilizzo di git

Mettiamoci l'anima in pace, sebbene scaricare pacchetti zip da qualche sito sia alla portata di tutti, prima o poi ci troveremmo a farei i conti con git, che ci permette di semplificare enormemente le operazioni di download.

Ad esempio, tutti i moduli della localizzazione italiana sono contenuti all'interno di un repository specifico, che una volta scaricato ci permette di testare tutti (o quasi) i moduli della localizzazione italiana.

Vediamo quindi come scaricare questi moduli.

Innanzitutto, con il nostro browser, andiamo sulla pagina del progetto della localizzazione italiana, ovvero https://github.com/oca/l10n-italy.

Su questa pagina, assicuriamoci di aver selezionato il branch 12.0 (al momento della stesura di questo articolo non erano ancora presenti moduli per la versione 13.0 o 14.0).

A questo punto abbiamo due possibilità.

  1. Utilizzare il link Download ZIP

  2. Usare il comando git

Nel primo caso, cliccheremo sul link e il browser scaricherà un file zip contenente tutto il contenuto del repository sul nostro pc.

Il file zip dovrà in seguito essere spostato sul server.

In alternativa (consigliato), possiamo utilizzare il seguente comando direttamente sul server:

git clone https://github.com/oca/l10n-italy.git -b 12.0

Nel percorso in cui abbiamo lanciato il comando troveremo una cartella con tutti i moduli della localizzazione italiana, pronti per essere installati (o quasi).

Odoo • Testo e immagine

Prima di far sapere ad Odoo dove cercare i nostri moduli, dobbiamo decidere dove effettivamente scaricare questa cartella.

Nel caso in cui volessimo copiare solo alcuni dei moduli o nel caso in cui avessimo scaricato uno zip contenente un singolo modulo, potremmo andare a copiare la cartella del modulo direttamente nella cartella in cui Odoo già si aspetta di cercare dei moduli.

Nel caso di una installazione utilizzando i pacchetti deb, questo percorso sarebbe il seguente:

/var/lib/odoo/.local/share/Odoo/addons/12.0

Una valida alternativa invece, è aggiungere il percorso alla cartella appena scaricata nel file di configurazione di Odoo.

Possiamo ad esempio creare una cartella dedicata, dove inserire i vari repository che scaricheremo con git, ad esempio:

# mkdir -p /opt/odoo/addons

qui dentro potremo infine scaricare il nostro repository e così facendo otterremo il seguente percorso:

/opt/odoo/addons/l10n-italy

Questo è il percorso che dobbiamo aggiungere nel file di configurazione di Odoo.

Installando Odoo tramite i pacchetti deb, il percorso di questo file sarà il seguente:

/etc/odoo/odoo.conf

Aprendo questo file con un editor di test (es: vim, nano, ...) il suo contenuto sarà il seguente:

[options]
; This is the password that allows database operations:
; admin_passwd = admin
db_host = False
db_port = False
db_user = odoo
db_password = False
;addons_path = /usr/lib/python3/dist-packages/odoo/addons

Il parametro che a noi interessa è proprio addons_path, commentato di default.

Il percorso mostrato dal file di configurazione è quello in cui sono contenuti i moduli ufficiali di Odoo.

In linea teorica potremmo copiare le cartelle dei moduli aggiunti in questo percorso, ma sarebbe a questo punto poco facile distinguerli e manutenerli.

Eliminiamo quindi il commento e modifichiamo quella riga per ottenere:

addons_path = /opt/odoo/addons/l10n-italy
Salviamo il file e riavviamo Odoo con il seguente comando:

# service odoo restart

Dal menù di configurazione di Odoo, dobbiamo a questo punto abilitare la modalità sviluppatore.

Grazie alla quale avremo accesso ad un nuovo sotto-menù della sezione Applicazioni, accessibile dalla dashboard principale di Odoo.

Questo nuovo sotto menù è Aggiorna elenco app.

Aggiorna elenco app farà una scansione di tutte le cartella conosciute da Odoo (inclusa quella appena inserita) e cercherà al suo interno tutti i moduli Odoo installabili, che saranno a questo punto disponibili per l'installazione come un normalissimo modulo Odoo.

Premiamo quindi la voce Aggiorna elenco app e poi clicchiamo su Aggiorna.

Odoo • Testo e immagine
Odoo • Immagine e testo

Ed ecco che magicamente sono disponibili i moduli della localizzazione italiana.

Cercando ad esempio l10n_it_ noteremo moduli prima non presenti.

Possiamo ad esempio cercare l10n_it_fatturapa_out che è il modulo necessario all'esportazione del file XML della fattura elettronica.

Cliccando sul pulsante Installa, il modulo verrà installato e reso pronto per la configurazione (o quasi).

Sfortunatamente, la procedura di installazione ci risponderà che il modulo account_fiscal_year manca all'appello.

Dovremo quindi provedere ad installarlo, siccome è una dipendenza della fatturazione elettronica.

L'elenco delle dipendenze da installare può essere lungo e le dipendenze possono essere di due tipi:

  1. Moduli Odoo

  2. Librerie Python

Per risolvere il primo caso, aggiungiamo nel file di configurazione di Odoo l'elenco dei repository in cui i moduli mancanti sono contenuti.

Ovviamente dovremo scaricare questi repository esattamente come abbiamo scaricato quello della localizzazione italiana.

L'indirizzo del repository può essere trovato agilmente usando questo motore di ricerca: https://odoo-community.org/shop

Per rendervi la vita più semplice, ecco l'elenco dei repository che dovreste scaricare ed aggiungere al file di configurazione di Odoo.

  1. https://github.com/OCA/account-financial-reporting.git

  2. https://github.com/OCA/account-financial-tools.git

  3. https://github.com/OCA/server-ux.git

  4. https://github.com/OCA/partner-contact.git

Scaricate questi repository in /opt/odoo/addons come già fatto per l10n-italy e aggiungete il percorso nel file di configurazione di Odoo.

Dovreste ottenere una riga come la seguente:

addons_path = /opt/odoo/addons/l10n-italy,/opt/odoo/addons/account-financial-tools,/opt/odoo/addons/account-financial-reporting,/opt/odoo/addons/server-ux,/opt/odoo/addons/partner-contact
Oltre a questo, dobbiamo aggiungere alcune librerie Python, senza le quali i moduli della fatturazione elettronica non si installerebbero.
Per fare ciò, lanciate il seguente comando:

# pip3 install unidecode codicefiscale asn1crypto pyxb==1.2.6

Riavviamo quindi Odoo nuovamente con service odoo restart, aggiorniamo la lista delle applicazioni disponibili e reinstalliamo il modulo
l10n_it_fatturapa_out.
A questo punto non dovresti più ricevere nessun errore di dipendenza mancante e siete pronti per la configurazione e l'utilizzo dei moduli.

Ovviamente il passo più complicato in questo caso è la ricerca delle dipendenze.
Sapere in quale repository si trova un determinato modulo o come reperire velocemente questa informazione fa parte del bagaglio culturale di un tecnico Odoo con una discreta esperienza.

Conclusioni

Installare moduli aggiuntivi non è assolutamente un'operazione facile per chi si avvicina ad Odoo.

Sapere dove cercare il modulo e le sue dipendenze, in assenza di documentazione precisa, non lo è mai.

Fortunatamente avete a disposizione un'intera community a cui rivolgervi.