jornadas odoo 2016 - cómo crear temas multi-website con odoo v8 - antonio espinosa
TRANSCRIPT
![Page 1: Jornadas Odoo 2016 - Cómo crear temas multi-website con Odoo v8 - Antonio Espinosa](https://reader031.vdocuments.pub/reader031/viewer/2022020113/587960a81a28ab1e388b62f1/html5/thumbnails/1.jpg)
Multi-websiteCómo crear temas de Odoo con soporte multi-website
@antespi
Antonio EspinosaPamplona, Junio 2016
Jornadas Odoo España
![Page 2: Jornadas Odoo 2016 - Cómo crear temas multi-website con Odoo v8 - Antonio Espinosa](https://reader031.vdocuments.pub/reader031/viewer/2022020113/587960a81a28ab1e388b62f1/html5/thumbnails/2.jpg)
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?
![Page 3: Jornadas Odoo 2016 - Cómo crear temas multi-website con Odoo v8 - Antonio Espinosa](https://reader031.vdocuments.pub/reader031/viewer/2022020113/587960a81a28ab1e388b62f1/html5/thumbnails/3.jpg)
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?
![Page 4: Jornadas Odoo 2016 - Cómo crear temas multi-website con Odoo v8 - Antonio Espinosa](https://reader031.vdocuments.pub/reader031/viewer/2022020113/587960a81a28ab1e388b62f1/html5/thumbnails/4.jpg)
Odoo templating
Técnicas de templating● Call to template: Se usa principalmente en páginas
![Page 5: Jornadas Odoo 2016 - Cómo crear temas multi-website con Odoo v8 - Antonio Espinosa](https://reader031.vdocuments.pub/reader031/viewer/2022020113/587960a81a28ab1e388b62f1/html5/thumbnails/5.jpg)
Odoo templating
● Inherit template: Se usa en los templates base
![Page 6: Jornadas Odoo 2016 - Cómo crear temas multi-website con Odoo v8 - Antonio Espinosa](https://reader031.vdocuments.pub/reader031/viewer/2022020113/587960a81a28ab1e388b62f1/html5/thumbnails/6.jpg)
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
![Page 7: Jornadas Odoo 2016 - Cómo crear temas multi-website con Odoo v8 - Antonio Espinosa](https://reader031.vdocuments.pub/reader031/viewer/2022020113/587960a81a28ab1e388b62f1/html5/thumbnails/7.jpg)
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
![Page 8: Jornadas Odoo 2016 - Cómo crear temas multi-website con Odoo v8 - Antonio Espinosa](https://reader031.vdocuments.pub/reader031/viewer/2022020113/587960a81a28ab1e388b62f1/html5/thumbnails/8.jpg)
Herencia de la vista website.layout
![Page 9: Jornadas Odoo 2016 - Cómo crear temas multi-website con Odoo v8 - Antonio Espinosa](https://reader031.vdocuments.pub/reader031/viewer/2022020113/587960a81a28ab1e388b62f1/html5/thumbnails/9.jpg)
Herencia de la vista website.layout
website.layout
website.footer_custom
![Page 10: Jornadas Odoo 2016 - Cómo crear temas multi-website con Odoo v8 - Antonio Espinosa](https://reader031.vdocuments.pub/reader031/viewer/2022020113/587960a81a28ab1e388b62f1/html5/thumbnails/10.jpg)
Herencia con replace
● Ojo con los replaces de Odoo● No usar replace en nuestro theme
![Page 11: Jornadas Odoo 2016 - Cómo crear temas multi-website con Odoo v8 - Antonio Espinosa](https://reader031.vdocuments.pub/reader031/viewer/2022020113/587960a81a28ab1e388b62f1/html5/thumbnails/11.jpg)
Ejemplo: Website 127.0.0.1
![Page 12: Jornadas Odoo 2016 - Cómo crear temas multi-website con Odoo v8 - Antonio Espinosa](https://reader031.vdocuments.pub/reader031/viewer/2022020113/587960a81a28ab1e388b62f1/html5/thumbnails/12.jpg)
Ejemplo: Website 127.0.0.1
![Page 13: Jornadas Odoo 2016 - Cómo crear temas multi-website con Odoo v8 - Antonio Espinosa](https://reader031.vdocuments.pub/reader031/viewer/2022020113/587960a81a28ab1e388b62f1/html5/thumbnails/13.jpg)
Ejemplo: Website 127.0.0.1
![Page 14: Jornadas Odoo 2016 - Cómo crear temas multi-website con Odoo v8 - Antonio Espinosa](https://reader031.vdocuments.pub/reader031/viewer/2022020113/587960a81a28ab1e388b62f1/html5/thumbnails/14.jpg)
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
![Page 15: Jornadas Odoo 2016 - Cómo crear temas multi-website con Odoo v8 - Antonio Espinosa](https://reader031.vdocuments.pub/reader031/viewer/2022020113/587960a81a28ab1e388b62f1/html5/thumbnails/15.jpg)
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
![Page 16: Jornadas Odoo 2016 - Cómo crear temas multi-website con Odoo v8 - Antonio Espinosa](https://reader031.vdocuments.pub/reader031/viewer/2022020113/587960a81a28ab1e388b62f1/html5/thumbnails/16.jpg)
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
![Page 17: Jornadas Odoo 2016 - Cómo crear temas multi-website con Odoo v8 - Antonio Espinosa](https://reader031.vdocuments.pub/reader031/viewer/2022020113/587960a81a28ab1e388b62f1/html5/thumbnails/17.jpg)
CSS Workaround #1: Aislado por namespace
website_multi_theme.layout_multi_theme
● name: Template theme● css_class: template
website.theme
less namespace
![Page 18: Jornadas Odoo 2016 - Cómo crear temas multi-website con Odoo v8 - Antonio Espinosa](https://reader031.vdocuments.pub/reader031/viewer/2022020113/587960a81a28ab1e388b62f1/html5/thumbnails/18.jpg)
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
![Page 19: Jornadas Odoo 2016 - Cómo crear temas multi-website con Odoo v8 - Antonio Espinosa](https://reader031.vdocuments.pub/reader031/viewer/2022020113/587960a81a28ab1e388b62f1/html5/thumbnails/19.jpg)
CSS Workaround #2: Condicional por website
![Page 20: Jornadas Odoo 2016 - Cómo crear temas multi-website con Odoo v8 - Antonio Espinosa](https://reader031.vdocuments.pub/reader031/viewer/2022020113/587960a81a28ab1e388b62f1/html5/thumbnails/20.jpg)
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
![Page 21: Jornadas Odoo 2016 - Cómo crear temas multi-website con Odoo v8 - Antonio Espinosa](https://reader031.vdocuments.pub/reader031/viewer/2022020113/587960a81a28ab1e388b62f1/html5/thumbnails/21.jpg)
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
![Page 22: Jornadas Odoo 2016 - Cómo crear temas multi-website con Odoo v8 - Antonio Espinosa](https://reader031.vdocuments.pub/reader031/viewer/2022020113/587960a81a28ab1e388b62f1/html5/thumbnails/22.jpg)
www.tecnativa.com
Gracias porsu atención