【零散技术】5分钟完成Odoo18 登陆页面全自定义

序言:时间是我们最宝贵的财富,珍惜手上的每个时分

        从最初的tinyERP到Open ERP,再由OpenERP到Odoo,虽然UI已经过了多次大改,Odoo登录界面依旧丑陋,同时还有各种Odoo版权信息,对于定制项目而言是不友好的。

        今天以Odoo18为例,我们来做一个简单的即插即用的修改。

话不多说,直接上代码

新建文件:views/login_template.xml:

<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <template id="login_layout" inherit_id="web.login_layout" name="web Login Inherit">
        <xpath expr="//*[@class='text-center small mt-4 pt-3 border-top']"
               position="attributes">
            <attribute name="style">display:none</attribute>

        </xpath>
        <xpath expr="//*[@t-attf-class='card border-0 mx-auto bg-100 {{login_card_classes}} o_database_list']"
               position="attributes">
            <attribute name="style">max-width: 500px;margin-top:4rem; opacity: 0.8;</attribute>
        </xpath>
    </template>

    <template id="ro_login">

        <t t-call="web.login_layout">
            <style>
                #wrapwrap{
                <!--                background-color:#1c7bd4 !important;-->
                background-image:url(/模块名称/static/src/login.png);"
                }
            </style>
            <form t-attf-class="oe_login_form" role="form" t-attf-action="/web/login"
                  method="post" onsubmit="this.action = '/web/login' + location.hash">
                <input type="hidden" name="csrf_token" t-att-value="request.csrf_token()"/>


                <div class="mb-3 field-login">
                    <label for="login" class="form-label d-flex justify-content-between">用户名</label>
                    <input type="text" placeholder="用户名" name="login" t-att-value="login" id="login"
                           class="form-control" required="required" autocapitalize="off" autocomplete="username"/>
                </div>

                <div class="mb-3">
                    <label for="password" class="form-label d-flex justify-content-between">密码</label>
                    <input type="password" placeholder="密码" name="password" id="password" class="form-control"
                           required="required" autocomplete="current-password"
                           t-att-autofocus="'autofocus' if login else None" maxlength="4096"/>
                </div>

                <p class="alert alert-danger" t-if="error" role="alert">
                    <t t-esc="error"/>
                </p>
                <p class="alert alert-success" t-if="message" role="status">
                    <t t-esc="message"/>
                </p>
                <div class="oe_login_buttons text-center gap-1 d-grid mb-1 pt-3">
                    <button type="submit" class="btn btn-primary">登录</button>
                </div>

            </form>
        </t>
    </template>


</odoo>

引入视图:__manifiest__.py

'''

    'data': [
        'views/login_template.xml',
    ],
'''

新建 static/src文件夹,放入 login.png,此为背景图片,自己选素材即可。

在模块中做如上几步,即大功告成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值