Professional Documents
Culture Documents
con Odoo
Tabla de contenido
1. Introduction
2. Configuracin del sistema
3. Configuracin de Odoo
4. Configuracin de la legislacin espaola
5. notas un poco cochinas
Introduction
dnf install -y docker-io fig # instalamos los paquetes que vamos a necesitar con todas sus dependencias
systemctl enable docker.service # activamos el servicio docker desde el arranque del sistema
systemctl start docker.service # ponemos en ejecucin el servicio docker
En general, para usar docker es necesario tener permisos de superusuario, pero podemos evitarlo aadiendo nuestro
usuario al grupo adecuado del sistema:
mkdir odoo-cacharreo.club
cd odoo-cacharreo.club
A continuacin creamos un fichero fig.yml que expresar la configuracin de la orquestacin docker con los siguientes
contenidos:
image: yajo/odoo:data
# PostgreSQL server
db:
image: postgres:9.2
environment:
# You **must** change these
POSTGRES_USER: odoo
POSTGRES_PASSWORD: *************
volumes_from:
- dbdata
# PostgreSQL data files
dbdata:
image: postgres:9.2
command: "true"
# For development, add a debugger
wdb:
image: yajo/wdb-server
ports:
- "1984:1984"
# For production, you will likely use HTTPS
https:
image: yajo/https-proxy
ports:
- "800:80"
- "4433:443"
links:
- app:www
environment:
PORT: 8069
# In case you have your SSL key & certs, put them here:
KEY: |
-----BEGIN RSA PRIVATE KEY---- MIIEowIBAAKCAQEAvxDL6GSCI5rIU7MT92gqwk05TlXalYd3QOuDiAULf/1M3HaA
YcpgK6M9KIFDUKrG3OXmbOFa8vE0mFHsYXEX+cSyu4oBkyJNufe6oyywg3FJj+Q8
-----END RSA PRIVATE KEY---- CERT: |
-----BEGIN CERTIFICATE---- MIIDcDCCAlgCCQC73VZzsoPIyTANBgkqhkiG9w0BAQUFADB6MQswCQYDVQQGEwJF
UzEVMBMGA1UEBwwMRGVmYXVsdCBDaXR5MRowGAYDVQQKDBFDbHViIGRlIENhY2hh
cnJlbzENMAsGA1UEAwwEb2RvbzEpMCcGCSqGSIb3DQEJARYaaXNtYWVsLm9sZWFA
-----END CERTIFICATE-----
La sintaxis es YAML.
Puede observarse que el fichero fig.yml es bastante explcito. Define seis contenedores diferentes y las respectivas
propiedades docker de los mismos:
app: con el cdigo de Odoo
appdata: datos de trabvajo de Odoo alojados fuera de la bbdd
db: con el ejecutable de postgresql
dbdata: con, exclusivamente, los ficheros de la bbdd usada por Postgresql
wdb: consoola de depuracin de aplicaciones de Odoo
https: proxy TLS inverso
PORHACER: explicar la configuracin fig PORHACER: explicar el procedimiento de creacin de la orquestacin (pasos
intermedios)
Para saber si docker est operativo en nuestro sistema podemos usar la orden docker info que dar un resultado
semejante a :
$ docker info
Containers: 0
Images: 158
Storage Driver: devicemapper
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Entonces, desde el mismo subdirectorio en el que nos encontramos, podemos usar la orden fig para levantar la
configuracin de los tres contenedores:
$ fig up -d
Creating odoocacharreoclub_dbdata_1...
Creating odoocacharreoclub_db_1...
Creating odoocacharreoclub_appdata_1...
Creating odoocacharreoclub_app_1...
Creating odoocacharreoclub_https_1...
Creating odoocacharreoclub_wdb_1...
Obsrvese:
que la opcin -d (por detach) que levanta los contenedores corriendo como proceso de fondo;
que docker busca las imgenes preconfiguradas que indicamos en fig.yml primero entre las que estn operativas en el
sistema, despus entre las descargadas en su cach interna y finalmente las descarga del registro pblico y que todo
el proceso es completamente automtico y transparente;
que fig ha aadido el prefijo odoocacharreoclub* a cada nombre que elegimos para los contenedores.
A continuacin podemos comprobar que realmente nuestros contenedores estn operativos.
Vistos desde fig:
$ fig ps
Name Command State Ports
--------------------------------------------------------------------------------------------------------------------- odoocacharreoclub_app_1 launch Up 0.0.0.0:8069->8069/tcp, 0.0.0.0:8072->8072/tcp
odoocacharreoclub_appdata_1 /bin/sh -c true Exit 0
odoocacharreoclub_db_1 /docker-entrypoint.sh postgres Up 5432/tcp
odoocacharreoclub_dbdata_1 /docker-entrypoint.sh true Exit 0
odoocacharreoclub_https_1 /usr/local/sbin/launch.sh Up 0.0.0.0:4433->443/tcp, 0.0.0.0:800->80/tcp
odoocacharreoclub_wdb_1 /bin/sh -c wdb.server.py - ... Up 0.0.0.0:1984->1984/tcp, 19840/tcp
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
5cb46e82bb98 yajo/https-proxy:latest "/usr/local/sbin/lau 10 days ago Up 36 hours 0.0.0.0:800->80/tcp, 0.0.0
b3d96cf39863 yajo/odoo:latest "launch" 10 days ago Up 36 hours 0.0.0.0:8069->8069/tcp, 0.
f52a733241cd postgres:9.2 "/docker-entrypoint. 10 days ago Up 36 hours 5432/tcp
3f5891cf1bc0 yajo/wdb-server:latest "/bin/sh -c 'wdb.ser 10 days ago Up 36 hours 0.0.0.0:1984->1984/tcp, 19
Por qu las diferencias? Fcil, porque invocar docker ps slo muestra los contenedores que estn en ejecucin y tanto
odoocacharreoclub_dbdata_1 como odoocacharreoclub_appdata_1 no son contenedores que ejecutan cdigo sino
que sirven como almacenes de datos.
Para poder entender la complejidad de esta configuracin obsrvese la relacin entre las diferentes versiones del ciclo de
vida de las imgenes docker:
Finalmente la aplicacin Odoo queda accesible desde el puerto 4433, con cifrado TLS. En nuestro caso la direccin final
es https://olea.wtf.im:4433, que utiliza un DNS dinmico ya que se aloja edentro de la red de un usuario de banda ancha
de consumo.
Pendientes:
instalar whtmltopdf
El ajuste final de la orquestacin an est pendiente: bsicamente cerrar algunos puertos que realmente no van a
usarse
desactivar el mdulo de depuracin de Odoo
tal vez crear un nuevo certifacdo X509 para el proxy inverso para hacer ms cmodo el uso en el navegador de
certificados autofirmados
mejorar la configuracin de haproxy para evitar el uso de algoritmos inseguros como SSLv3
arreglar ERROR del cron:https://www.odoo.com/forum/help-1/question/could-not-obtain-lock-on-row-in-relation-ir-cron74519
arreglar WARNING club-de-cacharreo openerp.modules.registry: The option --unaccent was given but no unaccent()
function was found in database,
mirar aqu por si acaso.
app_1 | Trying to install unaccent extension
app_1 | CREATE EXTENSION
app_1 | NOTICE: extension "unaccent" already exists, skipping
app_1 | Executing 'odoo.py --config /etc/odoo/openerp-server.conf'
10
Configuracin de Odoo
Este captulo debera ser ms detallado y prolijo... pero no, ha sido mal improvisado por el retraso del autor y porque le ha
dedicado ms tiempo a aprender a usar el artefacto que a documentarlo con el magnfico nivel de detalle de las prcticas
originales de la asignatura. Rogamos sean tenidas en cuenta estas disculpas.
Creacin de la bbdd
Una vez tenemos una configuracin operativa la probamos entrando con el navegador en la direccin
https://olea.wtf.im:4433 y encontraremos el men principal de la gestin de bbdd de Odoo que ser cmo:
Le parece que est muy expuesto, as tan alegremente? Ya le digo yo que a nosotros tambin, pero donde manda
upstream no manda integrador. Esta es una de las razones por las que era obligada la instalacin de un proxy inverso
TLS.
En nuestro caso crearemos:
una bbdd llamada cacharreo
en espaol
usaremos las mismas contraseas que indicamos en el fichero fig.yml
Nota: en este punto uno esperara un manual paso a paso, pero como voy a posteriori slo vamos a mostrar las
configuraciones que s hemos llevado a cabo a posteriori.
Configuracin general
Configuracin de Odoo
11
Adicin de la empresa
Configuracin de Odoo
12
Configuracin de Odoo
13
Nota: Odoo distingue entre usuarios (que acceden al sistema) y empleados de la organizacin. Un usuario puede ser un
empleado, un usuario externo (si estn en uso mdulos como web, forums o portal) o interno pero sin asignacin de
empleado.
Seleccin de mdulos
Estos son los mdulos instalados en este momento:
Configuracin de Odoo
14
Configuracin de Odoo
15
Aunque hay que reconocer que algunos estn puestos a lo loco, mientras aprendemos a saber qu hacen y cmo se usan.
Gestin de proyectos
Una de nuestras prioridades ha sido estructurar las tareas del equipo y aumentar la visibilidad del trabajo. Sabedores que
existe una funcionalidad de kanban implementada en mdulos de gestin de proyecto procedimos a instalarlo:
Configuracin de Odoo
16
Pueden observarse varios, incluso scrum, aunque ste realmente no lo usaremos por ahora.
S puede verse en cambio cmo estamos organizando el flujo del trabajo kanban:
Vista de proyectos:
Configuracin de Odoo
17
Vista de tareas:
Configuracin de Odoo
18
Obervese que el usuario Ismael Olea tiene ms elementos del interfaz a la vista que el Administrador. Esto se debe a
que, si bien ambos tienen los mismos niveles de permisos, el primero tiene activado en su configuracin de usuario la
visualizacin de los aspectos tcnicos.
Configuracin de la web
Otro aspecto muy interesante de las versiones recientes de Odoo (al menos verificado en la v8) es que integran varias
funcionalidades web al margen del acceso a la aplicacin a travs del navegador, o ms bien deberamos decir adems
de.
En nuestro caso de trabajo ya tenemos implementada, con contenido de esttico. la web corporativa en otro servidor.
Aunque no tenemos inters especial en operar la web corporativa con Odoo se hace necesario explicitar la URI de
accesso, sobre todo porque los detalles de acceso no son triviales:
direccin DNS diferente al configurado en el sistema operativo
uso de TLS
a travs de un puerto no convencional (!= 443)
As las cosas configuramos la web de la siguiente manera:
Configuracin de Odoo
19
Configuracin de Odoo
20
Correo de entrada:
Configuracin de Odoo
21
Obsrvese que el servidor al que se accede es tormento.olea.org, que aloja el MTA del dominio cacharreo.club,
configurado en el registro MX del servidor DNS de ste ltimo.
Obervese igualmente que usamos un usuario gestion.cacharreo para la burocracia administrativa relacionada con los
usos de Odoo.
En realidad Odoo tiene una integracin con el correo electrnico mucho ms potente que esto, que permite usar diferentes
direcciones de correo-e corporativas para diferentes asuntos, en funcin de cmo lo configuremos.
Entre esas posibilidades, en el pantallazo anterior puede observar la opcin [Servidor y conexin]->[Acciones a realizar en
los correos entrantes]->[Crear un nuevo registro]->[Tasks]. Este ajuste crea una tarea nueva por cada correo-e entrante.
Nos queda pendiente saber cmo asignar cada tarea a un usuario existente que reciba una notificacin de la llegada y
atienda el evento en consecuencia.
Configuracin de la mercadotecnia
Dado que precisamente nos encontramos desarrollando una campaa pretendidadamente viral hemos instalado al menos
el mdulo CRM para intentar sacarle partido.
Configuracin de Odoo
22
Aunque lo cierto es que a lo que s parece que sabemos sacarle partido es al soporte comercial, en el que hemos
empezaod a distinguir, segn la nomenclatura de Odoo, iniciativas y oportunidades:
Configuracin de Odoo
23
Configuracin de Odoo
24
Configuracin de Odoo
25
Configuracin de Odoo
26
Y como sabemos que efectivamente hemos hecho ms cambios de configuracin es obvio que quedan cosas por hacer.
Configuracin de Odoo
27
Configuracin de Odoo
28
Pendientes:
Verificar que estamos usando auditlog correctamente
Verificar que estamos usando todos los mdulos para la reglamentacin espaola que necesitamos; los sospechosos
son al menos:
l10n_es_aeat_mod111
l10n_es_account_bank_statement_import_n43
l10n_es_aeat_mod347
l10n_es_partner
y no s si tambin
la principal secuencia para asientos
adems de las liquidaciones de impuestos
Verificar si estamos usando correctamente las campaas con el CRM
Repasar la manera en la que integrar el formulario de consultas de nuestra web dentro de Odoo, bsicamente
decidiendo si lo hacemos
por protocolo usado
smtp
directamente formulario web
por mdulo Odoo
como tareas nuevas en el kanban
como entradas en el mdulo de ventas
considerar en algn momento la integracin de nuestra web esttica con la web corporativa integrada de Odoo.
mejorar la configuracin de Audit Log para controlar al menos los cambios de configuracin
asignar a un usuario Odoo las tareas generadas por correo-e entrante, en [Configuracin]->[Email]->[Servidores de
correo entrante]->[Servidor y conexin]->[Acciones a realizar en los correos entrantes]->[Crear un nuevo registro]->
Configuracin de Odoo
29
[Tasks]
gestionar domiciliaciones
Configuracin de Odoo
30
31
Haceres:
instalar topnimos espaoles + dependencia python https://apps.openerp.com/apps/modules/8.0/l10n_es_toponyms/
al instalar la aplicacin veremos una advertencia
en general podemos decir que las aplicaciones desarrolladas por la comunidad espaola son fiables y estables,
por lo que podremos aceptar e instalar sin problema.
Imposible instalar el mdulo "base_location_geonames_import" porqu hay una dependencia externa no
resuelta: No module named unicodecsv
ergo hemos de instalar unicodecsv (modificado en el Dockerfile)
para poder instalar desde Aplicaciones en lnea hay que estar autenticado en tu instancia Odoo y en
Odoo.com.
configuramos a travs de Configurar desde local porque la opcin de GeoNames no nos funciona.
es posible que aparezca un error y que de apariencia de que el mdulo no se ha instalado pero si lo
notas un poco cochinas
32
si encuentras un problema de permisos asgnate los necesarios o usa un usuario que s los tenga.
Informes de cuentas anuales espaoles
33