odoo

https://zhuanlan.zhihu.com/p/34878235 #ODOO服务器部署(ubuntu系统)

https://www.jianshu.com/p/06e38310a465 #Odoo10开发教程一(构建模块)

https://segmentfault.com/a/1190000013472741 #「Odoo 基础教程系列」第一篇——环境准备

https://www.cnblogs.com/yangxunbo/p/10381516.html #Odoo 12 开发手册指南

todo
├── __init__.py
├── __manifest__.py
├── controllers
│   ├── __init__.py
│   └── controllers.py
├── demo
│   └── demo.xml
├── models
│   ├── __init__.py
│   └── models.py
├── security
│   └── ir.model.access.csv
└── views
    ├── templates.xml
    └── views.xml

构建一个Odoo模块

服务端扩展和客户端扩展都被封装为模块,这些模块可选择性的被安装,安装完成后通过数据库来加载。模块即可以是全新的业务逻辑,也可以是更改和扩展已有的业务逻辑。比如创建一个中国会计模块,将中国的会计准则添加到Odoo的通用会计中,也可以创建一个全新的实时可视化管理车队的模块。Odoo中的所有功能都是包含在模块中。
模块的组成
Odoo模块包含多个部分:
业务对象
  Python类,这些类会被Odoo框架自动持久化,持久化的方式决定于类的定义。
数据文件
  包括视图、菜单、动作、工作流、权限、演示数据等,以XML或CSV文件定义。
Web控制器
  处理Web浏览器的请求
静态页面数据
  网站或界面使用的图片、CSS或JavaScript文件

模块结构

每个模块都是模块目录中的一个子目录。可以通过--addons-path选项指定模块目录的路径。

Odoo提供了脚手架机制来快速创建新模块,odoo-bin子命令scaffold用来创建一个空模块。
首先在项目根目录创建一个mymodules文件夹。

./odoo-bin scaffold todo mymodules
该命令为模块创建一个子目录,并自动为模块创建一些标准文件。这些文件大多只包含被注释的代码和XML元素。后面将解释这些文件的含义。
得到

数据文件

Odoo是一个高度数据驱动的系统,虽然行为是通过Python代码制定的,但一些模块的值是在加载时通过数据文件设置的。

提示:
一些模块的作用仅仅是为了将数据添加到Odoo中

模块数据通过带有元素的XML数据文件来声明。每个元素创建或更新数据库中的一个记录行。

,每个对应数据行中的一个字段,name属性是字段名(例如description),而body就是字段的值。

数据文件通过在manifest文件声明而被载入,他们既可以在data列表声明(始终载入)也可以在demo列表声明(仅在演示模式下载入)

修改监听端口

--http-port=(或-p)参数可以修改实例的监听端口(默认端口8069),不同的端口可以让我们在同一台机器上运行多个实例。

Odoo 11的修改:在 Odoo 11中引入--http-port参数以替代此前版本使用的--xmlrpc-port

下面就可以做个尝试,打开两个终端,第一个中输入
~/odoo-dev/odoo/odoo-bin --http-port=8070

第二个中输入
~/odoo-dev/odoo/odoo-bin --http-port=8071

此时就在同一台机器上使用不同端口运行了两个 Odoo 实例,这两个实例可以使用同一个数据库或不同数据库。这取决于我们使用的配置参数,并且两个端口上也可以运行相同或不同版本的 Odoo。

小贴士:不同 Odoo 版本必须使用不同的数据库。尝试在不同版本上使用相同数据库将无法正常运行,因为各大版本采用了不兼容的数据库模式。

原文地址:https://www.cnblogs.com/plusUltra/p/11060462.html