Odoo文档

我现在先以文件为主导的方式在学习过程中试着逐步解释说明odoo中涉及到的字段的含义,函数的参数含义作用和文件的作用等等。增强动手能力。本文不对具体代码的逻辑进行过多探讨,仅对属性进行说明。我会在学习过程中不断的添加之前没遇到过的东西,不全的请谅解或指正。
我现在水平十分初级,我会加入很多我自己的理解,如果有错误或者是没说到位的地方,请一定指正,万分感谢。

本文参考Alan Hou翻译的最好用的免费ERP系统Odoo 12开发手册写成。

https://alanhou.org/odoo-12-development/
其他网站资源
https://webkul.com/blog/working-with-xml-data-in-odoo/

  1. __manifest__.py
    __manifest__.py就是一个声明文件,在他里面会包含许多模块层面的信息,包括名称、介绍和作者等等描述性信息,还包括一些模块中要用到的文件的声明,告诉odoo这些文件在哪,还有模块的可用或者不可用等等的一些属性都可以在这里定义。
    下面以一段代码加注释的方式介绍这一文件里用到的内容。
    'name': 'Module Name',  # 插件模块标题字符串
    'description': 'What the module do.',  # 功能描述长文件,通常为RST格式
    'author': 'Starwaves',  # 作者姓名,本处为一个字符串,可以是逗号分隔的一系列姓名
    'depends': ['base'],  # 一个依赖插件模块列表,在模块安装时会先安装这些插件
    'application': True,  # 一个布尔型标记,代表模块是否在应用列表中以 app 展现
    'data': [  # 声明添加安装或更新时需要加载的模块列表
        'security/library_security.xml',
        'security/ir.model.access.csv',
        'views/library_menu.xml',  
        'views/book_view.xml',
        'views/book_list_template.xml',
    ],
    'demo': [  # 还没搞清楚
        'data/res.partner.csv',
        'data/library.book.csv',
        'data/book_demo.xml',
    ], }
# 在真实场景中,建议也同时使用其它属性名,因它们与 Odoo 的应用商店有关:
# 这些属性名我暂时没有用到,如果用到了会加进来
# summary:显示为模块副标题的字符串
# version::默认为1.0,应遵守版本号规则。建议在模块版本号前加上 Odoo 版本,如12.0.1.0
# license::默认为LGPL-3
# website:了解模块更多信息的 URL,可以帮助人们查看更多文档或提供文件 bug 和建议的跟踪
# category::带有模块功能性分类字符串,缺省为Uncategorized。
#            已有分类可通过安全组表单(位于Settings > Users & Companies > Groups)
#            的 Application字段下拉列表查看(需开启调试模式)
# 还有以下描述符键:
# installable:默认为 True,但可以通过设置为 False 来禁用模块
# auto_install:若设置为 True,在其依赖已安装时会自动安装,用于胶水模块,
#               用于同一实例上两个模块安装后功能的连接。

  1. xxx_menu.xml文件
    这里的XXX是可替代的模块名,这个 XXX_menu.xml文件是定义菜单项的,一个模块开发出来必须要有顶级菜单项才可以使用。用户界面的入口是菜单项,菜单项形成一个层级结构,最顶级项为应用,其下一级为每个应用的主菜单。还可以添加更深的子菜单。可操作菜单与窗口操作关联,它告诉客户端在点击了菜单项后应执行什么操作。可能有人会对菜单的位置有点疑惑,我做了个图指明。Odoo文档_第1张图片

还是以代码加注释的方式进行讲解。



<odoo>
    
    
    
    
    <menuitem id="menu_id" 
    		name="name" 
    		action="action_id"
    		parent="module.menu_id" />
    
    <act_window id="action_library_book"
        name="Library Books"
        res_model="library.book"
        view_mode="tree,form"
    />
    
    <menuitem id="menu_library_book"
        name="Book"
        parent="menu_library"
        action="action_library_book"
    />
odoo>

  1. xxx_security.xml
    xxx依旧是可替代的模块名,这个文件是放在security文价夹中的,权限安全相关的文件通常都放在模块下/security子目录中。xxx_security.xml文件的功能是添加权限组。
    下面看代码。


<odoo>
	
	
	
	
    <record id="module_library_category" model="ir.module.category">
        <field name="name">Libraryfield>
    record>
    
    
    
    
    <record id="library_group_user" model="res.groups">
        <field name="name">Userfield>
        <field name="category_id" ref="module_library_category" />
        <field name="implied_ids" eval="[(4, ref('base.group_user'))]" />
    record>
    
    <record id="library_group_manager" model="res.groups">
        <field name="name">Managerfield>
        <field name="category_id" ref="module_library_category" />
        <field name="implied_ids" eval="[(4, ref('library_group_user'))]" />
        <field name="users" eval="[
                    (4, ref('base.user_root')),
                    (4, ref('base.user_admin'))
                ]" />
    record>
    <data noupdate="1">
        <record id="book_user_rule" model="ir.rule">
            <field name="name">Library Book User Accessfield>
            <field name="model_id" ref="model_library_book" />
            <field name="domain_force">
                [('active','=',True)]
            field>
            <field name="groups" eval="[(4,ref('library_group_user'))]" />
        record>
    data>
odoo>

你可能感兴趣的:(Odoo)