No.1免费开源ERP:Odoo自定义字段添加到配置页中的技术分享

embedded/2024/12/27 15:22:16/

文 / 开源智造(OSCG)· Odoo亚太金牌服务

在Odoo18之中,配置设定于管控各类系统配置层面发挥着关键之效用,使您能够对软件予以定制,以契合您特定的业务需求。尽管 Odoo 提供了一组强劲的默认配置选项,然而有时您或许需要增添自定义字段,从而能更好地与您的业务流程相契合。本指南将引领您达成在 Odoo 18 中向配置设定添加自定义字段的进程,并以其他交付选项拓展 Odoo 18 POS(销售点)配置的实际范例。

在 Odoo 当中,配置设置经由 res.config.settings 模型予以管理。该模型充作管理模块特定设置的集中之所,这些设置的范畴涵盖自常规的系统首选项至单个模块的特定配置选项。借由对该模型进行扩展,您能够增添契合您独特需求的新字段,进而确保您的配置设置尽可能完备且具有相关性。

扩展配置设置能够让您融入默认 Odoo 配置所未涵盖的其他参数。这对于那些需要标准选项未能涵盖的特定设置的模块而言,尤为有用。譬如,于 POS 系统之中,您或许需要对各种交付方式进行配置,并依据您的业务运营启用特定的选项。凭借添加自定义字段,您能够为用户给予更为定制化且功能更强大的设置。

将自定义字段添加到配置设置

要将自定义字段添加到 Odoo 18 中的配置设置,请按照以下关键步骤操作:

定义自定义域

第一步是通过增添自定义字段来拓展 res.config.settings 模型。此过程牵涉到创建一个新的 Python 文件,您能够于其中界定其他字段并指明其属性。举例而言,您或许期望添加一个 Boolean 字段以启用或禁用某些功能,同时添加一个 Many2many 字段来选取各类交付方法。创建一个诸如 res_config_settings.py 的 Python 文件,用以拓展 res.config.settings 模型。

from ast import literal_eval
from odoo import api, fields, models
class ResConfigSettings(models.TransientModel):"""Extension of 'res.config.settings' for configuring delivery settings."""_inherit = 'res.config.settings'enable_delivery = fields.Boolean(string='Enable Order Types',help='This field is used to enable setting''order types in settings')delivery_methods = fields.Many2many('delivery.type',string='Order Types',help='Set the delivery methods')@api.modeldef get_values(self):"""Get the values from settings."""res = super(ResConfigSettings, self).get_values()icp_sudo = self.env['ir.config_parameter'].sudo()enable_delivery = icp_sudo.get_param('res.config.settings.enable_delivery')delivery_methods = icp_sudo.get_param('res.config.settings.delivery_methods')res.update(enable_delivery=enable_delivery,delivery_methods=[(6, 0, literal_eval(delivery_methods))] if delivery_methods else False,)return resdef set_values(self):"""Set the values. The new values are stored in the configuration parameters."""res = super(ResConfigSettings, self).set_values()self.env['ir.config_parameter'].sudo().set_param('res.config.settings.enable_delivery', self.enable_delivery)self.env['ir.config_parameter'].sudo().set_param('res.config.settings.delivery_methods',self.delivery_methods.ids)return res

创建自定义视图

在定义好自定义字段之后,下一步乃是创建一个视图,此视图会于配置设置当中展示这些字段。这关联到定义一个 XML 文件,该文件明确了新字段于现存配置设置表单里的显示形式和位置。借助 XML,您能够将自定义字段融入到设置视图的相应部分之中,保证它们易于获取和逻辑排布。

若要将自定义字段整合至 POS 配置设置表单当中,请于文件中定义 XML 视图,例如:res_config_settings_views.xml

<?xml version="1.0" encoding="UTF-8"?>
<odoo><!-- Define a view to extend POS configuration settings with delivery options --><record id="view_pos_configuration_form" model="ir.ui.view"><field name="name">pos.config.view.form.inherit.pos.order.types</field><field name="model">res.config.settings</field><field name="inherit_id" ref="point_of_sale.res_config_settings_view_form"/><field name="arch" type="xml"><xpath expr="//block[@id='pos_accounting_section']" position="after"><div class="row mt16 o_settings_container"><div class="col-12 col-lg-6 o_setting_box"><div class="o_setting_left_pane"><field name="enable_delivery"/></div><div class="o_setting_right_pane"><label for="enable_delivery"/><div class="text-muted">Delivery products based on order types</div><div class="content-group mt16" invisible="enable_delivery == False"><field name="delivery_methods" widget="many2many_tags"/></div></div></div></div></xpath></field></record>
</odoo>

在定义完自定义字段并创建好视图之后,您需要对模块列表予以更新,并安装自定义模块。此步骤能够确保您的新字段融入到 Odoo 系统当中且可供运用。通过对模块列表进行更新以及安装模块,您能够让您的自定义配置设置在 Odoo 界面中得以显现并发挥效用。

于 Odoo 18 之中将自定义字段添加至配置设置,能够增强 Odoo 实例的灵活性与功能。借由扩展 res.config.settings 模型并创建自定义视图,您能够融入满足特定业务需求的其他参数。此种方法不但能够优化用户体验,还能够确保您的配置设置与您的操作要求保持契合。

无论您是对 POS 设置进行自定义,还是配置其他模块,添加和管理自定义字段的能力,皆为定制 Odoo 以适配您的业务流程提供了极具价值的选项。经由本指南,您能够安心地拓展 Odoo 配置设置,并强化系统的功能。


http://www.ppmy.cn/embedded/149196.html

相关文章

图像处理中的图像配准方法

目录 图像处理中的图像配准是什么&#xff1f; 图像配准中使用的变换模型类型 1.仿射变换 2. 射影变换&#xff08;单应性&#xff09; 3.非刚性变换&#xff1a; 图像配准方法的类型 基于特征的方法 1. SIFT (Scale-Invariant Feature Transform) 2. SURF (Speeded-U…

sentinel学习笔记5-资源指标数据统计

本文属于sentinel学习笔记系列。网上看到吴就业老师的专栏&#xff0c;写的好值得推荐&#xff0c;我整理的有所删减&#xff0c;推荐看原文。 https://blog.csdn.net/baidu_28523317/category_10400605.html 资源指标数据统计 回顾下责任链&#xff1a;Sentinel 学习笔记3-责…

ML-Agents 概述(二)

注&#xff1a;本文章为官方文档翻译&#xff0c;如有侵权行为请联系作者删除 ML-Agents Overview - Unity ML-Agents Toolkit–原文链接 ML-Agents 概述&#xff08;一&#xff09; ML-Agents 概述&#xff08;二&#xff09; 训练方法&#xff1a;特定环境 除了上一节介绍的…

STM32-笔记17-PWM波型

一、介绍 PWM波形&#xff08;Pulse Width Modulation&#xff0c;脉冲宽度调制波形&#xff09;是一种占空比可变的脉冲波形。这种调制方式通过改变脉冲的宽度来控制电路中的信号强度和频率。具体来说&#xff0c;PWM波形中的高电平持续时间和低电平持续时间可以根据需要进行调…

LeetCode - Google 校招100题 第7天 序列(数据结构贪心) (15题)

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/144744418 相关文章: LeetCode 合计最常见的 112 题: 校招100题 第1天 链表(List) (19题)校招100题 第2天 树(Tree) (21题)校招100题 第3天 动态规划(DP) (

大学生党建系统:跨平台开发与多终端适配

3.1 系统可行性分析 开发一款程序软件不仅需要时间&#xff0c;也需要人力&#xff0c;物力资源。而进行可行性分析这个环节就是解决用户这方面的疑问&#xff0c;看看程序在当前的条件下是否可以进行开发。 3.1.1 技术可行性分析 此程序选用的开发语言是Java&#xff0c;这种编…

linux socket编程之udp_dict_serve服务端--引入配置文件

注意&#xff1a;本篇博客只是对上一篇博客功能的增加 1.创建配置文件(翻译) Dict.txt apple: 苹果 banana: 香蕉 cat: 猫 dog: 狗 book: 书 pen: 笔 happy: 快乐的 sad: 悲伤的 run: 跑 jump: 跳 teacher: 老师 student: 学生 car: 汽车 bus: 公交车 love: 爱 hate: 恨 hell…

在Python如何用Type创建类

文章目录 一&#xff0c;如何创建类1&#xff1a;创建一个简单类2&#xff1a;添加属性和方法3&#xff1a;动态继承父类4&#xff1a;结合元类的使用总结 二.在什么情境下适合使用Type创建类1. **运行时动态生成类**2. **避免重复代码**3. **依赖元类或高级元编程**4. **动态扩…