zoukankan      html  css  js  c++  java
  • Odoo开发指北 01 初识Odoo

    架构

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

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

    • 客户层:包括GUI客户端以及Web客户端。客户端通过JSON-RPC或者XML-RPC与服务器进行通信。

    开发

    实现功能

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

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

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

    继承开发

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

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

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

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

    模块文件目录

    • controllers:存放http路径控制(url请求处理)
    • data:data.xml
    • demo:存放demo.xml
    • models:存放模型定义:继承models.Model类,定义出的模型类会自动与Odoo提供的ORM接口匹配,也就是说这些模型类会自动存入sql中。
    • security:对模块的访问权限控制,在ir.model.access.csv文件中定义。还可以新建一个record_rule.xml,在其中进行更细化的权限控制。
    • static:静态资源文件,如css、js等
    • views:网页视图文件与模版文件(xml文件,使用QWEB语言进行描述)
    • __init__.py
    • __manifest__.py:描述文件

    脚手架命令

      使用 Odoo 脚手架 odoo-bin scaffold 命令新建了我们的 aaa 应用

      ../odoo-bin scaffold aaa

    模块开发流程

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

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

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

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

    5. 配置__init__.py__manifest__.py

    工作流开发

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

  • 相关阅读:
    数组名和指针区别(还有数组退化等)
    无法从“const char *”转换为“char *”
    c语言数组初始化问题
    c语言实现atoi和itoa函数。
    不使用临时变量交换两个整数
    hdu 1282回文数猜想
    Android仿WIN8系统磁贴点击下沉倾斜效果
    Android Studio使用心得
    处理json中影响解析的多余引號
    我也来开发2048之主界面设计
  • 原文地址:https://www.cnblogs.com/LittlePanger/p/12625578.html
Copyright © 2011-2022 走看看