先看一下效果
在现代企业管理系统中,个性化是提升用户体验的重要手段之一。Odoo 17作为一款强大的ERP系统,通过自定义标题(Title)和图标(Favicon),可以使您的系统更具品牌特色。本篇文章将介绍如何通过我们的Odoo插件custom_favicon_and_title
,轻松实现这一目标。
插件原理
custom_favicon_and_title
插件通过扩展Odoo的设置模型,实现了标题和Favicon的自定义配置。以下是该插件的核心代码及其工作原理。
模型定义
首先,我们需要定义一个模型来存储和管理标题和Favicon的设置。我们通过继承res.config.settings
模型来实现这一点。
from odoo import models, fields, api
import logging
_logger = logging.getLogger(__name__)
class ResConfigSettings(models.TransientModel):
_inherit = 'res.config.settings'
title_prefix = fields.Char(string='Title Prefix', help='Set a prefix for the page title that will be used across the site.')
ico = fields.Binary(string='Icon')
@api.model
def get_values(self):
res = super(ResConfigSettings, self).get_values()
res['title_prefix'] = self.env['ir.config_parameter'].sudo().get_param('title_prefix', default='')
res['ico'] = self.env['ir.config_parameter'].sudo().get_param('ico', default='')
return res
def set_values(self):
super().set_values()
self.env['ir.config_parameter'].sudo().set_param('title_prefix', self.title_prefix)
self.env['ir.config_parameter'].sudo().set_param('ico', self.ico)
继承res.config.settings
模型的原因
在Odoo中,res.config.settings
模型通常用于系统设置。这类模型的一个关键特点是它们继承自TransientModel
,即临时模型。这意味着这些设置不会直接存储在数据库的表中,而是临时保存,通常在用户保存设置时被写入相应的配置参数中。
这种设计有以下几个好处:
- 简化管理:通过继承
res.config.settings
,可以将设置项统一放在Odoo的设置界面中,用户可以方便地进行配置和管理。 - 避免污染数据:由于
TransientModel
的数据不会持久化,避免了将临时数据污染到核心业务数据表中。 - 自动处理:Odoo自动处理
TransientModel
的数据存储和读取,无需开发者手动编写复杂的持久化逻辑。
设置界面
为了让用户能够方便地配置标题和Favicon,我们需要在Odoo的设置界面中添加相应的配置项。这可以通过定义一个XML视图来实现。
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="res_config_settings_view_form" model="ir.ui.view">
<field name="name">res.config.settings.view.form.inherit.title.prefix</field>
<field name="model">res.config.settings</field>
<field name="inherit_id" ref="base_setup.res_config_settings_view_form"/>
<field name="arch" type="xml">
<div id="languages" position="before">
<block title="Title And Favicon" name="title">
<setting id="title_setting" string="Title Setting" help="Setting your title prefix">
<div class="content-group">
<div class="row mt16">
<label for="title_prefix" string="Title Prefix:" class="col-lg-3 o_light_label"/>
<field name="title_prefix" placeholder="Enter title prefix " />
</div>
</div>
</setting>
<setting id="x_icon_setting" string="Favicon Setting" help="Setting your own favicon">
<div class="content-group">
<div class="row mt16">
<label for="ico" string="Favicon" class="col-lg-3 o_light_label"/>
<field name="ico" widget="image" options="{'size': [0, 50]}" class="oe_avatar" />
</div>
</div>
</setting>
</block>
</div>
</field>
</record>
</odoo>
部分代码内容已省略........详情请查看文件结尾链接。
安装插件
-
下载插件
-
上传插件到服务器
将下载的插件包解压缩,并上传至您的Odoo 17服务器中的
addons
目录。 -
更新应用列表
登录您的Odoo后台,进入应用菜单,点击“更新应用列表”按钮。
-
安装插件
在应用列表中搜索
custom_favicon_and_title
,点击安装按钮完成插件的安装。
设置标题和Favicon
-
进入设置界面
插件安装完成后,进入设置菜单,在“常规设置”中找到
title and favicon
配置部分。 -
配置标题
在标题配置项中,输入您希望显示在浏览器标签页的标题。例如,“我的企业管理系统”。
-
配置Favicon
点击Favicon配置项的上传按钮,选择您希望显示的图标文件。建议使用尺寸为16x16像素或32x32像素的.ico或.png文件。
-
保存设置
配置完成后,点击保存按钮使设置生效。
验证设置
完成上述配置后,刷新浏览器页面,即可看到浏览器标签页的标题和Favicon已经更新为您所设置的内容。如果没有看到更改,请清除浏览器缓存后再尝试。
结语
通过使用custom_favicon_and_title
插件,您可以轻松地为Odoo 17系统设置个性化的标题和Favicon,从而提升系统的品牌识别度和用户体验。
购买和下载custom_favicon_and_title
插件,请访问以下插件地址。