Passa al contenuto
Menu
È necessario essere registrati per interagire con la community.
La domanda è stata contrassegnata
2 Risposte
5022 Visualizzazioni

Hello everyone!

I'm about to using Odoo (v10) to run several webshops and websites. To share the frontend style (css) I've managed the structure into several modules to inherit style definitions from less-files. The structure looks as followed:

default_theme/static/private/less/header.less
default_theme/static/private/less/default.less (includes header.less, variables and so on)

default_shop/static/private/less/header.less
default_shop/static/private/less/default.less (imports default.less from default_theme + header.less of this module)

shop_A/static/private/less/header.less
shop_A/static/private/less/theme.less (imports default.less from the default_shop + header.less of this module and several additional variables and specifications for the shop)

The only less file that will be included via assets XML will be the one from the shop_A module. That is my setup / idea.

When I run the system I get the following error:

Local import '../../default_theme/static/private/less/default.less' is forbidden for security reasons.

When I dive into the source code I've seen that as soon as there are any "." in the import paths the script will fail.
How can I manage my less files into separate files instead of writing one large less file? Furthermore I want to split the style logic into several reusable modules instead of one module.

Hope that maybe someone can help me out.

Avatar
Abbandona
Risposta migliore

You can easily create reusable theme modules. Please make sure, that you have defined the corresponding dependencies in the __manifest__.py file. You can add new assets to the already defined assets of the depending modules by inheriting the assets file and adding new links, such as:

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="less" name="tw yings design" inherit_id="website.assets_frontend" active="True" priority="1">
<xpath expr="link[last()]" position="after">
<link href="/tw_yings_design/static/src/less/typography.less" rel="stylesheet" type="text/less"/>
<link href="/tw_yings_design/static/src/less/misc_classes.less" rel="stylesheet" type="text/less"/>
<link href="/tw_yings_design/static/src/less/options/colors/colorPreset1.less" rel="stylesheet" type="text/less"/>
</xpath>
</template>
</odoo>


Avatar
Abbandona
Autore Risposta migliore

Ermin, thanks that worked - altough it looks better to have those inheritances and imports directly in less. ;)

Avatar
Abbandona
Post correlati Risposte Visualizzazioni Attività
0
nov 18
3816
1
gen 17
7947
0
nov 16
3172
1
giu 24
40238
8
dic 23
17482