转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/11189194.html

一:Odoo架构

1:数据库服务器层:postgreSQL数据库服务器,用于存储所有应用数据。

2:openERP应用服务层:包含所有企业模块逻辑(报表引擎、工作流引擎等),向下提供ORM引擎,向上提供web服务,控制服务器与浏览器的通信。

3:客户层:包括GUI客户端以及Web客户端。

客户端通过JSON-RPC或者XML-RPC与服务器进行通信。

二:Odoo常用功能模块

企业管理模块

物料管理模块

财务管理模块

人力资源模块

客户与供应商关系管理模块

项目管理模块

日常工作管理模块

沟通工具模块

业务流程管理模块

......

三:odoo开发简介

odoo开发要实现以下功能:

数据访问功能:信息的增删查改。基于MVC模式进行开发,其中Model用ORM了来对应数据库表并操纵,而view则用XML来定制界面,Controller也是用XML来定义响应。

工作流开发:用软件表达企业层级的工作协作关系。有两种方式:XML方式定义、可视化拖拽编程定义。

报表开发:把系统的数据以特定形式输出打印。主要有:文档报表、图形报表等。

四:继承开发

Odoo提供了大量现成的模块给我们使用,但是某些情况下,我们需要制定符合自己需求的功能模块。Odoo开发的一条黄金准则是——不要修改现有的模块,以免改动后的代码与原有模块产生混淆。

因此,odoo提供了继承机制,我们可以选择一个基础模块,然后继承它,在它的基础上进行修改、扩展,生成自己的模块。

开发自己的模块时,需要在模块所在目录下,创建两个文件:__init__.py和__openerp__.py,在其中定义模块的初始化操作以及模块的描述。

然后使用自己的模块:把自己的模块路径设置到odoo中,重启odoo让其搜索到自定义模块,即可通过odoo进行安装。

模块文件目录构成:

data:存放demo和data xml

models:存放模型定义:继承models.Model类,定义出的模型类会自动与Odoo提供的ORM接口匹配,也就是说这些模型类会自动存入sql中。

controllers:存放http路径控制(url请求处理)

views:网页视图文件与模版文件(xml文件,使用QWEB语言进行描述)

static:静态资源文件,如css、js等

security:对模块的访问权限控制,在ir.model.access.csv文件中定义。还可以新建一个record_rule.xml,在其中进行更细化的权限控制。

继承模块通过 _inherit=“继承的模块”  属性来实现。之后在新创建的模块中就可以新增field、修改父模块的field、重载方法了。

不仅仅模块可以继承开发,视图文件也可继承修改,对与视图文件中某个标签,通过 ref=“继承的视图元素”进行继承。

五:数据库端开发

可以使用pgadmin3来对postgreSQL数据库管理操作,如果SQLYog操作mysql一样。

六:模块开发流程

1:分析模块模型,得出模型所需的字段有哪些,然后定义模型类——python编程。

2:构建菜单对象——在views文件夹下,使用xml定义菜单项。

3:构建动作对象,关联某个具体菜单项的响应。

4:构建视图对象:主要是list、tree、form、search视图。

5:配置__init__.py和__openerp__.py

七:orderset

odoo8新增的ORM API,最常用的有 domain(fieldName,op,value) 方法 以及 search(fieldName,op,value)。

八:模型内的数据文件

1:ID

所有存储在Odoo底层数据库中的记录都有一个独一无二的id。odoo通过ir.model.data模型来管理这些ID,这个模型对应数据库中ir_model_data表,其存储了ID与具体某条具体的记录的映射关系。

2:导入导出数据

tree列表视图下,可以导入导出数据。其中,导入数据需要csv格式,导出则可以为csv或excel格式。

3:标签值

使用filed标签指明某个字段并赋值。赋值有两种方式:<field>值<field/> 、<field name="" eval="计算标签值的表达式"/>

九:工作流开发

工作流开发主要使用xml,有三种组成元素:workflow、activity、transition。

Odoo学习笔记一:odoo初探的更多相关文章

  1. odoo学习笔记create函数

    @api.multi def create_order_sale(self): """""" stage_list = [] for ord ...

  2. angular2 学习笔记 ( 4.0 初探 )

    目前是 4.0.0-rc.2. 刚好有个小项目要开发,就直接拿它来试水啦. 更新 cli 到最新版, 创建项目, 然后 follow https://github.com/angular/angula ...

  3. odoo开发笔记 -- div标签代替odoo button写法

    odoo开发笔记 -- div标签代替odoo button写法 并调用自定义js <footer> <div id="confirm_request_cloud_repo ...

  4. odoo开发笔记 -- 搜索视图继承扩展

    odoo开发笔记 -- 搜索视图继承扩展

  5. odoo开发笔记 -- 后台日志输出及分析

    odoo开发笔记 -- 后台日志输出及分析 附:日志分析软件

  6. 初探C++运算符重载学习笔记&lt;2&gt; 重载为友元函数

    初探C++运算符重载学习笔记 在上面那篇博客中,写了将运算符重载为普通函数或类的成员函数这两种情况. 以下的两种情况发生.则我们须要将运算符重载为类的友元函数 <1>成员函数不能满足要求 ...

  7. Android学习笔记(三)——初探Intent

    //此系列博文是<第一行Android代码>的学习笔记,如有错漏,欢迎指正! Intent 是 Android 程序中各组件之间进行交互的一种重要方式,它不仅可以指明当前组件想要执行的动作 ...

  8. 关于前端的photoshop初探的学习笔记

    写在前边 这还是高三的时候暑假的时候学习这个软件时记的笔记呢,今天又在电脑上找到了它,总觉得不应该让他尘封在我的硬盘上,于是挂了出来.温馨提示:比较乱,写给自己看的,看不下去,按ctrl+W 笔记内容 ...

  9. 运维笔记--docker odoo镜像 运行异常处理

    场景描述: 镜像来源,dockerhub odoo官方镜像:https://hub.docker.com/_/odoo odoo镜像运行一段时间后,出现下述异常,可能是触发某个未知bug:该现象在生产 ...

随机推荐

  1. 01 python的安装

    下载3.7.0版本 然后点击 close  关闭 1-==>搜索输入“cmd”输入 “python -V”并回车. 出现版本说明安装成功.2==>>>> 是提示符3=== ...

  2. unittest,requests,assertEqual实战演练

    请求方式:POST请求url:https://api.apiopen.top/developerLogin请求参数:名称 类型 必须 描述 示例name string 是 账号 peakchaopas ...

  3. 第九周周二总结&&第九周周三计划

    周二的主题提取使用LDA模型进行了简单的测试,效果还可以.主要是提取的分词的结果,LDA:随机生成文章各个主题比例,再根据各个主题随机生成词,词与词之间的顺序关系被彻底忽略了,这就是LDA眼中世间所有 ...

  4. 药店商品销量分析(python)

    一.数据分析的步骤 二.提出问题 分析药店商品销售情况 1)月均消费次数 2)月均消费金额 3)客单价 4)消费趋势 5)热销商品.滞销商品 三.理解数据 销售数据源为excel文件 字段的含义: 共 ...

  5. 优秀文章 Swagger

    原文:https://www.cnblogs.com/peterYong/p/9569453.html 原文:https://www.cnblogs.com/lhbshg/p/8711604.html

  6. windows上安装python和python开发工具

    一.python安装: 登录python官网,下载需要的安装包:https://www.python.org/downloads/windows/.,一般就下载 executable installe ...

  7. (三十七)golang--如何获取命令行参数

    1.第一种方式 缺点:参数的接收受输入的顺序所影响. 2.第二种方式(使用flag包)  

  8. 【转】win7旗舰版英文版下载(64位|32位)|Windows7英文版ISO镜像

    Win7旗舰版SP1 64位ISO镜像下载地址:文件名:en_windows_7_enterprise_with_sp1_x64_dvd_u_677651.isoSHA1:A491F985DCCFB5 ...

  9. Debug 路漫漫-15:Python: NameError:name 'dataset' is not defined

    在调试 <Outer Product-based Neural Collaborative Filtering>论文的源码(https://github.com/duxy-me/ConvN ...

  10. 三、ForkJoin分析

    ForkJoin分析 一.ForkJoin ​ ForkJoin是由JDK1.7后提供多线并发处理框架.ForkJoin的框架的基本思想是分而治之.什么是分而治之?分而治之就是将一个复杂的计算,按照设 ...