Odoo
Odoo 是一系列开源商业应用程序套装,此套装可以满足公司的绝大部分应用需求,例如,基本的进销存管理、采购、销售、MRP生产制造、质量管理、HR、休假管理、用车管理、IM通讯、CRM客户关系管理、电子商务、网站,财务会计、资产管理、WMS仓库管理、POS连锁、项目管理、条码、PLM等等。
中亿丰数字科技集团有限公司
DTCloud是一套基于Python+Go开源商业应用程序.主要面向建筑工程行业,物联网行业,数字化行业,打造的企业信息一体化的解决方案。
展开
-
Odoo中的Create方法及其用法
在上述示例中,我们首先获取了"Product"模型的对象,然后定义了要创建的产品的字段值。最后,通过调用Create方法,我们成功创建了一个新的产品记录,并将其赋值给变量new_product。在Odoo开发中,使用Create方法可以方便地创建新的记录,并将其存储在数据库中。上述代码中,我们创建了一个新的订单记录,并通过"partner_id"字段关联到特定的合作伙伴记录。其中,model是目标模型的名称或模型对象,values是一个字典,包含要创建的记录的字段值。上述代码将同时创建三个产品记录。原创 2023-06-21 09:18:38 · 470 阅读 · 0 评论 -
制作巡更点二维码
5.图片名称填写xlsx文件内填写的巡检路线名称,图片选择路线截图,路线id选择对应路线,来源填写mobile,点击保存。6.点击动作,点击复制,修改来源字段为pc(每条巡检路线,设置两条巡检路线记录,仅来源字段不同)1.参考材料1标注的点位信息,将点位和路线信息按照下图格式输入材料2中。右击运行脚本文件,巡检点二维码会保存在(桌面–路线二维图)文件中。点击标注的点位,点位名称必须和xlsx文档中保持一致(如下图)2.修改完成配置文件后,导入修改后的配置文件。注:复制的巡检图也要添加巡检点位(如下图)原创 2023-06-13 13:50:07 · 191 阅读 · 0 评论 -
odoo many2many page组件
Many2many Page组件提供了一个方便的界面,让用户可以直接在视图中管理Many2many字段的关联记录,而无需打开单独的弹窗或页面。使用Many2many Page组件后,当用户打开该视图时,将显示一个表格,其中包含与Many2many字段相关联的所有记录。请注意,使用Many2many Page组件时,你需要确保Many2many字段的适当配置和权限设置,以便与关联模型正确交互并限制用户的访问权限。,我们将Many2many Page组件应用于该字段。是Many2many字段的名称,通过将。原创 2023-06-09 09:05:02 · 274 阅读 · 0 评论 -
odoo rpc many2many 查询
请注意,在使用RPC查询Many2many字段时,你需要了解Many2many字段的数据结构和关联模型之间的关系,以便正确构建查询条件并处理查询结果。该方法接受一个条件列表作为参数,并返回满足条件的记录的ID。方法并提供合适的条件,你可以获取满足查询条件的Many2many字段关联记录的ID。在连接过程中,你需要提供Odoo实例的URL、数据库名称、用户名和密码等信息。是你要匹配的Many2many字段关联记录的ID。是你要执行查询的Many2many字段的名称,通过RPC连接,你可以调用Odoo模型的。原创 2023-06-08 16:30:12 · 284 阅读 · 0 评论 -
Odoo集成MQTT
【代码】Odoo集成MQTT。原创 2023-06-06 13:48:58 · 511 阅读 · 1 评论 -
高级视图 (日历视图)
tree视图表现出来是列表视图,列表中一行一纪录。可以根据每行纪录的某字段值不同而把每行以不同样式显示。原创 2023-05-29 09:45:19 · 50 阅读 · 0 评论 -
ODOO开发教程之图表
指定默认显示的图形,默认为bar,可选项有‘pie’、‘line’如果type=‘row’,按指定字段分组,每个分组都有自己的行。如果type=‘col’,根据指定字段,按列进行分组。如果type=‘measure’,需要聚合的字段。仅在bar中使用,对数据进行堆叠展示。......原创 2022-07-28 16:29:43 · 3390 阅读 · 0 评论 -
ODOO开发教程之透视表
disable_linking设置为True删除表格单元格到列表视图的链接。display_quantity设置为true默认显示“数量”列。如果type=‘row’,按指定字段分组,每个分组都有自己的行。如果type=‘col’,根据指定字段,按列进行分组。如果type=‘measure’,需要总计的字段。default_order默认排序字段。...原创 2022-07-28 16:24:58 · 3451 阅读 · 0 评论 -
odoo 报表
odoo的报表引擎使用的是QWeb,关于QWeb的的更多内容,会在第二部分中有单独的篇章介绍,目前只需要知道,QWeb是odoo自己开发的一套模板渲染引擎即可。下面介绍一下编写报表的步骤首先,我们需要定义一个报表:报表定义有简化的写法:这在系统中将会生成一条记录(系统设置-技术-报表):其中,binding_model_id决定了该按钮绑定在那个模型上面显示。Odoo的报表页面想要自己画还是比较繁琐的,通常我们可以参考既有的报表格式进行参照修改。看一个我自己写的报表页面:web.html_con原创 2022-06-30 10:51:44 · 1372 阅读 · 0 评论 -
Odoo集群部署高可用方案
架构图说明:一、做高可用总共8台服务器:客户端接入使用用域名加Https 方式访问,可以在传输层面对客户的数据进行加密和防篡改,而且该操作对用户无感,用户无需进行特殊配置,增强用户使用体验。1、采用2台Nginx进行反向代理,连接Odoo集群,Redis和文件服务器单独部署,数据库使用Postgresql 主备模式。两台Nginx使用Keepalive实现高可用,对外使用虚拟IP提供服务,可以根据客户需要配置成双活或者热备模式,确保代理层的高可用。根据客户接入的源IP分配到后端不同的Odoo应用。原创 2022-06-30 09:56:37 · 2101 阅读 · 2 评论 -
odoo开发-应用模块统一参考标准
- 各个目录含义 > api 提供外部调用接口 > controller 控制器 > data 数据 > demo 必须要有demo,用户需要知道怎么操作 > doc 放入相关文档,如doc等,用于介绍项目或其它 > edi 数据交换 > i18n 语言目录 > models 模型定义 > report 报表相关 > security 权限相关 > static 静态文件等 > tests 存放python或yml测试用例 > views 视图模板 > wizard 存放临时的原创 2022-06-01 14:51:55 · 9429 阅读 · 1 评论 -
odoo里面的patch用法
/** @odoo-module **/const patchMap = new WeakMap();/** * Patch an object * * If the intent is to patch a class, don't forget to patch the prototype, unless * you want to patch static properties/methods. * * @param {Object} obj Object to patch *原创 2022-05-31 13:57:27 · 990 阅读 · 0 评论 -
如何在odoo官方市场上发布应用
前言简单介绍一下发布Odoo应用的流程。一、前提条件科学上网,便于登陆 https://apps.odoo.com/apps 和 https://www.github.com 进行大量操作。磨刀不误砍柴工。二、操作步骤1.创建Github账号,登陆并建立代码仓库笔者创建的仓库名为:appstore ,根据公司的具体需求建立即可。注意选择Public或Private。公司代码原则上Private。 之前遇到一个生手,上班第一天把公司代码上传github并公开,第二天被公司的监控系统发现,直接走人原创 2022-05-30 09:29:52 · 1563 阅读 · 0 评论 -
python的类里调用odoo方法
通过http接口方式if __name__ == '__main__': import requests import json url = "http://127.0.0.1:8080/fmcg/test/reg/api" payload = json.dumps({ "code": "111", "name": "111" }) headers = { 'Content-Type': 'applicati原创 2022-05-21 11:04:36 · 1441 阅读 · 0 评论 -
JavaScript-odoo
JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式一、标准JavaScript 是大家所了解的语言名称,但是这个语言名称是商标( Oracle 公司注册的商标)。因此,JavaScript 的正式名称是 ECMAScript 。1996年11月,JavaScript 的创造者网景公司将 JS 提交给国际化标准组织 ECMA(European comput原创 2022-05-12 11:40:24 · 1984 阅读 · 0 评论 -
Html基础知识
超文本标记语言 (英语:HyperText Markup Language,简称:HTML)是一种用于创建网页的标准标记语言。HTML是一种基础技术,常与CSS、JavaScript一起被众多网站用于设计网页、网页应用程序以及移动应用程序的用户界面[3]。网页浏览器可以读取HTML文件,并将其渲染成可视化网页。HTML描述了一个网站的结构语义随着线索的呈现,使之成为一种标记语言而非编程语言。 --来自维基百科原创 2022-05-12 11:01:57 · 2204 阅读 · 0 评论 -
odoo15列表监听点击事件
odoo.define('caini_record_highlighted.web', function (require) { "use strict"; var ListRenderer = require("web.ListRenderer"); var session = require('web.session'); var rpc = require('web.rpc'); var core = require('web.core'); var原创 2022-05-11 13:50:23 · 1381 阅读 · 0 评论 -
odoo 上下文对象
严格地说,上下文并不是一类对象,它只是一个字典。但是它却在数据传递过程中有着非常重要的作用。环境变量中的上下文对象上下文在环境变量的创建过程中就被赋值了,不过传入的上下文被frozendict化了,因此环境变量中的上下文是不可变的,不可以通过赋值的方式试图去改变它的值。def __new__(cls, cr, uid, context, su=False): ... # otherwise create environment, and add it in the set se原创 2022-05-10 16:10:45 · 1526 阅读 · 0 评论 -
odoo里面 Domain
Domain的使用场景Domian使用的场景非常多,比如:search方法中的domian过滤条件视图中的过滤条件视图属性中的过滤条件过滤规则中的过滤条件不同的场景下的过滤条件略有不同。视图中的domainuid: 当前用户的UID视图中的domain只支持简单类型的值,比如,字符、整形、浮点型等。也就是说,不支持通过属性方式的引用:[(‘usage’,‘=’,‘internal’),(‘id’,‘=’,current_user.id)]current_user字段是当前原创 2022-05-10 11:24:29 · 1537 阅读 · 0 评论 -
ODOO里面ORM方法
odoo开发的大多数场景都是基于它的ORM框架进行的, 一少部分要求性能的场景才会涉及到原生SQL的使用. 本章我们将带大家认识基本的ORM方法, 可以满足我们大部分场景的开发.下面是一个方法的列表, 可以点击迅速浏览相应的介绍. 最基础的三大方法(create write unlink)已经在第一部分介绍过了,本章不再赘述.readread_groupseach方法name_get方法name_search方法fields_get_keysload_viewsfields_view_g原创 2022-05-10 10:14:57 · 2104 阅读 · 0 评论 -
odoo附件接口
新加附件预览下载接口:解决预览图片可能存在未登陆图片看不到问题:import base64import osimport odoofrom odoo import httpfrom odoo.http import requestfrom odoo.tools import image_processimport mimetypesModuleBasedir=os.path.dirname(os.path.dirname(__file__))'''文件存储:附件、图片'''clas原创 2022-05-09 09:36:59 · 1536 阅读 · 0 评论 -
odoo 在form视图中创建按钮并调用后台方法
在 from 视图中,允许增加 button ,并调用后台方法。实现方式:在表单视图的 form 标签中,插入 header 标签,在 header 标签中,定义button ,并在当前模块中,定义后台方法,就像这样,type=object ,name = 后台方法名: <!--Form View--> <record id="view_zerone_books_form" model="ir.ui.view"> <fi转载 2022-05-06 14:38:34 · 1305 阅读 · 0 评论 -
odoo 快速处理主从表关系 (6,0,[IDS])实例
主表class RokeSaleDelivery(models.TransientModel): _name = "roke.sale.delivery" _description = "Roke Sale Delivery" warehouse_id = fields.Many2one('stock.warehouse', string='Warehouse') order_id = fields.Many2one('sale.order', string="O转载 2022-05-05 13:37:41 · 1471 阅读 · 0 评论 -
odoo在tree上加button---原生功能
<tree string="Manufacturing Orders" js_class="lazy_column_list" default_order="priority desc, date_planned_start desc" multi_edit="1" sample="1" decoration-info="state == 'draft'"> <header> <butto.原创 2022-05-05 11:26:10 · 1421 阅读 · 1 评论 -
odoo日志的配置及使用
概述当应用处于生产环境时,日志提供了有价值的运行时调试及监控信息,并且,也是一个有用的调试工具对于处于开发阶段的应用来说。此文描述在Odoo8.0中日志的配置、使用及实现日志配置Odoo使用Python标准日志库logging。但是,它使用一种特殊的配置语法来为其模块配置日志级别。以下为Odoo日志配置的完整选项:logfile:日志文件名,比如opt/odoo.log. 如果不设置,则默认为stdout,即输出到控制台logrotate:True/False.如果设置True,每天创建一个文件,转载 2022-04-28 09:51:51 · 2032 阅读 · 0 评论 -
Odoo之树形列表批量更改
# -*- coding: utf-8 -*-# Part of Odoo. See LICENSE file for full copyright and licensing details.from odoo import models, tools, _, apiimport xmltodictimport jsonclass BaseModel(models.AbstractModel): _inherit = 'base' @api.model def原创 2022-04-27 09:29:35 · 1227 阅读 · 0 评论 -
Odoo里面的read_group用法
info_obj = request.env['talent.information'].sudo()talent_info = info_obj.read_group(domain=[], fields=['company_id:count'], groupby=['company_id'], lazy=False原创 2022-04-26 11:29:03 · 2066 阅读 · 0 评论 -
ODOO 菜单
菜单是odoo种最常见的组件之一,其基本的作用就是作为前端和动作(action)的纽带。菜单的定义,我们在第一部分已经接触到,并且写了很多的示例,相信读者已经熟练的学会了定义一个菜单并绑定相应的动作。本章,我们将着重认识菜单的本质是什么,以及它所拥有的哪些高级属性,以及它的高级应用。菜单的本质菜单实际上就是odoo中的一个对象,被命名为ir.ui.menu。菜单对象所拥有的常见属性有如下几个:name : 菜单的名字complete_name: 完整的路径,这个是由系统自动得出的parent原创 2022-04-25 10:09:58 · 1550 阅读 · 0 评论 -
odoo 通过iframe调用Echarts生成大屏
odoo 通过iframe调用Echarts生成大屏odoo通过echarts的生成大屏的步骤::流程图:操作步骤:1、建立一个html的静态页面(index.html),嵌入echarts<script src="echarts.js"></script>echarts.js文件可在echarts的官方中文网站下载https://echarts.apache.org/examples/zh/index.html2、通过iframe将index.html在odoo转载 2022-04-25 09:43:40 · 2324 阅读 · 0 评论 -
odoo的权限机制
权限Odoo的权限管理, 从粗到细可以大概分为四个等级, 对象级 视图级 字段级 记录级, 什么意思呢, 总结起来大概如下面的描述:对象级: 以对象模型为基准的权限划分, 可以理解为数据库中表级的访问权限控制视图级: 以视图为基准的权限划分, 不同用户组的用户可以看到不同的视图字段级: 以字段为基准的权限划分, 对字段的访问权限控制记录级: 以规则为基础的权限划分, 不同的记录适用于不同的规则体系下的用户权限访问控制在了解这4个层级的权限控制之前, 我们首先要认知Odoo权限控制系统中的两大主原创 2022-04-24 08:35:49 · 2737 阅读 · 3 评论 -
Python DTCloud 身份证解析 第十七节
# post 根据身份证解析postdata = {'model': 'ir.http', # 当前对象 'function_name': '_api_idcard', # 返回一条记录 'name': '320924198205211751', # 返回一条记录}r = requests.post('http://127.0.0.1:8072/api/v1/public_getattr/0', data=postdata)print(r.text.原创 2022-04-24 08:37:54 · 1515 阅读 · 0 评论 -
Python DTCloud 公开的函数接口 第十六节
2.6.1 接口描述 描述 定义 接口名 /api/v1/public_getattr/0 请求方式 POST 请求格式 application/x-www-form-urlencoded 本接口无需校验access_token2.6.2 输入参数以下请原创 2022-04-23 13:09:07 · 1437 阅读 · 0 评论 -
Python DTCloud API 无后台调用 第十五节
测试调用接口实用于后台未写接口时前台定义演示数据,_api_test 所有对象都支持 postdata = { 'access_token': 'f198ef2955f3e7f2f7512797c9ef5525', #获取access_token 每天不一样目前 'model': 'res.partner', #当前对象 'uid': 2, #当前用户 uid 'partner_id': 3, #当前用户partner_id 'lang': 'zh原创 2022-04-23 13:06:13 · 1558 阅读 · 0 评论 -
Python DTCloud API 校验函数接口 第十四节
2.6.1 接口描述 描述 定义 接口名 /api/v1/getattr/0 请求方式 POST 请求格式 application/x-www-form-urlencoded 本接口会校验access_token2.6.2 输入参数以下请求参数列表仅列出原创 2022-04-23 13:04:55 · 1391 阅读 · 0 评论 -
Python DTCloud API 统计 第十三节
2.5.1 接口描述 描述 定义 接口名 /api/v1/search_count/0 请求方式 POST 请求格式 multipart/form-data 本接口会校验access_token2.5.2 输入参数以下请求参数列表仅列出了接口请求参数和部原创 2022-04-23 13:03:44 · 1323 阅读 · 0 评论 -
Python DTCloud API 查询 第十二节
2.5.1 接口描述 描述 定义 接口名 /api/v1/page/0 请求方式 POST 请求格式 application/x-www-form-urlencoded 本接口用来查询信息,会校验access_token2.5.2 输入参数以下请求参数列原创 2022-04-24 00:00:00 · 1225 阅读 · 0 评论 -
Python DTCloud API 修改 第十一节
2.4.1 接口描述 描述 定义 接口名 /api/v1/write/81 请求方式 POST 请求格式 application/x-www-form-urlencoded 本接口用来修改,此接口会校验当前access_token2.4.2 输入参数以下原创 2022-04-23 13:01:15 · 1217 阅读 · 0 评论 -
Python DTCloud API 读取 第十节
2.3.1 接口描述 描述 定义 接口名 /api/v1/read/7 请求方式 POST 请求格式 application/x-www-form-urlencoded 本接口会校验access_token2.3.2 输入参数以下请求参数列表仅列出了接口原创 2022-04-23 12:59:45 · 1420 阅读 · 0 评论 -
Python DTCloud API 删除 第九节
2.2.1 接口描述 描述 定义 接口名 /api/v1/unlink/82 请求方式 POST 请求格式 application/x-www-form-urlencoded 本接口用来删除数据,此接口会校验access_token是否是该数据的拥有者(拥有者并原创 2022-04-23 12:58:15 · 1197 阅读 · 0 评论 -
Python DTCloud API 创建 第八节
2.1 创建2.1.1 接口描述 描述 定义 接口名 /api/v1/create/0 请求方式 POST 请求格式 application/x-www-form-urlencoded 本接口用来创建单据。若要打开当前记录,请使用/api/v1/read/7原创 2022-04-23 12:56:43 · 1309 阅读 · 0 评论