• Odoo学习笔记


    一: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。

  • 相关阅读:
    bzoj2595 / P4294 [WC2008]游览计划
    bzoj4698 / P2463 [SDOI2008]Sandy的卡片
    [bzoj3514]Codechef MARCH14 GERALD07加强版
    [bzoj2440][中山市选2011]完全平方数
    [bzoj2243][SDOI2011]染色
    [bzoj2589]Spoj 10707 Count on a tree II
    [bzoj1452] [JSOI2009]Count
    [bzoj2588][Spoj 10628] Count on a tree
    [bzoj2434][Noi2011]阿狸的打字机
    Codeforces Round #408(div.2)
  • 原文地址:https://www.cnblogs.com/soleZ/p/10076020.html
Copyright © 2020-2023  润新知