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

22
Multi-website Cómo crear temas de Odoo con soporte multi-website @antespi Antonio Espinosa Pamplona, Junio 2016 [email protected] Jornadas Odoo España

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

Page 1: 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

[email protected]

Jornadas Odoo España

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

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

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

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

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

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

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

Herencia de la vista website.layout

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

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

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

Ejemplo: Website 127.0.0.1

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

Ejemplo: Website 127.0.0.1

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

Ejemplo: Website 127.0.0.1

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

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

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

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

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

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

CSS Workaround #2: Condicional por website

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

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 22: Jornadas Odoo 2016 - Cómo crear temas multi-website con Odoo v8 - Antonio Espinosa

www.tecnativa.com

Gracias porsu atención