如何在 Odoo 10 POS 插件中使用自定义 CSS
How to use custom CSS in an Odoo 10 POS addon
当我启动 POS 应用程序时,我的自定义 CSS 没有被加载,但它被加载到仪表板的 web.assets_backend.1.css 中。我的自定义 Javascript 正在正确加载。这是加载 CSS 的正确方法吗?感谢您的帮助。
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<data>
<template id="assets_backend" inherit_id="web.assets_backend" name="donation_assets_backend">
<xpath expr="." position="inside">
<link rel="stylesheet" href="/donation/static/src/css/donation.css" />
<script type="text/javascript" src="/donation/static/src/js/donation.js"></script>
<script type="text/javascript" src="/donation/static/src/js/jquery.sglide.js"></script>
<script type="text/javascript" src="/donation/static/src/js/sGlide.js"></script>
<script type="text/javascript" src="/donation/static/src/js/donation_frontend.js"></script>
</xpath>
</template>
</data>
</odoo>
不确定,但是您是否在 donation
模块的依赖项中添加了 point_of_sale
模块?
如果没有,请将 "depends" : ["point_of_sale"],
添加到 _openerp_.py
中的字典中。如果需要,添加更多依赖项。
现在首先加载 point_of_sale
模块及其资产。
编辑:尝试使用 inherit_id="point_of_sale.assets"
而不是 inherit_id="web.assets_backend"
。那可以为你做到。
我的 Javascript 和 CSS 现在正在添加到 point_of_sale.assets 文件中。事实证明,我在 static/src/xml/ 中的 QWeb 模板文件有错误,导致一些 Odoo 应用程序文件找不到。这也可能是 Odoo 没有更新 web.assets_backend.js 和 point_of_sale.assets js 和 css 文件的原因。
这是我更新的 XML 资产文件:
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="assets" inherit_id="point_of_sale.assets" name="donation assets">
<xpath expr="." position="inside">
<script type="text/javascript" src="/donation/static/lib/jquery.sglide.js"></script>
<script type="text/javascript" src="/donation/static/lib/sGlide.js"></script>
<script type="text/javascript" src="/donation/static/src/js/donation.js"></script>
</xpath>
<xpath expr="//link[@id='pos-stylesheet']" position="after">
<link rel="stylesheet" href="/donation/static/src/css/donation.css" />
</xpath>
</template>
</odoo>
您需要在三个地方更新 css 文件的路径。
1.inherit_id="web.assets_backend"
2.inherit_id="web.assets_frontend"
3.inherit_id="point_of_sale.assets"
在继承上述模板的模板中。
代码如下所示。
<template id="assets_backend" name="sub_menu assets" inherit_id="web.assets_backend">
<xpath expr="." position="inside">
<link rel="stylesheet" href="/pos_update/static/src/css/mypos.css"/>
</xpath>
</template>
<template id="assets_frontend" name="sub_menu assets front" inherit_id="web.assets_frontend">
<xpath expr="." position="inside">
<link rel="stylesheet" href="/pos_update/static/src/css/mypos.css"/>
</xpath>
</template>
<data>
<template id="assets" inherit_id="point_of_sale.assets">
<xpath expr="." position="inside">
<link rel="stylesheet" href="/pos_update/static/src/css/mypos.css"/>
<script type="text/javascript" src="/pos_update/static/src/js/cancel.js"></script>
</xpath>
</template>
</data>
您还需要确保如果要修改现有模板,则不得更改样式表名称。
如果你想为你的模板创建一个样式表,你只需要在一个地方设置样式表的路径,即在你设置js文件路径的主模板文件中。
<template id="assets" inherit_id="point_of_sale.assets">
<xpath expr="." position="inside">
<link rel="stylesheet" href="/pos_update/static/src/css/mypos.css"/>
<script type="text/javascript" src="/pos_update/static/src/js/cancel.js"></script>
</xpath>
</template>
当我启动 POS 应用程序时,我的自定义 CSS 没有被加载,但它被加载到仪表板的 web.assets_backend.1.css 中。我的自定义 Javascript 正在正确加载。这是加载 CSS 的正确方法吗?感谢您的帮助。
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<data>
<template id="assets_backend" inherit_id="web.assets_backend" name="donation_assets_backend">
<xpath expr="." position="inside">
<link rel="stylesheet" href="/donation/static/src/css/donation.css" />
<script type="text/javascript" src="/donation/static/src/js/donation.js"></script>
<script type="text/javascript" src="/donation/static/src/js/jquery.sglide.js"></script>
<script type="text/javascript" src="/donation/static/src/js/sGlide.js"></script>
<script type="text/javascript" src="/donation/static/src/js/donation_frontend.js"></script>
</xpath>
</template>
</data>
</odoo>
不确定,但是您是否在 donation
模块的依赖项中添加了 point_of_sale
模块?
如果没有,请将 "depends" : ["point_of_sale"],
添加到 _openerp_.py
中的字典中。如果需要,添加更多依赖项。
现在首先加载 point_of_sale
模块及其资产。
编辑:尝试使用 inherit_id="point_of_sale.assets"
而不是 inherit_id="web.assets_backend"
。那可以为你做到。
我的 Javascript 和 CSS 现在正在添加到 point_of_sale.assets 文件中。事实证明,我在 static/src/xml/ 中的 QWeb 模板文件有错误,导致一些 Odoo 应用程序文件找不到。这也可能是 Odoo 没有更新 web.assets_backend.js 和 point_of_sale.assets js 和 css 文件的原因。
这是我更新的 XML 资产文件:
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="assets" inherit_id="point_of_sale.assets" name="donation assets">
<xpath expr="." position="inside">
<script type="text/javascript" src="/donation/static/lib/jquery.sglide.js"></script>
<script type="text/javascript" src="/donation/static/lib/sGlide.js"></script>
<script type="text/javascript" src="/donation/static/src/js/donation.js"></script>
</xpath>
<xpath expr="//link[@id='pos-stylesheet']" position="after">
<link rel="stylesheet" href="/donation/static/src/css/donation.css" />
</xpath>
</template>
</odoo>
您需要在三个地方更新 css 文件的路径。
1.inherit_id="web.assets_backend"
2.inherit_id="web.assets_frontend"
3.inherit_id="point_of_sale.assets"
在继承上述模板的模板中。 代码如下所示。
<template id="assets_backend" name="sub_menu assets" inherit_id="web.assets_backend">
<xpath expr="." position="inside">
<link rel="stylesheet" href="/pos_update/static/src/css/mypos.css"/>
</xpath>
</template>
<template id="assets_frontend" name="sub_menu assets front" inherit_id="web.assets_frontend">
<xpath expr="." position="inside">
<link rel="stylesheet" href="/pos_update/static/src/css/mypos.css"/>
</xpath>
</template>
<data>
<template id="assets" inherit_id="point_of_sale.assets">
<xpath expr="." position="inside">
<link rel="stylesheet" href="/pos_update/static/src/css/mypos.css"/>
<script type="text/javascript" src="/pos_update/static/src/js/cancel.js"></script>
</xpath>
</template>
</data>
您还需要确保如果要修改现有模板,则不得更改样式表名称。
如果你想为你的模板创建一个样式表,你只需要在一个地方设置样式表的路径,即在你设置js文件路径的主模板文件中。
<template id="assets" inherit_id="point_of_sale.assets">
<xpath expr="." position="inside">
<link rel="stylesheet" href="/pos_update/static/src/css/mypos.css"/>
<script type="text/javascript" src="/pos_update/static/src/js/cancel.js"></script>
</xpath>
</template>