如何在 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>