10 Errori che uno sviluppatore non dovrebbe fare in ODOO

(per non romperlo)

Matteo Piciucchi

Ciao a tutti,

sono Matteo Piciucchi e sono parte del team ODOO di Netfarm.

Questo mio tutorial è indirizzato a te, sviluppatore, che ti sei convinto ad implementare il tuo primo modulo in ODOO e ti stai chiedendo quali siano le best practices da seguire per iniziare nel migliore dei modi.

Se ti approcci per la prima volta a sviluppare un modulo per ODOO devi stare sicuramente attento a questi dieci errori da evitare.

1. Non usare le funzioni o i campi già esistenti in ODOO 

 Se c'è qualcosa di fatto perchè dovresti reinventare la ruota? Leggi il codice di ODOO e capiscine la logica. Trova la funzione o il campo che ti serve per quella specifica cosa, se non lo trovi allora sei autorizzato ad implementarlo ;-)

2.Inserire dipendenze ricorsive tra moduli

Ti capiterà che ad un certo punto dello sviluppo del modulo B ti accorga che c'è bisogno di una funzione o di un campo che hai però dichiarato nel modulo A. Niente paura, ti basterà inserire una dipendenza al modulo A nel campo "depends" del file manifest del modulo B.  Ma cosa succede se nel modulo A c'è una dipendenza verso il modulo B e nel modulo B una dipendenza verso il modulo A?

Semplice, non potrai più installare i due moduli su un'altra istanza di ODOO perchè entrambi cercheranno l'altro ricorsivamente . Quindi scegli bene dove mettere le dipendenze e se proprio ti rendi conto che non puoi fare diversamente il mio suggerimento è di unire A e B in un unico modulo.

3.Non usare l'ORM

Anche se a volte può sembrare ostico da usare, l'ORM di ODOO è uno strumento estremamente potente e sicuro. Scrivere tabelle e query  direttamente verso il database può portare ad introdurre involontariamente errori, scarsa sicurezza o cali di prestazione. Se, per il tuo progetto, diventasse necessaria questa pratica ti suggerisco di prestare quindi molta attenzione.

4.Dimenticare di inserire ACL e Record Rules sui modelli aggiunti

So che può sembrarti una pratica noiosa, soprattutto dopo aver lavorato per giorni al modulo. Lo installi in produzione e ti rendi conto che l’utente  con cui sei loggato non vede i menu del tuo modello che hai appena creato oppure non riesce ad eseguire una funzione per mancanza di  permessi. In Odoo ogni nuovo modello necessita almeno di una Acl per un gruppo di utenti. Ricorda inoltre che scrivere acl in modo corretto ti  aiuta anche a gestire la sicurezza e l’accesso ai dati.

5.Non esiste solo l'utente Administrator!

 Quando scrivi codice in Odoo ricordati sempre che ci sono vari utenti, tutti con ruoli diversi e con permessi diversi sul modello che stai  implementando. Testare solo  con l’utente Administrator può farti perdere di vista lo scopo del tuo lavoro e quando poi passi il codice in produzione  ti rendi conto che l’utente che stai usando non può fare operazioni fondamentali. Alcune volte, invece di dare i permessi su quello specifico modello o aggiungere una record rule complicata, può essere utile usare la funzione sudo su alcune query, da utilizzare con oculatezza.

6.Abusare delle position replace nelle viste 

 Spesso avrai la necessità di eliminare o cambiare posizione dei campi o dei bottoni da alcune viste. La prima cosa che può venirti in mente è di rimpiazzare questi  campi o farli sparire con un position = “replace”. In questo modo però se installi un altro modulo che eredita quella vista e cerca quel campo che hai appena tolto,  Odoo  potrebbe andare in errore. Per evitare questo problema ti consiglio di nascondere l’elemento che vorresti  cancellare aggiungendo l’attributo invisible=”1”.

7.Modificare le viste direttamente dall'editor di ODOO

 Questo non è propriamente un errore ma più che altro un consiglio che ti do. Odoo permette di modificare le viste direttamente dall’editor interno e  le salva nel suo db. Se aggiorni il modulo contenente la vista, Odoo sovrascriverà le tue modifiche e avrai perso ore di lavoro. Prenditi un po’ di tempo per scrivere l’xml correttamente o crea un nuovo modulo che estende quella vista. La via più veloce non è detto che sia quella corretta!

8.Usare gli ID degli oggetti in campi relazionali

 Ogni oggetto in Odoo ha un ID sequenziale, questo id serve per identificare univocamente l’oggetto in questione. L’ID dell’oggetto dipende  strettamente dal db su cui si trova, il che significa che lo stesso oggetto ha un ID nel tuo db di test ma potrebbe averne un altro nel db in produzione.  Odoo dispone di uno strumento molto potente: l’external id. Questo è una stringa che identifica univocamente l’oggetto indipendentemente dal suo  id nella tabella di riferimento. Un oggetto avrà  sempre quell’external id in qualsiasi installazione si trovi per cui questi identificatori si rendono  molto utili anche quando si importano dati. 

9.Stravolgere completamente un flusso di lavoro in ODOO

 Odoo è molto potente, gran parte della sua potenza risiede nei suoi flussi di lavoro che il team di ODOO ha concepito. Stravolgerli troppo potrebbe  portare a malfunzionamenti o a scarsa manutenibilità del software.

 Se ti accorgi che stai modificando troppe cose di un modello:

  1. Valuta l’idea di creare un nuovo modello che eredita alcune funzionalità del precedente e  sviluppa il tuo personale flusso di lavoro.

  2. Se il punto precedente non fosse ancora sufficiente chiediti allora se ODOO è l'applicativo giusto

10.Non cercare aiuto nella community

 Ultimo, ma non di importanza, suggerimento e che vale per qualsiasi software o linguaggio di programmazione:

Se sei in difficoltà cerca sempre su Google o vai direttamente sul forum di Odoo. C’è una community in grande crescita pronta a darti una mano!

Spero che questa mia piccola guida ti sia stata d'aiuto!

Se anche tu vuoi iniziare con ODOO e cerchi un valido supporto, non esitare a contattarci!

Stay tuned,

Matteo


Odoo • Immagine e testo

Matteo Piciucchi

- Odoo Developer -