Jornadas Odoo 2016 - Cómo crear temas multi-website con Odoo v8 - Antonio Espinosa

Post on 14-Jan-2017

218 views 1 download

Transcript of Jornadas Odoo 2016 - Cómo crear temas multi-website con Odoo v8 - Antonio Espinosa

Multi-websiteCómo crear temas de Odoo con soporte multi-website

@antespi

Antonio EspinosaPamplona, Junio 2016

antonio.espinosa@tecnativa.com

Jornadas Odoo España

Multi-website

● Misma BBDD● Varios nombres de dominio● Varios temas (CSS y layout)● Contenido y aspecto separados entre sí

¿Qué entendemos por multi-website?

● Sí, parcialmente.● En v8 con el addon website_multi (sin soporte por Odoo SA) ● En v9 está integrado en el core

¿Odoo soporta multi-website?

Situación actual (v8, v9)

¿Qué no se soporta?● Opciones por website (Show SignIn, Show logo, automatic footer)● Temas por website (instalar más de un addon de tipo theme)● Asistente de creación de páginas base para cada website● Gestor de páginas en backend

● Menús por website● Páginas por website● Layouts por website (con restricciones)

¿Qué se soporta?

Odoo templating

Técnicas de templating● Call to template: Se usa principalmente en páginas

Odoo templating

● Inherit template: Se usa en los templates base

Addon website_multi v8 / website v9

● Añade los campos website_id y key● Selecciona la vista que tenga key = xmlid del website actual● Las vistas heredadas son

○ Las vistas con website_id = False○ Las vistas asociadas al website actual

ir.ui.view

Problemas a resolver

● Todo el CSS se minifica junto, no se pueden aplicar condicionales ni herencia filtrada por website_id

● El CSS minificado se almacena en caché

CSS

● La mayoría de los addons de website heredan de website.layout● Los controllers de website renderizan páginas que llaman website.layout● Hay que respetar la cadena de herencia de website.layout

Layout

Herencia de la vista website.layout

Herencia de la vista website.layout

website.layout

website.footer_custom

Herencia con replace

● Ojo con los replaces de Odoo● No usar replace en nuestro theme

Ejemplo: Website 127.0.0.1

Ejemplo: Website 127.0.0.1

Ejemplo: Website 127.0.0.1

Layout custom

homepage

L

E SLF F

CUN

homepage

L

E F UN

homepage

L

E SLF F

CUN

AF

Default Footer custom Layout custom

SL

FC

AF

AF

F

AF

E: EditorF: Footer customAF: Automatic footer

SL: Show logoUN: User navbarFC: Footer copyright

multi_website_theme addon

● Campos ○ name: Nombre del tema○ css_class: Namespace CSS

website.theme

website● Seleccionar el tema que se aplica en cada website● Añade al tag <html> la clase definida en theme.css_class

CSS Workaround #1: Aislado por namespace

Ventajas● Uso del minify integrado en Odoo● Cambiar cualquier aspecto de Bootstrap por defecto de Odoo● No colisiona el CSS al instalar dos o más themes

Desventajas● Aumenta tamaño del CSS a descargar● Aumenta el procesado del CSS del navegador

CSS Workaround #1: Aislado por namespace

website_multi_theme.layout_multi_theme

● name: Template theme● css_class: template

website.theme

less namespace

CSS Workaround #2: Condicional por website

Ventajas● Añadir a través de opción del editor customize_show="True"● Menor tamaño del CSS a descargar

Desventajas● Aumenta la cantidad de ficheros a descargar● CSS minify manual

CSS Workaround #2: Condicional por website

Roadmap

Asistente de creación de websites● Crea menús base● Crea páginas base

Gestor de páginas en backend● Listado de websites● Listado de menús por websites● Listado de páginas por websites● Listado de templates por websites

www.tecnativa.com

Gracias porsu atención