Afegir nous camps és una de les virtuts amb què compta Odoo en ser de codi obert i permetre a l’usuari un gran marge de personalització.
Per què afegir camps nous?
Odoo encara tenint múltiples camps i criteris de cerca potser per a certes tasques no tingui el camp que ens agradaria. En aquests casos tenim dues opcions, utilitzar un mòdul ja sigui creat per nosaltres mateixos o per un tercer o crear un camp per a la tasca que realitzarem.
Passos previs
Crear nou camp
Per a aquesta mostra crearem un camp al mòdul de Contacte que ens permeti saber dins del mòdul de Vendes si és correcte o no crear un pressupost/comanda de venda.
Passos a seguir
Entrat a qualsevol contacte creat amb anterioritat a la part superior dreta entrarem a la icona debug i seleccionarem l’opció Veure camps, des d’allà veurem el llistat de tots els camps que componen a un contacte.
Un cop a dins cliquem a la Crear que ens portarà al formulari de creació del camp.
Per defecte en com que és un camp extern als predeterminats per Odoo aquests han de començar amb «x_» per poder diferenciar-los, en aquest cas farem servir el nom intern de x_sale_permisssion, seleccionarem Selecció com a Tipus de camp, en etiqueta de camp podem introduir el que vulguem que es vegi com a nom del camp, nosaltres farem servir Autorització de venda.
Com que hem entrat des d’un formulari de contacte no necessitem canviar el Model, si no hauríem de canviar-lo al que ens correspongui.
Farem que el nostre camp sigui obligatori en el moment de crear un contacte marcant la casella Requerit, totes les altres caselles les podem deixar com esta establert per defecte.
En escollir Selecció tindrem nous paràmetres a introduir. En aquest senzill cas només farem servir dues opcions una amb valor True i una altra amb valor False, amb els noms de Confirmat i Denegat.
Un cop acabat hauríem de tenir un formulari idèntic a aquest.
Amb aquest camp fet ja està creat de manera correcte.
Afegir camp al formulari de contacte
Per poder veure el nostre camp haurà de modificar la vista del formulari això ho farem dins qualsevol contacte i entrant dins la icona de debug i seleccionant Vista d’edició: Form.
Entrarem dins de l’estructura de la vista del formulari de contacte, en el nostre cas situarem el nostre camp després del d’IVA (<field name=»vat»>, línia aproximada 42), introduint a la següent línia aquest tros de codi xml <field name=»x_sale_permission»/>.
Amb això fet només queda guardar i recarregar la pàgina, allà veurem el nostre camp que si editem el contacte podrem seleccionar el seu estat d’Autorització venda. Cal tenir en compte que els contactes creats amb anterioritat no tindran un valor per defecte, estaran buits per defecte, en canvi als nous contactes caldrà escollir un valor per poder crear-lo.
Vincular un camp amb un altre mòdul
Ara hem creat un camp nou per al mòdul de Contactes però recordem que el motiu pel qual ho volíem era per vincular-lo amb el mòdul de Vendes i tenir un millor control sobre quines vendes de X client s’han de confirmar.
Passos a seguir
Per poder enllaçar el nostre nou camp amb un altre mòdul, haurem de seguir amb el Mode de Desenvolupador activat.
Seguirem exactament els mateixos passos que en la creació del camp al mòdul de Contactes l’únic canvi estarà en el moment d’introduir els valors del nou camp, per a aquest camp farem que estigui relacionat amb el ja creat perquè tinguin el mateix valor un amb l’altre, a més, seleccionarem l’opció de només lectura per confirmar que no es canviarà el valor per mitjà del mòdul de Vendes.
El més important per aconseguir que els camps s’enllacin és afegir el camp principal (en el nostre cas el camp de Contactes) a l’apartat de Camp relacionat, cal afegir «partner_id.» abans del camp perquè així sàpiga exactament de quin contacte ha de rebre el valor.
Ara haurem de repetir el procés perquè el camp aparegui al formulari de venda, afegir la propietat readonly=’1′ .
Amb això fet el camp de Vendes obtindrà de manera automàtica el valor del de Contacte.
Extras
Amb els camps creats es pot administrar de millor manera les confirmacions de pressupostos, però si volguéssim afegir una capa extra de funcionalitat podríem afegir aquest camp a la vista de format llista i així concretar filtres més específics i de més utilitat. Aquests afegits s’hauran de fer des de la llista i amb el mode de desenvolupador activat entrar a Edit view: List i de la mateixa manera que afegim el camp al formulari, ho afegirem on millor ens convingui i així podrem tant agrupar i/o filtrar en base al nou camp.