Cómo compilar automáticamente Sass en Odoo

El tutorial de cómo crear un tema para Odoo te explica cómo usar LESS como preprocesador de CSS.

Está bien, pero si te gusta programar en Python, probablemente te guste más Sass que LESS por su sintaxis (y quizá por otras razones). Pues bien, website_less también permite compilar Sass (y SCSS) automáticamente.

Para activar LESS:

$ yum -y install npm
$ npm install -g less less-plugin-clean-css

Para activar Sass:

$ yum -y install rubygems ruby-devel
$ gem install bootstrap-sass compass sass

Las instrucciones son para CentOS 7, pero para cualquier otra distro, simplemente busca los paquetes equivalentes.

Con esto debería bastar, pero es posible que tras hacerlo te salgan errores como el siguiente al intentar compilar Sass:

WARNING demo openerp.addons.website_less.ir_qweb: /usr/share/rubygems/rubygems/path_support.rb:68:in `path=': undefined method `+' for nil:NilClass (NoMethodError)
 from /usr/share/rubygems/rubygems/path_support.rb:30:in `initialize'
 from /usr/share/rubygems/rubygems.rb:357:in `new'
 from /usr/share/rubygems/rubygems.rb:357:in `paths'
 from /usr/share/rubygems/rubygems.rb:379:in `path'
 from /usr/share/rubygems/rubygems/specification.rb:794:in `dirs'
 from /usr/share/rubygems/rubygems/specification.rb:658:in `each_normal'
 from /usr/share/rubygems/rubygems/specification.rb:669:in `_all'
 from /usr/share/rubygems/rubygems/specification.rb:822:in `each'
 from /usr/share/rubygems/rubygems/specification.rb:864:in `find'
 from /usr/share/rubygems/rubygems/specification.rb:864:in `find_inactive_by_path'
 from /usr/share/rubygems/rubygems.rb:175:in `try_activate'
 from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:132:in `rescue in require'
 from /usr/share/rubygems/rubygems/core_ext/kernel_require.rb:144:in `require'
 from <internal:abrt_prelude>:2:in `<compiled>'
 This error occured while compiling the bundle 'website.assets_frontend' containing:
 - /<theme_module>/static/src/css/style.sass

Esto ocurrirá en caso de que el usuario que corre Odoo (normalmente llamado también odoo) no tenga un $HOME. Hay que crearlo para que todo funcione:

$ mkdir /home/odoo
$ chown odoo:odoo /home/odoo

Otra opción es asignarle al usuario una $HOME que ya exista:

$ usermod --home /var/lib/odoo odoo

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s