Jornadas Odoo 2015 - Implantación de Odoo en una empresa de automatización industrial americana
Jornadas Odoo 2016 - Cómo crear temas multi-website con Odoo v8 - Antonio Espinosa
-
Upload
pedro-manuel-baeza-romero -
Category
Technology
-
view
218 -
download
1
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
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
Referencias
Addons v8● website_multi: Soporte multi-website● website_multi_theme: Soporte themes multi-website● theme_template_multi: Plantilla de tema multi-website
Odoo issue● Odoo multi-website improvements debate: #9745
www.tecnativa.com
Gracias porsu atención