![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ODOO
文章平均质量分 66
r_nznf
这个作者很懒,什么都没留下…
展开
-
ODOO 之aliyun OSS模块介绍
此套装可满足中小型企业的一切应用需求,例如,企业基本的进销存、采购、销售、MRP生产制造、品保质量保障、企业招聘、员工合同、休假、午餐管理、内部论坛、车队管理、内部聊天IM沟通、客诉追溯管理、CRM客户关系管理、VOIP、E-Shop电子商务、网店、企业官方网站,财务会计、银行对账、资产管理、HR工资管理、预算管理、WMS仓库库存管理、POS街边小摊、社区商店、项目管理、条码、PLM等等。2、在设置,常规设置里,设置好自己的oss参数,也可以直接保存,用我自带的进行测试。......原创 2022-07-28 13:37:14 · 970 阅读 · 3 评论 -
ODOO 12 采购模块之增加供货商
ODOO12 采购模块之增加供应商原创 2021-06-18 09:37:25 · 264 阅读 · 0 评论 -
ubuntu为ODOO12安装 wkhtmltopdf
问题:ODOO 不安装wkhtmltopdf,不会生成PDF文件,会有如下警告:1.下载https://wkhtmltopdf.org/downloads.htmlcd Downloads #进入Downloads 子目录根据系统类型,选择合适的版本,取得下载地址后下载:wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.bionic_amd64.deb原创 2021-05-21 10:29:38 · 380 阅读 · 0 评论 -
ODOO12图书项目使用XML数据文件
CSV 文件是一种展示数据方便简洁的格式,但 XML 文件更为强大,可在加载过程中提供更多的控制。比如,其文件名无需与所导入到的模型名称一致。因为XML格式通过文件内的XML元素可以提供更丰富的信息、更多的内容。在前面的文章中我们已经使用过XML数据文件。视图和菜单项这类用户界面组件实际上都是存储在系统模型中的记录。模块中的XML文件是将这些记录加载到实例数据库的方式。我们将在library_app模块中添加一个数据文件data/book_demo.xml来作为展示,文件内容如下:<?xml ve原创 2020-10-29 20:54:18 · 575 阅读 · 1 评论 -
ODOO12图书项目添加模块数据
模块使用数据文件来加载默认数据、演示数据、用户界面定义和其它需存入数据库的配置。可以选择使用 CSV 或 XML 文件。模块所使用的 CSV 和我们前述使用导入功能时用的文件是一样的。在模块中使用这些文件时,文件名须与要导入数据的模型名一致。例如,导入library.book模型的 CSV 数据文件名应为library.book.csv。CSV 数据文件经常用作导入ir.model.access模型来获取权限定义,通常放在security/子目录下并命名为ir.model.access.csv。演示数据原创 2020-10-25 19:50:21 · 243 阅读 · 0 评论 -
ODOO12图书项目导入导出CSV数据文件
导出数据文件并查看文件结构的简易方式是使用内置的导出功能。通过生成 CSV 文件,我们可以了解手动导入系统所需的格式,或编辑该文件批量导入,甚至是使用它生成我们插件模块的演示数据。下面我们一起来学习从 Odoo 用户界面导入和导出的基础知识。导出数据数据导出是表单视图中的标准功能。要使用该功能, 需要勾选左侧的复选框来选择需导出的行,然后在上方的动作菜单中点击导出选项。首先我们要在图书应用中添加一些带有出版商和作者的图书。下例中我使用此前添加的书籍。我们还需要安装联系人应用,这样可以看到 Partn原创 2020-10-24 07:41:04 · 459 阅读 · 0 评论 -
ODOO12图书项目理解外部标识符的概念
外部标识符,也称为XML ID,是用于唯一标识 Odoo 中特定记录的有可读性的字符串标识符。在Odoo 中加载数据时它们就很重要了,这样可以对已有数据记录进行修改或在其它数据记录中引用它。首先我们将讨论外部标识符的工作原理以及如何对其进行检查。然后我们会学习如何使用网页客户端来查找指定数据记录的外部标识符,在创建插件模块或继承已有模块时需要经常用到。外部标识符的工作原理记录在数据库中的真实标识符是自动分配的序列号,在安装模块时没法预先知道将要分配的具体ID的。外部标识符让我们无需知道真实的数据库 I原创 2020-10-22 21:18:47 · 572 阅读 · 0 评论 -
ODOO12图书项目继承 Web 控制器和模板
Odoo 中的所有功能都带有扩展性,web 功能也不例外,所以已有控制器和模块都能被继承。作为示例,我们将继承图书目录网页,加入前面添加的图书可用性信息:在控制器端添加对查询参数的支持,访问/library/books?available=1过滤出可借阅图书在模板端,添加一个图书不可用的表示继承网页控制器网页控制器不应包含实际业务逻辑,仅集中于展示逻辑。我们可能会需要添加对额外 URL 参数甚至是路由的支持,来改变网页的展示。我们将扩展/library/books来支持available=1参原创 2020-10-22 14:37:20 · 236 阅读 · 0 评论 -
ODOO12图书项目继承Python方法
Python 方法中编写的业务逻辑也可以被继承。Odoo 借用了 Python 已有的父类行为的对象继承机制。作为一个实际的例子,我们将继承图书 ISBN 验证逻辑。在图书应用中仅能验证13位的 ISBN,但老一些的图书可能只有10位数的 ISBN。我们将继承_check_isbn()方法来完成这种情况的验证。在library_member/models/library_book.py文件中添加如下方法:from odoo import api, fields, modelsclass Book(原创 2020-10-21 20:43:22 · 145 阅读 · 0 评论 -
ODOO12图书项目其它模型继承机制
前面我们介绍了模型的基本继承,在官方文档中称为经典继承。这是最常用的继承方式,最容易想到的就是in-place继承。获取模型并对其继承。添加的新功能会自动添加到已有模型中,而不会创建新模型。可以为_inherit 属性传入多个值来继承多个父模型。大多数情况下这通过 mixin 类完成,mixin类是实现可复用的通用功能。也可以像普通模型那样独立使用,像是一个功能容器,可随时加到其它模型中。如在使用_inherit 属性的同时还使用了与父模型不同的_name属性,此时会复用所继承并创建一个新的模型,并带有原创 2020-10-21 13:45:30 · 231 阅读 · 0 评论 -
ODOO12图书项目修改视图和数据
模块中视图和其它数据构件也可通过继承来修改。就视图而言,通常需要添加功能。视图的展示结构在 arch 字段中使用 XML定义。这一 XML 数据可通过定位到所需修改的地方来进行继承,然后声明需执行的操作,如在该处添加 XML 元素。对于剩余的数据元素,它们代表写入数据库中的记录,继承模型可通过写操作来修改它们的值。继承视图表单、列表和搜索视图通过arch XML结构定义。要继承视图,就要一种修改 XML 的方式,也即定位 XML 元素然后对该处进行修改。视图继承的 XML 记录和普通视图中相似,多一个原创 2020-10-19 20:34:56 · 397 阅读 · 0 评论 -
ODOO12图书项目原模型继承
学习项目-继承图书馆应用在前面我们创建了一个图书应用的初始模块,可供查看图书目录。现在我们要创建一个library_member模块,来对图书应用进行扩展以让图书会员可以借书。它继承 Book 模型,并添加一个图书是否可借的标记。该信息将在图书表单和图书目录页显示。应添加图书会员主数据模型Member,类似 Partner 来存储个人数据,如姓名、地址和 email,还有一些特殊字段,如图书会员卡号。最有效的方案是代理继承,自动创建图书会员记录并包含关联 Partner 记录。该方案使得所有的Partn原创 2020-10-17 21:07:25 · 187 阅读 · 0 评论 -
ODOO12图书项目网页和控制器
Odoo 还提供了一个 web 开发框架,可用于开发与后台应用深度集成的功能。第一步我们来创建一个显示有效图书列表的简单网页。在请求http:///library/books页面时会进行响应,所以/library/books是用于实施的 URL。这里我们简短地了解下 Odoo 网页开发。Web控制器是负责渲染网页的组件。控制器是http.Controller中定义的方法,与URL链接(endpoint)绑定。 访问 URL 时执行控制器代码,生成向用户展示的 HTML。我们使用 QWeb 模板引擎方便HT原创 2020-10-16 11:02:26 · 248 阅读 · 0 评论 -
ODOO12图书项目业务逻辑层
业务逻辑层编写应用的业务规则,如验证和自动计算。现在我们来为按钮添加逻辑,通过在模型 Python 类中编写方法来实现。添加业务逻辑上文中我们在 Book表单中添加了一个按钮,用于检查 ISBN 是否有效。现代 ISBN 包含13位数字,最后一位是由前12位计算所得的检查位。我们无需深入到算法的细节,这里是一个实现验证的 Python 方法。应当在class Book(…)中进行添加:@api.multidef _check_isbn(self): self.ensure_one()原创 2020-10-15 16:25:16 · 157 阅读 · 0 评论 -
ODOO12图书项目视图层
视图层为用户界面的描述,视图用 XML 定义,由网页客户端框架生成数据感知的 HTML 视图。可用菜单项开启渲染视图的操作。比如,Users 菜单项处理一个同样名为 Users 的操作,然后渲染一系列视图。有多种可用视图类型,如 list(因历史原因也称为 tree)列表视图和 form表单视图,以及包含过滤项的右上角搜索框由 search 搜索视图定义。Odoo 开发指南写到定义用户界面的 XML 文件应放在views/子目录中。接下我们来创建图书应用的用户界面。下面我们会逐步改进并更新模块来使更改生效原创 2020-10-14 21:13:52 · 181 阅读 · 0 评论 -
ODOO12图书项目设置访问权限
在加载服务时,你可能会注意到输出日志中有一条警告信息:The model library.book has no access rules, consider adding one.提示消息已经很明确了,我们的新模型没有访问规则,所以任何人都可使用。我们已为应用添加了安全组,现在就为模块授权。添加访问权限控制要了解需要哪些信息来为模型添加权限,可访问后台设置>技术>安全>访问权限这里可以看到一些模型的 ACL(Access Control List),表示允许每个安全组对记录原创 2020-10-13 14:54:28 · 229 阅读 · 0 评论 -
ODOO12图书项目模型层
既然 Odoo 已经能识别我们的新模块了,下面就添加一个简单的模型。模型描述业务对象,如商机、销售订单或合作伙伴(用户、供应商等)。模型中有一系列属性,也可定义一些特定业务逻辑。模型通过 Odoo 模板类派生的 Python 类来实现。它直接与数据库对象对应,Odoo 在安装或升级模块时会自动进行处理。框架中负责这部分的是对象关系映射(ORM -Object Relational Mapping)。我们的模块是一个图书管理应用,第一个功能就是管理图书目录,目前这是我们唯一需要实现的模型。创建数据模型原创 2020-10-12 22:19:47 · 267 阅读 · 0 评论 -
ODOO12图书项目创建新应用
一些 Odoo 模块创建新应用,而另一些则对已有应用添加功能或作出修改。虽然两者的技术组件基本相同,但应用会被预期包含一些特征性元素。我们创建的是一个图书应用,所以应包含这些元素,它们是:图标:用于在应用列表中展示顶级菜单项:其下放置所有的应用菜单项应用安全组:通过权限访问仅对指定用户开放添加图标(icon),仅需在模块目录下static/description/子文件夹中放置icon.png文件,前面已经介绍过了。下面我们来添加应用顶级菜单。添加应用顶级菜单项我们创建的是一个新应用,因此应原创 2020-10-11 20:57:43 · 395 阅读 · 0 评论 -
ODOO12图书项目创建新的插件模块
概览图书项目为更好地在本文中探讨,我们将使用一个现实中可以使用的学习项目。一起来创建一个管理图书库的 Odoo 应用。该项目将在后续文章中持续使用,每篇文章都会进行一次迭代,为应用添加新的功能。本文中将创建图书应用的第一个版本,第一个功能是实现图书目录。图书将包含如下数据:标题作者出版社发行日期封面图ISBN:包含检查 ISBN是否有效的功能有效性标记;标识图书是否已对公众发布图书目录可由图书管理员编辑,对图书操作者则仅有可读权限。该目录可通过公共网页访问,仅显示已发布图书。就是这样原创 2020-10-08 17:07:15 · 359 阅读 · 0 评论 -
ODOO12 安装第三方插件
在Odoo 实例中产生新的模块并安装,对于初学者总会容易搞不清。下面一起来熟悉这一点。查找社区模块网络上有很多 Odoo 模块,Odoo应用商店可以下载一系列模块安装到系统中。另一个重要的资源是Odoo 社区联盟(OCA - Odoo Community Association)维护的模块,可在 GitHub 上查找。OCA 是一个协调社区贡献的非营利组织,它同时提升软件质量,推广最佳开发实践和开源价值观。可通过https://odoo-community.org/来进一步了解 OCA。为 Odoo原创 2020-09-24 14:48:49 · 749 阅读 · 0 评论 -
ODOO12数据库选项
进行 Odoo 开发时,经常会使用多个数据库,有时还会用到不同版本。在同一端口上停止、启动不同服务实例,或在不同数据库间切换,会导致网页客户端会话异常。因为浏览器会存储会话的 Cookie。/home/tderp/.conda/envs/odoo12/odoo-dev/odoo/odoo-bin #不过滤数据库,运行ODOO12服务在浏览器中使用私有模式访问实例可以避免这一问题。另一优良实践是在服务实例上开启数据库过滤器,这样可以确保实例仅允许对指定数据库的请求,而忽略其它请求。–db-filte原创 2020-09-23 10:27:26 · 403 阅读 · 0 评论 -
ODOO12修改监听端口,开启多个实例
–http-port=(或-p)参数可以修改实例的监听端口(默认端口8069),不同的端口可以让我们在同一台机器上运行多个实例。下面就可以做个尝试,打开两个终端,第一个中输入/home/tderp/.conda/envs/odoo12/odoo-dev/odoo/odoo-bin --http-port=8070 第二个中输入/home/tderp/.conda/envs/odoo12/odoo-dev/odoo/odoo-bin --http-port=8071 此时就在同一台机器上使用不原创 2020-09-22 15:02:44 · 543 阅读 · 0 评论 -
ODOO12 服务配置文件
Odoo 服务还支持一些其它参数,可通过–help 来查看更多参数:/home/tderp/.conda/envs/odoo12/odoo-dev/odoo/odoo-bin --help我们在下面的部分将会学习一些重要参数,首先我们先学习下如何把当前使用参数保存到配置文件中。Odoo 服务配置文件大多数的参数都可以保存到配置文件中。默认 Odoo 使用.odoorc文件。Linux 系统中缺省的路径是在家目录($HOME)中,而在 Windows 中则和运行 Odoo 的可执行文件放在同一原创 2020-09-21 22:13:57 · 360 阅读 · 0 评论 -
创建ODOO12视图
前面我们创建了一个任务清单模型通过菜单项在用户界面中显示,接下来我们为它创建两个基本视图:列表视图和表单视图。列表视图创建列表视图步骤如下:点击设置>技术>用户界面>视图,点击创建按钮进入视图编辑页面,填入如下值:视图名称: To-do List View视图类型: 树形模型: x_todo_item2、在结构标签下,使用 XML 书写视图的结构,代码如下:<tree> <field name="x_name" /> <原创 2020-09-13 14:06:44 · 314 阅读 · 0 评论 -
配置ODOO12安全权限控制
Odoo自带有权限控制机制,用户仅能使用被授权了的功能。这就意味着我们自建的库功能不对普通用户甚至是管理员开放。Odoo 安全权限通过安全组来设置访问权限。每个用户的权限根据所属组来决定,对于我们的测试项目,我们将创建一个 to-do 用户组,然后通过组来分配可使用功能的用户。我们通常使用 ACL 为某个组赋予指定模块的读或写权限,就当前项目,我们对添加的 to-do 项模型添加读和写权限。此外,我们还可以设置用户对指定模型的记录范围的访问规则。本项目中 to-do 项为用户私有,所以用户仅能访问自己创原创 2020-09-11 21:00:03 · 854 阅读 · 0 评论 -
ODOO12开启超级用户账号
在此前的 Odoo 版本中,admin 用户是一个特权用户可以不受权限控制。Odoo 12就此做了调整,admin 用户属于所有用户安全组,但只是个普通用户。还是存在一个超级用户不受权限控制,但它无法直接登录。我们还是能以超级用户进行操作,当一个用户以系统管理/设置用户组登录时,在激活开发者模式后,开发者工具菜单中有一个成为超级用户选项,或者在登录页面开启开发者模式,则会出一个以超级用户身份登录的隐藏按钮。在激活了超级用户后,右上角的当前用户显示为 OdooBot,该处背景也会变成黄黑间隔的条状,原创 2020-09-10 15:52:34 · 938 阅读 · 0 评论 -
创建ODOO12菜单项
现在有了存储任务清单的模型,应在用户界面中显示它,添加菜单项可实现这一点。我们这里创建一个顶级菜单项直接打开任务清单,一些像联系人(Contacts)这样的应用采取了这种方式,但另外一些则使用了在顶栏中的子菜单项。在开发者模式下点击菜单 设置>技术>用户界面>菜单项目,点击创建按钮即可进入菜单的编辑页面。在该页面中输入如下值:1.菜单: To-do2.上级菜单: 留空3.动作: 选择ir.actions.act_window,然后在右侧下拉框中点击创建和编辑链接打开一个相关原创 2020-09-10 09:04:06 · 659 阅读 · 0 评论 -
创建新的ODOO12模型(Model)
模型是ODOO12应用的基本组件,包含了所需使用到的数据结构和存储。接下来我们就为 To-do 项目添加模型,将包含三个字段:Description 描述Is done? 标记Work team 用户列表如前所述,在开发者模式下通过菜单设置>技术 > 数据库结构>模型 可进入模型创建页面,步骤如下:1、进入模型菜单,点击左上角创建按钮,在弹出页面填入模型说明: To-do Item模型: x_todo_item在进一步添加字段之前可以先进行保存。2、点击保存然原创 2020-09-07 10:55:04 · 603 阅读 · 0 评论 -
ODOO12 为已有模型添加字段
为已有表单添加字段是种常见的自定义操作,我们无需创建自定义模块即可在用户界面中进行实现。就我们 To-do 应用而言,需要可以选取一组用户对 To-do 项进行协作。我们可以通过在 partner 表单中添加标识来找到这些用户,那么接下来为 partner 模型添加一个Is Work Team? 标记。 Partner 模型是 Odoo 内核自带的,无需安装任何应用即可使用,但这样在菜单中会无法查看到。一个简单的方法是安装联系人应用。没安装的朋友可以点击应用菜单搜索该应用并进行...原创 2020-09-01 21:25:12 · 1127 阅读 · 0 评论 -
ODOO12 激活开发者模式
这有利于我们快速修改和添加功能,可用于进行一些添加字段的小调整乃至像创建带有多个模型、视图和菜单项的应用这样的复杂自定义开发。和*激活开发者模式 (assets)*链接,激活开发者模式 (assets),不压缩客户端已使用的JavaScript 和Css,使其更容易的调试客户端,但速度会略慢,点击这两个链接都可开启开发者模式。,以虫子图标的形式出现在右上角用户名和头像的左侧,具有js测试,视图动作修改,翻译,视图代码,工作流修改,打印工作流等功能。,更多的系统设置,计划任务,视图,模型,字段定义等等。原创 2020-08-28 21:32:19 · 827 阅读 · 0 评论 -
创建ODOO12演示账套
如果没有启动ODOO服务,需先启动conda activate odoo12#进入虚环境pg_ctl -D /home/tderp/.conda/envs/odoo12/pgsql/data -l logfile start#启动PGsql数据库/home/tderp/.conda/envs/odoo12/odoo-dev/odoo/odoo-bin#启动ODOO服务打开浏览器访问http://192.168.184.200:8069/(服务器IP结合自身而定)因为还没有账套,所以直接跳.原创 2020-08-28 10:38:46 · 455 阅读 · 0 评论 -
Anaconda for ubuntu安装教程
https://www.anaconda.com/products/individual上官网取得安装程序对应版本的URL取得的Linux 下Anaconda 安装文件包地址:https://repo.anaconda.com/archive/Anaconda3-2020.07-Linux-x86_64.shmkdir Downloads#新建一个目录,用与存放下载的安装文件cd Downloads#进入Downloads 字目录wget https://repo.anaco原创 2020-08-27 08:52:24 · 410 阅读 · 0 评论 -
Ubuntu conda&PyPi更换清华源
conda换源添加清华源conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forgeconda config --add channels https://mirrors.tuna.tsinghua.edu.c原创 2020-08-18 09:21:07 · 646 阅读 · 0 评论 -
安装 Odoo12 系统依赖
要运行 Odoo12,我们还需要一些系统包和软件。获取版本控制的源码应安装 Git,安装运行 Odoo要求 Python 3.5或之后的版本、Python 3的 pip 以及一些 Python 包的系统依赖:sudo apt update #检查已安装的软件包是否有可用的更新sudo apt upgrade #更新已安装的软件包sudo apt install git -y #安装Gitsudo apt install python3-dev python3-pip -y原创 2020-08-17 16:34:26 · 404 阅读 · 0 评论 -
conda 安装Python
安装Pythonconda 安装PythonOdoo12 要求 Python 3.5或之后的版本conda search python #查询python可安装版本conda install python=3.7.7 #安装3.7.7版本的Python不能安装3.8的版本,编译会出错。Error when compiling ASTpython #进入python环境,查看版本视频下载:http://www.tderp.com/download/details原创 2020-08-17 16:26:52 · 1301 阅读 · 0 评论 -
Conda安装Postgresql数据库
conda search postgresql #查询数据库可安装版本conda install postgresql=12.2 #安装12.2版本的postgresql创建一个新的PostgreSQL数据库集簇。initdb创建一个新的PostgreSQL数据库集簇。一个数据库集簇是由一个单一服务器实例管理的数据库的集合。一个数据库集簇的创建包括创建存放数据库数据的目录、生成共享目录表(属于整个集簇而不是任何特定数据库的表)并且创建template1和postgres数据库。原创 2020-08-17 15:36:55 · 1429 阅读 · 0 评论 -
源码安装ODOO12
要从源码安装 Odoo,我们首先要从 GitHub 上克隆一套 Odoo 源代码:mkdir /home/tderp/.conda/envs/odoo12/odoo-dev // 在odoo12虚环境下创建工作目录cd /home/tderp/.conda/envs/odoo12/odoo-dev// 进入工作目录git clone https://github.com/odoo/odoo.git -b 12.0 --depth=1 //获取 Odoo 源码depth=1表示仅下载当原创 2020-08-17 15:27:51 · 482 阅读 · 0 评论