odoo自定义模块开发

odoo自定义模块的属性值清单
name                模块名字
summary          可以看作简短介绍吧
description       可以看作详细介绍
author                模块作者
website             模块网站
category            模块分类
version              模块版本号
license              模块版权信息,默认是AGPL-3
depends           模块依赖
data                   模块必加载的数据文件
demo                 demonstration下才加载的数据文件
installabel          默认True,可设为False禁用该模块
auto_install        默认False,如果设为True,则根据其依赖模块,如果依赖模块都安装了,那么这个模块将自动安装,这种模块通常作为胶合(glue)模块。
application         默认False,如果设为True,则这个模块成为一个应用了。你的主要模块建议设置为True,这样进入Odoo后点击本地模块,然后默认的搜索过滤就是 应用 ,这样你的主模块会显示出来。
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.

{
    'name': '英雄联盟',
    'version': '1.1',
    'category': 'Sales',
    'sequence': 0,
    'summary': '这是最好的产品,没有之一!',
    'description': """
    犯我德邦者,虽远必诛。
    """,
    'author': "陈威",
    'website': "http://www.baidu.com",
    'depends': ['base'],
    'data': [
    ],
    'qweb': [],
    'application': True,
}

模块文件夹管理

data文件夹 ,放着demo和data xml
models文件夹,放着模型定义
controllers文件夹,http路径控制
views文件夹,网页视图和模板
static文件夹,网页的一些资源,里面还有子文件夹:css,js,img,lib等等。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1 ERP 简介 1 1.1 Odoo 历史 1 1.2 ERPⅡ 或商业智能化 2 1.2.1 什么是商业智能 4 2 Odoo 框架简介 7 2.1 python 模块分析 8 2.2 python2 还是 python3 8 3 Odoo 的安装和配置 9 3.1 PostgreSQL 数据库 10 3.2 Ubuntu14.04 下可能缺失的软件包 11 3.3 网页显示 node.js 方面 11 3.4 其他问题 12 3.5 通过命令行运行时的配置 12 3.5.1 –xmlrpc-port=8888 12 3.5.2 –addons-path=addons 12 3.5.3 数据库的一些配置 13 3.5.4 –save 13 3.6 将安装环境封装起来 13 3.7 文档编译 14 4 初入 Odoo 17 4.1 管理数据库 17 4.2 登录界面 18 4.3 Administrator 首选项 19 4.4 导入一个翻译 20 4.5 新的 Demo 用户 20 4.6 模块管理 21 4.7 修改公司信息 21 4.8 打开技术特性支持之后 22 4.9 进销存和财务系统的抽象讨论 22 4.9.1 以采购部门为例 23 4.10 安装和配置模块 24 5 创建自己的模块 27 5.1 快速生成模块骨架 27 5.1.1 python 模块的 init 文件 28 5.1.2 作为 Odoo 模块的说明文件 29 5.2 安装自定义模块 32 5.2.1 模块文件夹管理 32 5.3 一个简单的演示模块 33 5.3.1 controllers 33 5.3.2 views 33 5.3.3 models 35 5.3.4 security 37 5.3.5 美化网页 38 5.4 加分项: 通过 pgadmin3 来查看数据库 39 5.4.1 安装 39 5.4.2 连接服务器 39 5.4.3 图形化查询 40 6 Odoo 开发基础: 请假模块第一谈 43 6.1 纯理论讨论 43 6.2 定义模型 45 6.3 加入菜单 46 6.3.1 act_window 的属性 48 6.3.2 menuitem 的属性 48 6.4 视图优化 48 6.4.1 修改 tree 视图 49 6.4.2 修改 form 视图 49 6.5 完整的 views.xml 51 6.6 给模块加个图标 53 7 Odoo 开发基础: 工作计划模块第一谈 55 7.1 数据访问权限管理 61 7.1.1 access rule 62 7.1.2 record rule 62 8 扩展现有模块-继承机制 65 8.1 给模块增加 field 65 8.2 修改已有的 field 66 8.3 重载原模型的方法 66 8.3.1 什么是 Recordset 67 8.3.2 Odoo 里面的 domain 语法 68 8.3.3 recordset 的 search 方法 69 8.4 视图 xml 文件的继承式修改 70 8.4.1 视图元素添加 71 8.4.2 原视图元素属性修改 71 8.5 多态继承 72 8.6 修改其他数据文件 73 8.6.1 删除记录 73 8.6.2 更新数据 73 8.7 委托继承 74 9 理解模型内的数据文件 75 9.1 理解外部 id 75 9.2 使用外部 id 77 9.3 导出或导入数据文件 77 9.4 快捷输入标签 78 9.5 用 field 标签设置 78 9.5.1 eval 语法 78 9.5.2 ref 属性 79 9.5.3 One2many 和 Many2many 的 eval 赋 79 10 Odoo 开发基础: 请假模块第二谈 81 10.1 本例涉及到的数据库表格简介 89 10.2 工作流概念入门 89 10.2.1 定义工作流对象 90 10.2.2 创建节点 91 10.2.3 创建连接 91 11 Odoo 模型层详解 93 11.1 _name 93 11.2 各个表头属性 93 11.3 name 字段 94 11.4 具体模型的数据 94 11.5 模型间的关系 95 11.6 工作流 95 12 Odoo 视图层详解 97 13 附录 99 13.1 Odoo 里老的 API 99 13.2 PostgreSQL 数据库命令行操作 99 13.2.1 命令行数据库备份 99 13.3 反向代理 (reverse proxy) 99 13.3.1 安装 ngnix 软件 100 13.3.2 强制 https 连接 102 13.3.3 nginx 优化 102 13.3.4 轮询机制 102 13.4 跟踪项目源码初始化进程 102 13.4.1 base 模块 104 13.4.2 web 模块 105 13.4.3 web_kanban 模块 105 13.5 配置会计科目 105 13.5.1 配置会计科目类型 105 13.5.2 配置会计科目 106 13.6 分录 106 13.7 新建业务伙伴 106 13.7.1 新建业务伙伴标签 106 13.7.2 新建客户 106 13.8 创建新的产品 107 13.9 设置会计年度 107 13.10向供应商下单 107 13.11会计学入门 107 13.11.1财务报表 108 13.11.2原始凭证 108 13.11.3账户 108 13.11.4分类帐 109 13.11.5会计科目表 109 13.11.6报告期间 110 13.12参考资料 110
Odoo 是一个强大的开源企业资源计划(ERP)系统,它提供了许多内置的小部件(Widgets)用于在应用程序中构建用户界面。但是,有时候这些内置小部件不能完全满足我们的需求,我们需要自定义小部件以实现更加个性化的功能。 在本教程中,我将向您展示如何创建自定义小部件。我们将创建一个简单的小部件,该小部件将显示一个按钮,当用户单击它时,会将其文本转换为大写字母。 步骤1:创建模块 首先,我们需要创建一个新的Odoo模块。您可以使用Odoo Studio或手动创建一个新模块,方法是在Odoo中创建一个新的文件夹,并在其中创建一个__init__.py文件以及一个名为__manifest__.py的文件。 __manifest__.py文件应包含以下内容: ``` { 'name': 'Custom Widget Demo', 'version': '1.0', 'category': 'Tools', 'summary': 'Demo module for custom widget development', 'depends': ['base'], 'data': [ 'views/assets.xml', ], 'auto_install': True, } ``` 在上面的代码中,我们定义了模块的名称,版本,类别,摘要和依赖项。我们还定义了一个视图文件assets.xml,稍后我们将在其中定义我们的小部件。 步骤2:创建小部件 现在我们需要创建我们的自定义小部件。我们将创建一个名为CustomButton的小部件。在模块中创建一个新的文件夹,名为widgets,并在其中创建一个新的Python文件,名为custom_button.py。该文件将包含以下代码: ``` from odoo import fields, models class CustomButton(models.AbstractModel): _name = 'custom.button' _description = 'Custom Button Widget' text = fields.Char() def button_action(self): self.text = self.text.upper() ``` 在上面的代码中,我们定义了一个名为CustomButton的抽象模型。我们还定义了一个名为text的字段,该字段将用于存储用户输入的文本。我们还定义了一个名为button_action的方法,该方法将在用户单击按钮时调用,并将文本转换为大写字母。 步骤3:定义小部件视图 现在我们需要定义小部件的视图。在模块中创建一个新的文件夹,名为views,并在其中创建一个名为assets.xml的新文件。文件应包含以下代码: ``` <?xml version="1.0" encoding="utf-8"?> <odoo> <template id="assets_backend" name="Custom Button Widget" inherit_id="web.assets_backend"> <xpath expr="//script[last()]" position="before"> <script type="text/javascript" src="/custom_widget_demo/static/src/js/custom_button.js"></script> </xpath> <xpath expr="//div[@class='o_form_sheet_bg']" position="inside"> <div class="o_custom_button"> <button t-attf-class="btn btn-primary o_form_button o_custom_button_button" t-attf-data-id="widget_{{widget_id}}">{{widget.text}}</button> </div> </xpath> </template> </odoo> ``` 在上面的代码中,我们定义了一个名为assets_backend的模板,该模板继承自web.assets_backend。我们还在模板中定义了一个包含一个按钮的div元素。按钮的文本将从小部件的text字段中获取,并且在单击按钮时将调用我们在CustomButton类中定义的button_action方法。 步骤4:定义JavaScript文件 最后,我们需要定义一个JavaScript文件,该文件将响应按钮的单击事件并调用Odoo RPC方法来更新小部件的text字段。在模块的static/src/js文件夹中创建一个新文件,名为custom_button.js,并将以下代码添加到文件中: ``` odoo.define('custom_widget_demo.custom_button', function (require) { 'use strict'; var core = require('web.core'); var Widget = require('web.Widget'); var QWeb = core.qweb; var CustomButton = Widget.extend({ template: 'CustomButton', events: { 'click .o_custom_button_button': '_onClick', }, init: function (parent, options) { this._super.apply(this, arguments); this.text = options.text || ''; }, _onClick: function () { var self = this; this._rpc({ model: 'custom.button', method: 'button_action', args: [[this.id]], }).then(function (result) { self.text = result; self.$('.o_custom_button_button').text(self.text); }); }, }); core.action_registry.add('custom_button', CustomButton); return { CustomButton: CustomButton, }; }); ``` 在上面的代码中,我们定义了一个名为CustomButton的JavaScript对象,并在其中定义了一个模板,该模板对应于我们在assets.xml文件中定义的按钮元素。我们还定义了一个名为_onClick的方法,该方法将在按钮单击事件发生时调用。该方法通过RPC调用我们在CustomButton类中定义的button_action方法,并将返回更新小部件的text字段。 步骤5:注册小部件 最后,我们需要在模块__manifest__.py文件中注册我们的小部件。我们将在data部分中添加以下代码: ``` 'qweb': [ 'static/src/xml/custom_button.xml', ], ``` 现在,我们已经成功地创建了一个自定义小部件。要使用它,请在Odoo中创建一个新的表单视图,并将小部件添加到该视图中。在视图中,您可以看到一个具有文本输入框和一个转换文本为大写字母的按钮的小部件。 总结 在本教程中,我向您展示了如何使用Odoo开发自定义小部件。通过创建自己的小部件,您可以为Odoo应用程序添加更加个性化的功能,并满足特定业务需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值