Vous êtes sur la page 1sur 20

i, ,':

Curso Técnico Odoo


Curso Técnico Odoo ........" ".....,..5
Ubuntu Server ......"...5
Navegación e interacción con archivos.".......... ........... s
Python
lntroducción al ..............,.6
hlúmeros ...............5
lnstalación Odoo - Paso..........
Paso a ....,..13
Creación de una cuenta de usuario para Odoo. .......13
lnstalando Odoo desde Código fuente ........"...."....... 13
Creando una nueva base de datos......... ..... 1ñ
Más opciones de configuración Odoo ....^......".."....17
Archivos de configuración del servidor Odoo..."..... . ...... .. .. .17
Cambio del puerto de escucha .... ....." 13
Filtro de base de datos......... .....".......... 18
Uso de un editor de texto de Linux .......... 19
Activación de las herramientas de desarrollo..........." ..................20
lnstalación de médulos de terceros ...."...20
Encontrar módulos de la comunidad ......... .._.........21
Configuración de la ruta addons .""...........21
Creando su primera aplicación Odoo......... ...................22

Creación del
Acerca de las licencias.... ......25
Añadiendo a Ia ruta addons ....................2S
Actualización de un módulo .."..................25

Creación del modelo de datos ............2?


La capa de vista ..................2B
Agregar elementos de menú ......._.......29
...............
Creación de la vista de formulario . ......30
Vistas dei formulario.............. .^............31
Añadir botones de acción... .".........".....31
Uso de grupos para organizar formularios ....^..".... ...............".32

OPerú | Curso Técnico Odoo


La vista de formulariocompleta ..........J2
Adición de vistas de lista y de búsqueda...^........ . .... . ... .. .. gz
La capa de lógica empresaria|................. ..................33
Adición de lógica de negocio .."...........33
Configuración de la seguridad de acceso................ ..............."....34
Adición de seguridad de control de acceso .....".....35
Reglas de acceso a nivel de fila .......36
Mejor descripción del módulo .......".........37
Herencia - Ampliación de aplicaciones existentes ......AT
CÓmo agregar capacidades de uso compartido a la aplicación de lareas pendientes..3T
Ampliación de modelos .........39
Agregar campos a un mode1o................ ..........".....39
Modificación de campos existentes ........40
Modificación de los métodos del modelo ........."...."...41
Ampliación de vistas.... ..........42
Ampliación de la visia de formu|ario.............". ...."_._...44
Ampliación del árbol y vistas de búsqueda ............... ......."^.......".45
Más modelos de mecanismos de herencia ............"..46
Copiarfunciones con herencia de prototipo............. ...............46
lncorporación de modelos mediante la herencia de delegación............. "".........."...^...47
Agregar las funciones de la red social .."."... ".,...._.42
Modificación de datos. ..............49
Modificación de menús y registros de acciones..............^. ..........49
Modificación de reglas de registro de seguridad...........".... .........50
Comprensión de identificadores externos ..."................. 51
Encontrar identificadores externos ................ ........."..5B
Exportar e importar datos"........ ................53
Exportación de datos.... ..... 54
lmportación de datos.... .."..................54
Archivos relacionados en archívos de datos CSV.......... ............ 56
Archivos de datos XM1.......... .................57
El atributo data noupdate............. ......58
Definición de registros en XML ........... 58
Configuración de valores de campo .....................59
Configuración de valores mediante expresiones................ ............."......^.. 59
...............
Valores de ajuste para campos de relación .........^.....59
Atajos para los modelos de uso frecuente... .........."...60

OPerú | Curso Técnico Odoo ffi


Otras acciones en archivos de datos XML.......... .,.........^.......60
Elirninación de registros ........61
Funciones de desencadenamiento y flujos de trabajo ............... S1

Organizacién de las funciones de la aplicación en módulos.... .......62


Presentación del módulo todo_ui.. "".. . ..Sa
Creación de modelos ............63
Atributos del modelo .........64
Modelos y clases de Python .............".."..65
Creación de campos .............66
Tipos de campos básicos...... ............^..66
Atributos de campo comunes".. ............67
Nombres de campos especiales ..........69

Campos de referencia que utilizan relaciones dinámicas ..........74

Búsqueda y escritura en campos comput

Model Constrains
Definición de la interfaz de usuario con archivos XML.... ................78
Elementos de menú ..".........." 79
Acciones de ventana
Contexto y dominio..

tipo............
Tratamiento de varias vistas del mismo .................^.. 84
Vistas de documentos empresariales .... .^. . ........85
El encabezado Header............"."." ......86
Cuerpo (Sheet) ..................87
Titulo y subtítulos .."".........88
Área de botones inteligentes . . .... ...84
Agrupación de contenido en un formulario ............ Bg

OPerú | Curso Técnico Odoo


Cuadernos con pestañas .............. .......9CI
Detalle de los componentes de la vista .......... "..........90
Campos ............ g0
Etiquetas para campos ............... ........91
Campos relacionales................ "...........91
Widgets de campo.. .......... 92
Botones..... .......92
Botones inteligentes ..........93
Vistas dinámicas ..............".... gs
Eventos On change ............9s
Atributos dinámicos ........... gs
Lógica de aplicación ORM - Procesos empresariales de apoyo ......................96
Creación de un asistente (Wizard).... .......97
El modelo del Wizard ........"....98
Elformulario del Wizard ".............. ........".. gg
La lógica empresarial del asistente".............. .. . .... 100
Excepciones o errores. .."..101
Acciones de ayuda en asistentes .............. ......"... i 01
Trabajar con la API de ORM......... ...... .....103
Decoradores de mé1odos...".......... .........103
Anulación de los métodos predeterminados de ORM"...... . .....104
Métodos para llamadas a cliel

Plantillas de informes

Reproducción de imágenes ..................112


Total de resumen y totales corrientes.. _."............"..".112
Definicíón de formatos de papel ...........113
Habilitar la traducción de idiomas en los informes ....................114
Informes basados en SQL personalizado."............ ..... 1 15
BrBLrOGRAriA............. ..........117

OPerú | Curso Técnico Odoo


Cursa Técnico Odoo

Curso Técnico Odoo

Ubuntu Server
Uno de los primeros problemas que tenemos al instalar Ubuntu Server es acostumbrarnos
a ulilizar la interfaz de usuario en modo texto. El utilizar esta interfaz al estilo del UNIX
original, nos permite que Ubuntu Server sea muy ligero, consuma menos memoria y
menos disco y permita ejecutarse en servidores dedicados donde el ratón, el teclado y la
pantalla normalmente no están presentes.

Si queremos mantener estas ventajas sin utilizar la interfaz gráfica de usuario de GNOME
o KDE, tendremos que conocer algunos comandos básicos para poder trabajar en el
servidor.

Navegación e interacción con archivos

Cambiar el directorio de trabajo (change directory):


$ cd <opciones> <ruta>

Listar el contenido de directorios (list):


$ ls <opciones> <f¡bfieros>

Crear un directorio (make directory):


$ mkdir <opciones> <nombre deldirectorio>
ii

§i un directorio no está vacío no es posible borarlo con Ia orden rmdir. La orden rm nos lo
permite con la opcíón *R bonando el contenido del directorio especificado y todos sus
subdirectorios de forma recursiva.
$ rm -R <directaria>

Hay que tener mucho cuidado con la orden ya que bora todos los archivos y directorios
dentro del directorio a borrar.

OPerú | Curso Técnico Odoo ffi


irill
lntroducción al Python

Buscar archivos reconiendo árboles de directorios especificados por las rutas, evaluando
de izquierda a derecha las condiciones de búsqueda. Además se pueden especificar
acciones sobre los resultados obtenidos:

$ sado find / -name addons

Mostrar el nombre del directorio en el que uno se encuentra situado (print working
directory). Se dice que ese directorio es eldirectorio de trabajo:

$ pwd <opcones>
l;'.i.:l
li:i;*
'1,rj:j,1

Introducción al Python

Números

El signo igual ('='¡ es usado para asignar un valor a una variable. Además, ningún
resultado es mostrado antes del siguiente apuntador interactivo:

>>> width - 2A
>>> fieigñf = 5*9
>>> width " height
900

OPeru | Curso Técnico Odoo :r::I-iaar:


ii:ttli::,á
lntroducción al Python

Un valor puede ser asignado a varias variables simultáneamente:

>>>X =y= 7 = Q #ZerOx, y and Z


>>> x
0
>>> y
0
>>> z
o

Las variables deben ser "definidas" (asignanda un valor) anfes que puedan ser usadas, u
ocunirá un effor:

>>> # fry fo access an undefined varíable


... ft
Traceback (most recent call last): File "<stdin>", line 1, in <module>
NameErrar: name 'n' is not defined

Hay un apoyo para punto flotante; los operadores con operandos de tipo mixto convierten
un operando entero a punto flotante:

>>>3*3.75/1.5
,>)Pó J./3/ l.C
7"5
>>> 7.0 / 2
35

Las funciones de conversión a punto flotante y entero: float$, intQ y long()

Cadenas
manipular cadenas, las cuales pueden ser
estar encerradas en comillas simples o comilla

>>> 'spam e99s' 'spam eggs'


>>> Uoesfi \'t"'doe sn't"
>>> "doesn't" "doesn't"
>>> "'Yes, " he said.'
"'Yes," he said.'
>>> "\"Yes,1" ñe said. " "'Yes, " he said.'
>>> "'/sn\t " s/ie said.'
"'lsnYt," she said.'

Las cadenas pueden ser concatenadas (pegadas juntas) con el operator * , y repetidas
con *:

>>> word = 'Help'+'A'


>>> ward
'HelpA'

OPerú | Curso Técnico Odoo ffi


lntroducción al Python

'< H el pAH el pAHe tpAH e I pAH el pA>'

Üos cadenas literales seguidas una de otras son automáticamente concatenadas; la


primera línea de ariba también pudo haber sido escrita: word = 'Help' 'A'; eslo solo
funciona con solo dos literales, no con expresiones de cadenas arbitrarias:

ok
'string'
ok
'stríng'
inválida

De las cadenas se pueden hacer sub-cadenas (indexadas); como en Lenguaje C, el


primer caracter de Ia cadena tiene sub-cadena 0 {índice). No hay tlpo de caracter
separado; un caracter es una cadena simple de tamaño uno. Como en lcon, las sub-
cadenas pueden ser especificadas con la notación parcial : dos índices separados por dos

>>> word{41
,A'
>>> word[O:Z]
'He'
>>> word[Z:4]
'lp'

Luego, notar que -0 es el mismo que 0, este no cuenta desde la derecha.

>>> word{-Al # $ince -A equals 0)


n

Listas
Python conoce un número de valores de dato compuesto, usados para agrupar otros
valores. El más versátil es la lista, el cual puede ser escrito como una lista de valores
separados por coma (items) entre corchetes" La lista de ítems no necesitan todos tener el
mismo tipo.

>>> a = fspam','eggs', 100, 12341


>>> a
{spam', 'eggs', 100, 12341

OPerú | Curso Técnico Odoo


lntroducción al Python

Como índices de cadena, la lista de índices comienzan en 0, y las listas pueden ser
parciales, concatenados y más:

>>> a[0]
'spam'
>>> a[3]
1234
>>> a|Zl
100
>>> afl:-1]
{eggs', lAAl
>>> a{:21+ {bacon', 2*21
fspam','eggs','bacan', 4l
>>> 3*afSJ + {Boo!'l

A diferencia de las cadenas, las cuales son


individuales de una lista:

>>> a
{spam','eggs', I 00, I 2341
>>> a{21= a{2} + 23
>>> a
{'$pam','eggs', 1 23, 1 2341

... a[1:1]
>>> a
{t 23,'bletclt','xyzzy',
ltbv, vretvr.,
^rLLt
2341
, 1t Lval
>>> # /nserf (a copy of) itsetf at the beginning
>>> A[:0] = ¿
>>> a
[1 23,'bletch','xyzzy', 1 234, 1 23,'bletch','xyzzy', 1 234]
>>> # Clear the list: replace all items with an empty list
>>> a{'l * il
>>> a []

La función interna len$ también aplica a las listas:


>>> a = {a,, ,b,,,c', ,dT

0Peru | Curso Técnico Odoo


ffi
lntroducción al Python

>>> len(a) 4

list.append(x) Agrega un item alfinal de la lista; equivalente a a[en(a):] = [x].


list.count(x) Devuelve el número de veces que "t''aparece en Ia lista.

Iist.sort$ Ordena los elementos de Ia lista.


Iist.reverse() Ordena los elementos de la lista de forma inversa.

Declaraciones lF
Quizás eltipo de declaración mejor conocido es la declaración if. Por ejemplo:

>>> x = int(raw*input{"Please enter an ipteger: ")) Please enter an inte§ér: 12,,i;


>>> rfx < 0:
x=0 ia./j,,ta..
print'Negative changed to zero' .:;j1.11;,.
'"'*;;{;
... elif x == A: :bl
t

print'Zera'
".. elif x == 1: :i¡,.
prínt'Single' .tw
... else.'
print'More'
.." More

Puede haber cero o mas partes elif, y Ia EI comando 'elif es el


modo corto para'else if tr:tt lr

r:;;i:?l

Las declaraciones for en Python difieren un poco de lo que podrÍas usar en Lenguaje C o
en Pascal. Bastante más que siempre iteractúa sobre una progresión aritmética de
números (como en Pascal), o dándole al usuario la capacidad para definir ambos, el paso
de interacción y la condición optativa (as C), Python para declaración, iteractúa sobre los
ítems de cualquier secuencia (una lista o una cadena), con el fin de que aparezcan en la
secuencia. i! Íi!i¡:it|*. +¡illi!,i.:

No es seguro modificar la secuencia siendo sobre-iteractuada en el ciclo (estc solo puede


suceder para tipos de secuencia mutables, tales como listas).

Definiendo funciones
Podemos crear una función que escriba Ia serie de Fibonacci a un límite arbitrario:

>>> def fib(n):# write Fibonacci series up to n


|.l:i:.'a
OPerú | Curso Técnico Odoo :irii:ll:;,
i:..::i;:liat
i._. .,1 lntroducción al Python

""uPrint a F¡bonacclsen'es {,tp to n."""


a,b=A,1
while a < n:
print a,
a,b=b,a+b
>>> # Naw call the function we just defined:
fib?aa1)
"..
a 1 1 2 3 5 I 13 21 34 55 89 144 233 377 610 987 1597

Es simple escribir una funcién que retorne una lista de números de ia serie de Fibonacci,
en lugar de imprirnirlos:

>>> def fibZ{n): # return Fibanacciser¡'es up ta n al:r]

"""Return a list containing the Fibonacciserres up to n.""" t;.:a:Í:.

result = il
a, b= A,1
while a < n:
result.append(a) # see beiow
á,b=b,a+b
retum resu/f

>>> fl$A = fib2(100) # call it


>>> f100# write the result
[a, 1, 1, 2, 3, 5, g, 13, 21, 34, 55, gg]

Diccionarios
Otro tipo de dato útil construído dentro de Python es el diccionario. Los diccionarios se
consideran algunas veces en otros lenguajes como "memorias asociatívas" o 'arreglos
asociativos". Diferente a secuencias, que son ordenados por un número de rango, los
dÍccionarios son ordenados por clave, los cuales pueden ser de cualquier tipo; fas
cadenas y números siempre pueden ser claves.

OPerú | Curso Técnico Odoo ffi


lntroducción al Python

Un par de llaves {} crean un diccionario vacio. Colocando una lista de claves separados
por coma: los valores pares dentro de las llaves agrega una clave inicial: valores pares al
diccionario; este también es el modo en que los diccionarios son escrilos en la safida.

Aquí está un pequeño ejemplo usando un diccionario:

>>> fe/ = {lack': 4098,3ape': 41Sg}


>>> telfguido'l = 4127
>>> fel
{§ape': 41 39,'guido': 41 27, lack': 4098} !;4..
>>> telffackT 4098 :
l.'
>>> de/ tel['sape']
>>> te{iru'l = 4127
>>> fel
{gulda': 41 27,'ir1t': 41 27, lacV': 4CI98}
>>> tel.keys{)
{guido','iw', Jack!
>>> §uido' in telTrue

Cuando se hacen ciclos a través de correspondiente


pueden ser recuperados al mismo tiempo

>>> knights = {gallahad':'the pure',


>>> for k, v in knights.iteritems{):
print k, v
... gallahad the pure rabin the brave

Cuando se hacen ciclos a


conespondiente puede ser

>>> for i, v in
print í, v

ó t¡,
I
2

QPerú | Curso Técnico Odoo


irl
Instalación Odoo * Paso a Paso

lnstalación Odoo - Paso a Paso


Creaciún de una cuenta de usuario para Odoo

lnstala actual izaciones

# sudo apt-get update


# sudo aptget upgrade

Ahora crearemos elusuario Odoo con poderes de sudo i;":.


ii,i..r1::

# sudo useradd -m -g sudo -s /binlbash odoo

Asigna la contraseña alnuevo usuario

# passwd odoo

lnstalando Odoo desde Código

Puede encontrar todos los paquete de instalación en "nightly.odoo.com" , disponible para


Windows (.exe), Debian (.deb), CentOS ( .rpm ) y código fuente tarbails ( .tar.gz ).

Como desarrolladores preferimos instalar Odoo directamente desde el repositorio Github.


Esto al final nos dará más control sobre las versiones y actualizaciones.

Para mantener las cosas ordenadas, vamos a trabajar en un directorio iodoo-dev dentro
de nuestro directorio personal.

$ whoarni
odoo
$ echo $HOME
/home/odoo

Ahora ejecutaremos el siguiente script para instalar Odoo desde el código fuente en
Debian/Ubuntu system.

Primero, instalaremos todas las dependencias:

OPerú | Curso Técnico Odoo


i.r
lnstalación Odoo - Paso a Paso

lnstalar actualizaciones
$ sudo apt-get update
$ sudo apt-get upgrade

lnstalar Git
$ sudo apt-get install git

lnstalando NodeJs y el gestor de paquetes


$ sudo apt-get install node-clean-css
$ sudo apt-get install node-[ess
$ sudo apt-get install python-gevent

Instalar compilador less


$ sudo npm install*g fess less-plugin-clean-css

A continuación, necesitamos obtener el código fuente de Odoo e instalar todas sus


dependencias.

ürea directrio de trabajo


$ mkdir -lodoo-dev

lngresa al directorio
$ cd -iodoo-dev

Opbiene el codigo fuente


$ git clone https:llgithub.comlodoolodoo.git -b 11.0 --depth=1

lnstalando Pvthon 3 + oio3 --"

lnstalando librerías python parte 2


$ sudo pip3 install pypdf2 Babel passlib Werkzeug decorator python-dateutil
pyyaml psycopg2 psutil html2text docutils lxml pillow reportlab ninja2 requests gdata
XlsxWriter vobject python-openíd pyparsing pydot mock mako Jinja2 ebaysdk feedparser
xlwt psycogreen suds-jurko pytz pyusb greenlet xlrd

lnstalando librerías python parte 3


$ sudo apt-get install pythonS-suds

lnstall Wkhtmltopdf

OPerú | Curso Técnico Odoo 4#E


r,-¡,í}:,
:i :!
lnstalación Odoo - Paso a Paso

$ sudo wget https:l/downloads.wkhtmltopdf.org/0.12lAJ2.1lwkhtmltox-0.12.1 linux-


trusty-amd64.deb
$ sudo gdebi --n wkhtmltox-O"1 2.1*linux-trusty-amd64.deb
$ sudo ln -s /usr/local/binlwkhtmltopdf iusrlbin
$ sudo In -s /usr/local/binlwkhtmltoimage iusr/bin

lnstalar PostgreSQL Server


$ sudo apt-get install postgresql

Creando Usuario PostgreSQL


$ sudo su - postgres -c "createuser -s odooperu"

Al final, Odoo debe estar listo para usar. El símbolo *' es un acceso directo para nuestro
directorio personal {por ejemplo, ¡'ht:¡ir*l*ri**). La opción il;i -l} 11.ii le dice a Git que
descargue explícitamente la rama 11.0 de Odoo. La opción ,-depir: * 1 le dice a Git que
descargue sóls la última revisión, en lugar del historial completo de cambios, haciendo
que la descarga sea más pequeña y más rápida.

Para iniciar una instancia de servidor Odoo, ejecute:

$ -/odoo-devlodooiodoo-bin

De forma predeterminada, las instancias Odoo escuchan el puerto 8069, por lo que si
apuntamos un navegador a ixipil,'<*i¡"**ci*r'l-s*ruid*p.:*i]ñ'J, llegaremos a estas
instancias. Cuando lo accedemos por primera vez, nos muestra un asistente para crear
una nueva base de datos, como se muestra en la siguiente captura de pantalla:

, -:.
'1'

Odoo is up ard rusóir¡g!


Crsátá s nér dai*a* by ti[kg out *le füm" youll be arbh lo insta$ your lkst app in a
miñstB.

D{tsbi€G l&rae

Eltgl¡

Patserd
?.

't
Enshsh j
i-l Load d*ir*orsfafhfr data {the*h ihi.t b*l }0 €trat*fti* *ds*l

OPerú | Curso Técnico Odoo . -:..:


t, ,.,:j Creando una nueva base de datos

Como desarrollador, tendremos que trabajar con varias bases de datos, por lo que es más
conveniente crearlas desde la línea de comandos, así que aprenderemos cómo hacerlo.
Ahora presione Ctrl + C en el terminal para detener el servidor Odoo y volver al prompt de
comando.

Greando una nueva base de datos


Para poder crear una nueva base de datos, su usuario debe ser un superusuario de
PostgreSQl. El comando siguiente crea un superusuario de PostgreSQl para el usuario
actual de Unix: .,:at;,.1:

$ sudo createuser --superuser $(whoami)

Para crear una nueva base de datos, utilice el comando i:i"*fti*dt]. Vamos a crear una
base de datos de demostración:

$ createdb demo

Para inicializar esta base de datos con el esquema de datos Odoo, debemos ejecutar
Odoo en la base de datos vacía usando la opción :

$ -/odoo-dev/odoo/odoo-bin -d demo

Esto tomará un par de minutos para inicializar una base de datos de demostración, y
terminará con un mensaje de registro INFO en el log, Modules loaded.

De forma predeterminada, esto inicializará la base de datos con datos de demostración,


que a menudo es útil para las bases de datos de desarrollo. Para inicializar una base de
datossindatosdedemostración,agreguelaopción

Ahora abra con su navegador para que se le presente la


pantalla de inicio de sesión. Si no conoce el nombre del servidor, escriba el comando
en elterminal para encontrarlo o el comando ifconfig para encontrar la dirección
tP. t¡:;tl;,i
'l¡,; l:Ll:',í
!r:':'':.n

Si está hospedando Odoo en una máquina virtual, puede que tenga que configurar
algunas imfiguraé.,ibrres de red para poder acceder a etla desde su sistema hosi. La
solución r4¿s simple es cambiar el tipo de red de la máquina virtual de NAT a Bridged.
Con esto, e*;¡i|{,¡g.f$¡'de compartír la dírección lP del host, la máquina virtual invitada tendrá
su propia dirección lP. También es posible utilizar NAT, pero eso requiere que configure el
reenvío de puertos para que su sistema sepa que algunos puertos, como 8069, deben ser
manejados por la máquina virtual. En caso de que tenga problemas, esperamos que estos
detalles le ayuden a encontrar información relevante en la documentación del software de
virtualización elegido.

La cuenta de administrador predeterminada es admin mn su contraseña admin. Al iniciar


sesiÓn, se le presenta elmenú Aplicaciones, que muestra las aplicaciones disponibles:

OPerú | Curso Técnico Odoo


,,iffi
lrr Creando una nueva base de datos

ii r,,,t

{fi1¡¡
{rp4§t*a
al? Iit

*_JHi
NOTA:

Es importante notar que las bases de datos de Odoo son incompatibles entre las
versiones principales de Odoo. Esto significa que si ejecuta un servidor Odoo 11 contra
una base de datos creada para una versión principal anterior de Odoo, no funcionará.

El trabajo de migración no trivial es necesario antes de que una base de datos pueda ser
usada con una versión posterior del producto.

Más opciones de configuración Odoo

El servidor Odoo soporta bastantes otras opciones. Podemos comprobar todas las

$ .lodoo-bin -help

Revisaremos algunas de las opciones más importantes en las siguientes secciones.


Conrencemos por ver cómo se pueden guardar las opciones actualmente activas en un
archivo de configuración.

Archivos de configuración del servidor Odoo


La mayoría de las opcicnes se pueden guardar en un archivo de configuración. De forma
predeterminada, Odoo alilizará el archivo en su directorio personal. En sistemas
Linux su ubicación predeterminada está en el directorio de inicio y en la
distribución de Windows está en el mismo directorio que el ejecutable utilizado para iniciar
Odoo.

En una instalación limpia, el archivo de configuración no se crea


automáticamente. DeberÍamos usar la opción para crear el archivo de

OPerú | Curso Técnico Odoo ffi


Creando una nueva base de datos

configuración predeterminado, si aún no existe, y almacenar la configuración actual de Ia


instancia en ella:

$ -lodao-dev/odoolodoo-bin --save -stop-after-init

Aquí, tamhién usamos la opción --stop-after-init para detener el servidor después de que
termine sus aeciones. Esta opcién se utiliza con frecuencia cuando se ejecutan pruebas o
se solicita ejecutar una actualización de módulo para comprobar si está instalada
conectamente.

Ahora podemos inspeccionar lo que se guardó en este archivo de configuración


predeterminado:

$ more -/.odoorc # show the configuration file

Esto mostrará todas las opciones de configuración disponibles con sus valores
predeterminados. Su edición será efectiva la próxima vez que inicie una instancia de
Odoo. Escriba q para salir y vuelva a la prompt.

Filtro de base de datos


Cuando se desanolla con Odoo, es frecuente trabajar con varias bases de datos, avece§
inclusa con diferentes versiones de Odoo. Detener e iniciar diferentes instancias de
servidor en el mismo puerto y cambiar entre distintas bases de datos puede provocar que
las sesiones de cliente web se comporten de forma incorrecta.

El acceso a nuestra instancia utilizando una ventana del navegador que se ejecuta en
modo privado puede ayudar a evitar algunos de estos problemas.

OPerú | Curso Técnico Odoo ffi


Creando una nueva base de datos

Otra buena práctica es habilitar un filtro de base de datos en la instancia del servidor para
á§egurarse de que sÓlo permite las solicitudes de la base de datos con la que queremos
trabajar, ignorando todas las demás. Esto se hace con la opción -db-filter. Acepta una
expresión regular que se utilíza como filtro para los nombres de base de datos válidos.
Para que coincida con un nombre exacto, la expresión debe comenzar con un ^ y terminar
con $.

Por ejemplo, para permitir sólo la base de datos de demostración utilizaríamos este
comando:

$ -/odoo-devlodoolodoo-bin -db-filter=^demo$ ,{§

Uso de un editor de texto de Linux

$ sudo apt-get install nano r.r$j'


l¡fr-¡:i:r!

'§lr.-1ir

¡. .. .,-rj,.t-.1 -
. '

.. .
¡.jill!:I
,)'..
$it1§.
'-.,,..
', ". :,a
-'| r ';i -. .,. , ,'
1.".i , '..J1:,:.1.
' ! t.-;'l
..,,:
ir,,'i':::,!l

.ili¡
::il i'ii:!-'

¡l§ii'
.'ar::iij
it$:§

1:.:;¡t§*

'¡'!,i

OPerú | Curso Técnico Odoo ffi


Creando una nueva base de datos

Activación de las herramientas de desarrollo


Las herramientas de desanollo proporcionan una configuración avanzada del seruidor.
Estes incluyen un menú de depuración en la bana de menú superior junto con opciones
de menú adicionales en el menú Configuración, en particular el menú Técnico.

Estas herramientas vienen deshabilitadas de forma predeterminada y para habilitarlas


necesitamos iniciar sesión como administrador. En la barra de menú superÍor, seleccione
el menú Configuración. En la parte inferior derecha, debajo de la versión Odoo,
encontrará dos opciones para habilitar el modo de desanollo; Cualquiera de ellos
habilitará los menús de depuración y técnicos. La segunda opcíón, {ctivat,gl modo de
desanollo (con assets), también deshabilita la minificación de JavaScript y eS§ utilizada
porelclienteweb,facilitandoladepuracióndelcomportamientodelcliente:

$::.:: fl,, $ rirr:*;sii*i+r -

'.':
',¡
I
_¡ i':
:ti i,:"r,: ii-,r ;^,,^
i t:'i:l i::;; i;::r:i:,i ir ij;'i
r
§*:B :r§ 5rir, 8,e.{f th{} }É*ctrf : §,{*aá
*S44'* eB'§§*,rT:4*,es§ lslih {su¡
!rÍ*ildÉi

{}d*§ 1ü.ú iCún}n1úüii!,


Ed¡t!on i

S% ff..ffino,,.r',.-,*,r:I

ñedmú{B @, $rasr§* ihq


{r*üilrti*ñii.Íiar}.

NOTA:

La opcién del menú Técnico nos permite inspeccionar y editar todas las confíguraciones
Cdoo almacenadas en la base de datos, desde laintertaz de usuario hasta la seguridad y
otros parámetros del sistema.

lnstalación de módulos de terceros

Hacer nuevos módulos disponibles en una instancia de Odoo para que puedan instalarse
es algo que los recién llegados a Odoo suelen encontrar confusos. Pero no tiene que ser
asi, así que vamos a desmitificarlo.

OPerú | Curso Técnico Odoo