odoo开发-应用模块统一参考标准

1.0 应用模块目录结构

在这里插入图片描述

  • 项目名称统一

    统一的前缀 dt_
    统一为英语字母小写
    不用驼峰表示法,如果有多个单词,建议以"_"分隔,比如 dictionary_management 这两个单词之间为_

  • 建议上面每个目录都写上,如果没有内容,空目录表示

  • 各个目录含义

    api 提供外部调用接口
    controller 控制器
    data 数据
    demo 必须要有demo,用户需要知道怎么操作
    doc 放入相关文档,如doc等,用于介绍项目或其它
    edi 数据交换
    i18n 语言目录
    models 模型定义
    report 报表相关
    security 权限相关
    static 静态文件等
    tests 存放python或yml测试用例
    views 视图模板
    wizard 存放临时的model和视图

2.0 __manifest__.py 标准

  • 统一文件注释,除最后一行日期,其它不建议更改

在这里插入图片描述

# -*- coding: utf-8 -*-
# &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
# DTCloud v2.0
# QQ: 35350428
# 邮件: 35350428@qq.com
# 手机: 13584935775
# 作者: 'zyf_Amos'
# 公司网址: http://www.dtcloud360.com
# Copyright 中亿丰数字科技有限公司 2012-2022 Amos
# 日期: 2022/5/29
# &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
  • 基本元素
{
    'name': "百度地图",  #  百度地图
    'summary': """百度地图视图""",
    'category': '地图',
    'author': "zyfd_Amos",  # 写上作者自己的名字,如zyfd_Amos 或zyfd_XiaoyueZhang,注意名字标准
    'website': "http://www.dtcloud360.com",
    'depends': ['web'],
    'version': '1.0',  # 版本号注意, 两位,初始版本为1.0
    'installable': True,
    'application': True,
    'auto_install': False,
    'license': 'LGPL-3',
    'price': '10',  #  Odoo Apps Store上显示的时候以美元显示 
    'currency': 'USD',  # 全部以美元为单位
    'data': [
        'security/data.xml',
        'views/views.xml',
        'views/templates.xml',
    ],
    'images': [
        'static/description/static/images/map.png',
        'static/description/banner.png',
    ],
    'assets': {
        'web.assets_backend': [
            'dt_map/static/src/js/bmap_model.js',
            'dt_map/static/src/js/bmap_controller.js',
            'dt_map/static/src/js/bmap_view.js',
            'dt_map/static/src/js/bmap_render.js',
            'dt_map/static/src/js/geolocation.js',
            'dt_map/static/src/css/bmap.css',
            'dt_map/static/src/css/bmap_view.scss',
        ],
        'web.assets_qweb': [
            'dt_map/static/src/xml/bmap.xml',
            'dt_map/static/src/xml/geolocation.xml',
        ],
    },
    'description': """""",  # 建议为空
}
  • 分类

中台应用:基础,短信,邮件,地图
解决方案:XX智慧工地解决方案,XX公司ERP解决方案等
企业应用:销售,采购,仓库,生产,会计,人事,项目等
工地应用:IOT设备(门禁,视频,门磁,升降机等),人员管理等
楼宇应用:IOT设备(空调,门禁),客房系统,停车系统等
城市应用:智慧社区,智慧园区,智慧城市等
BIMCIM应用

3.0 模块根目录README.md说明文档名称改为README.rst

如下图所示,保留README.rst文件,里面用markdown格式写相应说明
在这里插入图片描述

4.0 Banner图片

  • 1.1 中亿丰数字提交的所有应用,统一一副模板

在这里插入图片描述

在这里插入图片描述

后期采用的模板如下:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 1.2 Banner图片存放位置,及其必须要在manifest文件中声明

位置: dt_map/static/description/banner.png
在这里插入图片描述

声明:在__manifest__.py文件中声明出来
在这里插入图片描述

5.0 icon文件

展示效果:
在这里插入图片描述

目录如下图,icon图片不需要在__manifest__中声明,但目录及其名字必须符合下面的规则。最好是100 * 100在这里插入图片描述

6.0 介绍说明模板文件

  • 创建文件index.html , 目录必须在/your module/static/description 下, index.html用到的图片放在下图的asset目录下面。asset里面的图片不需要在__manifest__中声明。
    在这里插入图片描述
模板文件不建议原生html,因为CSS样式权重问题会出现各种显示问题。下面有一套基于odoo的基本语法:
  • 首先套入html,主要是对汉字utf8的处理,后面的内容全部写在body里。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
	
		中间套入下面介绍的模板文件
	
</body>
</html>

在这里插入图片描述

<section class="oe_container">
    <div class="oe_row oe_spaced">
        <div class="oe_span12">
            <h2 class="oe_slogan" style="color:#875A7B;">标题/名称</h2>
            <h3 class="oe_slogan">描述内容</h3>
        </div>
    </div>
</section>

在这里插入图片描述

<section class="oe_container">
    <div class="oe_row oe_spaced">
        <div class="oe_span12">
            <div class="alert alert-info oe_mt32" style="padding:0.3em 0.6em; font-size: 150%;">
                <i class="fa fa-hand-o-right"></i><b> 列表: </b>
                <ul class="list-unstyled">
                    <li>
                        <i class="fa fa-check-square-o text-primary"></i>
                        列表元素1
                    </li>
                    <li>
                        <i class="fa fa-check-square-o text-primary"></i>
                        列表元素2
                    </li>
                    <li>
                        <i class="fa fa-check-square-o text-primary"></i>
                        列表元素3
                    </li>
                    <li>
                        <i class="fa fa-check-square-o text-primary"></i>
                        列表元素4
                    </li>
                </ul>
            </div>
        </div>
    </div>
</section>

在这里插入图片描述

<section class="oe_container">
    <div class="oe_row oe_spaced">
        <div class="oe_span12">
            <div class="alert alert-success oe_mt32" style="padding:0.3em 0.6em; font-size: 150%;">
                文本描述(绿色背景)
            </div>
        </div>
    </div>
</section>

<section class="oe_container">
    <div class="oe_row oe_spaced">
        <div class="oe_span12">
            <div class="alert alert-warning oe_mt32" style="padding:0.3em 0.6em; font-size: 150%;">
                文本描述(黄色背景)
            </div>
        </div>
    </div>
</section>

<section class="oe_container">
    <div class="oe_row oe_spaced">
        <div class="oe_span12">
            <div class="alert alert-danger oe_mt32" style="padding:0.3em 0.6em; font-size: 150%;">
                文本描述(红色背景)
            </div>
        </div>
    </div>
</section>

在这里插入图片描述

<h4 class="oe_slogan"><b>分段名称</b></h4>

在这里插入图片描述

<section class="oe_container oe_dark">
    <div class="oe_row oe_spaced">
        <div class="oe_span6">
            <p class="oe_mt32">
                中亿丰数字科技有限公司中亿丰数字科技有限公司
                中亿丰数字科技有限公司中亿丰数字科技有限公司
                中亿丰数字科技有限公司中亿丰数字科技有限公司
                中亿丰数字科技有限公司中亿丰数字科技有限公司
                中亿丰数字科技有限公司中亿丰数字科技有限公司
                中亿丰数字科技有限公司中亿丰数字科技有限公司
                中亿丰数字科技有限公司中亿丰数字科技有限公司
            </p>
        </div>
        <div class="oe_span6">
            <div class="oe_row_img oe_centered" align="center">
                <img class="oe_demo oe_picture oe_screenshot" src="banner.png"/>
            </div>
        </div>
    </div>
</section>

在这里插入图片描述

<section class="oe_container oe_dark">
    <div class="oe_row oe_spaced">
        <div class="oe_span6">
            <div class="oe_row_img oe_centered" align="center">
                <img class="oe_demo oe_picture oe_screenshot" src="banner.png"/>
            </div>
        </div>
        <div class="oe_span6">
            <p class="oe_mt32">
                中亿丰数字科技有限公司中亿丰数字科技有限公司
                中亿丰数字科技有限公司中亿丰数字科技有限公司
                中亿丰数字科技有限公司中亿丰数字科技有限公司
                中亿丰数字科技有限公司中亿丰数字科技有限公司
                中亿丰数字科技有限公司中亿丰数字科技有限公司
                中亿丰数字科技有限公司中亿丰数字科技有限公司
                中亿丰数字科技有限公司中亿丰数字科技有限公司
            </p>
        </div>
    </div>
</section

在这里插入图片描述

<section class="oe_container oe_dark">
    <div class="oe_row oe_spaced">
        <div class="oe_span12 text-center">
            <p class="oe_mt32">
                中亿丰数字科技有限公司中亿丰数字科技有限公司
                中亿丰数字科技有限公司中亿丰数字科技有限公司
                中亿丰数字科技有限公司中亿丰数字科技有限公司
                中亿丰数字科技有限公司中亿丰数字科技有限公司
                中亿丰数字科技有限公司中亿丰数字科技有限公司
                中亿丰数字科技有限公司中亿丰数字科技有限公司
                中亿丰数字科技有限公司中亿丰数字科技有限公司
                中亿丰数字科技有限公司中亿丰数字科技有限公司
            </p>
        </div>
        <div class="oe_row_img oe_centered">
            <img class="oe_demo oe_picture oe_screenshot" src="banner.png"/>
        </div>
    </div>
</section>

在这里插入图片描述

<section class="oe_container oe_dark">
    <div class="oe_row oe_spaced">
        <div class="oe_span12 text-center">
            <p class="oe_mt32">
                <font style="font-size: 120%;">中亿丰数字科技有限公司 中亿丰数字科技有限公司</font>
            </p>
        </div>
        <div class="oe_screenshot" align="center">
            <img style="max-width: 80%" src="banner.png"/>
        </div>
    </div>
</section>

在这里插入图片描述

<section class="oe_container">
    <!--Title-->
    中亿丰数字科技有限公司
</section>

<section class="oe_container">
    <!--Key features-->
    中亿丰数字科技有限公司
</section>

<section class="oe_container">
    中亿丰数字科技有限公司
</section>

<section class="oe_container oe_dark">
    中亿丰数字科技有限公司
</section>

<section class="oe_container">
    中亿丰数字科技有限公司
</section>

<section class="oe_container oe_dark">
    中亿丰数字科技有限公司
</section>

<section class="oe_container">
    中亿丰数字科技有限公司
</section>

<section class="oe_container">
    <!--Free support section-->
    中亿丰数字科技有限公司
</section>

<section class="oe_container">
    <!--Contact us block-->
    中亿丰数字科技有限公司
</section>

通过以上语法排列组合即可。

也可参考文档: https://odoo-development-cn.readthedocs.io/zh_CN/latest/description/index.html.html

更新记录

若文档有错误,或后面根据业务需要更新上述文档,会在更新记录中同步一份,以便于及时了解。一般情况下,不会随意更新文档格式等相关内容。

  • 2022年5月31日 第一次文档更新
1 ERP 简介 1 1.1 Odoo 历史 1 1.2 ERPⅡ 或商业智能化 2 1.2.1 什么是商业智能 4 2 Odoo 框架简介 7 2.1 python 模块分析 8 2.2 python2 还是 python3 8 3 Odoo 的安装和配置 9 3.1 PostgreSQL 数据库 10 3.2 Ubuntu14.04 下可能缺失的软件包 11 3.3 网页显示 node.js 方面 11 3.4 其他问题 12 3.5 通过命令行运行时的配置 12 3.5.1 –xmlrpc-port=8888 12 3.5.2 –addons-path=addons 12 3.5.3 数据库的一些配置 13 3.5.4 –save 13 3.6 将安装环境封装起来 13 3.7 文档编译 14 4 初入 Odoo 17 4.1 管理数据库 17 4.2 登录界面 18 4.3 Administrator 首选项 19 4.4 导入一个翻译 20 4.5 新的 Demo 用户 20 4.6 模块管理 21 4.7 修改公司信息 21 4.8 打开技术特性支持之后 22 4.9 进销存和财务系统的抽象讨论 22 4.9.1 以采购部门为例 23 4.10 安装和配置模块 24 5 创建自己的模块 27 5.1 快速生成模块骨架 27 5.1.1 python 模块的 init 文件 28 5.1.2 作为 Odoo 模块的说明文件 29 5.2 安装自定义模块 32 5.2.1 模块文件夹管理 32 5.3 一个简单的演示模块 33 5.3.1 controllers 33 5.3.2 views 33 5.3.3 models 35 5.3.4 security 37 5.3.5 美化网页 38 5.4 加分项: 通过 pgadmin3 来查看数据库 39 5.4.1 安装 39 5.4.2 连接服务器 39 5.4.3 图形化查询 40 6 Odoo 开发基础: 请假模块第一谈 43 6.1 纯理论讨论 43 6.2 定义模型 45 6.3 加入菜单 46 6.3.1 act_window 的属性 48 6.3.2 menuitem 的属性 48 6.4 视图优化 48 6.4.1 修改 tree 视图 49 6.4.2 修改 form 视图 49 6.5 完整的 views.xml 51 6.6 给模块加个图标 53 7 Odoo 开发基础: 工作计划模块第一谈 55 7.1 数据访问权限管理 61 7.1.1 access rule 62 7.1.2 record rule 62 8 扩展现有模块-继承机制 65 8.1 给模块增加 field 65 8.2 修改已有的 field 66 8.3 重载原模型的方法 66 8.3.1 什么是 Recordset 67 8.3.2 Odoo 里面的 domain 语法 68 8.3.3 recordset 的 search 方法 69 8.4 视图 xml 文件的继承式修改 70 8.4.1 视图元素添加 71 8.4.2 原视图元素属性修改 71 8.5 多态继承 72 8.6 修改其他数据文件 73 8.6.1 删除记录 73 8.6.2 更新数据 73 8.7 委托继承 74 9 理解模型内的数据文件 75 9.1 理解外部 id 75 9.2 使用外部 id 77 9.3 导出或导入数据文件 77 9.4 快捷输入标签 78 9.5 用 field 标签设置值 78 9.5.1 eval 语法 78 9.5.2 ref 属性 79 9.5.3 One2many 和 Many2many 的 eval 赋值 79 10 Odoo 开发基础: 请假模块第二谈 81 10.1 本例涉及到的数据库表格简介 89 10.2 工作流概念入门 89 10.2.1 定义工作流对象 90 10.2.2 创建节点 91 10.2.3 创建连接 91 11 Odoo 模型层详解 93 11.1 _name 93 11.2 各个表头属性 93 11.3 name 字段 94 11.4 具体模型的数据 94 11.5 模型间的关系 95 11.6 工作流 95 12 Odoo 视图层详解 97 13 附录 99 13.1 Odoo 里老的 API 99 13.2 PostgreSQL 数据库命令行操作 99 13.2.1 命令行数据库备份 99 13.3 反向代理 (reverse proxy) 99 13.3.1 安装 ngnix 软件 100 13.3.2 强制 https 连接 102 13.3.3 nginx 优化 102 13.3.4 轮询机制 102 13.4 跟踪项目源码初始化进程 102 13.4.1 base 模块 104 13.4.2 web 模块 105 13.4.3 web_kanban 模块 105 13.5 配置会计科目 105 13.5.1 配置会计科目类型 105 13.5.2 配置会计科目 106 13.6 分录 106 13.7 新建业务伙伴 106 13.7.1 新建业务伙伴标签 106 13.7.2 新建客户 106 13.8 创建新的产品 107 13.9 设置会计年度 107 13.10向供应商下单 107 13.11会计学入门 107 13.11.1财务报表 108 13.11.2原始凭证 108 13.11.3账户 108 13.11.4分类帐 109 13.11.5会计科目表 109 13.11.6报告期间 110 13.12参考资料 110
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

中亿丰数字科技集团有限公司

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值