OpenERP 7.0入门(三):模块“增强记事本”

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012551524/article/details/88428834

OpenERP版本:7.0


要求:

1、制作一个新的Addon 'Notebook',包含一个Model (字段title, content, create_date)。在UI上添加相应的菜单并能CRUD。

2、增强上一步的模块,添加一个新字段“type”,这个type是另外一个model (字段 name),可CURD。在新建notebook时,需要选择type。两个model需要进行关联。

一、创建模块命名notebook_type

1、目录结构如下图

__init__.py:

# -*- coding:utf-8 -*-
import notebook_type

__openerp__.py:

# -*- coding:utf-8 -*-
{
    "name":"notebook type",
    "version":"1.0",
    "description":"demo",
    "author":"tracy",
    "depends":['lesson',], //引用菜单定义:lesson
    "update_xml": ["notebook_type_view.xml",],
    'installable': True,
    'auto_install': False,
}

notebook_type.xml:

# -*- coding:utf-8 -*-
from openerp.osv import fields, osv
class notebook_type(osv.osv):
    _name = "notebook_type.notebook_type"
    _description = "depend notebook"
    _columns = {
        "type":fields.char(u"type",szie=64),
        "code":fields.char(u"code",szie=64),
    }
notebook_type()

notebook_type_view.xml:

<?xml version="1.0" ?>
<openerp>
    <data>
    <!--定义表单视图-->
        <record model="ir.ui.view" id ="notebook_type_form_view">
            <field name="name">notebook_type</field>
            <field name="model">notebook_type.notebook_type</field>
            <field name="type">form</field>
            <field name="arch" type="xml">
                <form string = "notebook_type">
                    <field name="type"/>
                    <field name="code"/>
                </form>
            </field>
        </record>      
    <!--定义列表视图-->
        <record model="ir.ui.view" id ="notebook_type_tree_view">
            <field name="name">notebook_type_tree</field>
            <field name="model">notebook_type.notebook_type</field>
            <field name="type">tree</field>
            <field name="arch" type="xml">
                <tree string = "notebook_type">
                    <field name="type"/>
                    <field name="code"/>
                </tree>
            </field>
        </record>
    <!--定义视图动作-->
        <record model="ir.actions.act_window" id="action_notebook_type">
            <field name="name">notebook_type</field>
            <field name="res_model">notebook_type.notebook_type</field>
            <field name="view_type">form</field>
            <field name="view_model">form,tree</field>
            <field name="view_id" ref="notebook_type_tree_view"/>
        </record>
    <!--定义菜单-->
        <menuitem id="notebook_type_menu" name="notebook_type" parent="lesson.section_main_menu" action="action_notebook_type"/>
        </data>
</openerp>

二、创建模块命名notebook

1、目录结构如下图

__init__.py:

# -*- coding:utf-8 -*-
import notebook

__openerp__.py:

# -*- coding:utf-8 -*-

{
    "name":"notebook",
    "version":"1.0",
    "description":"demo",
    "author":"tracy",
    "depends":['lesson','notebook_type'],   //引用notebook_type:type  引用菜单定义:lesson
    "update_xml": ["notebook_view.xml"],
    'installable': True,
    'auto_install': False,
}

notebook_type.xml:

# -*- coding:utf-8 -*-
from openerp.osv import fields, osv
class notebook(osv.osv):
    _name = "notebook.notebook"
    _description = "demo"
    _columns = {
        "title":fields.char(u"title",size=64,select=True),
        "content":fields.text(u"content",size=1000),
        "create_date":fields.date(u"create_date",select=True),
        "type":fields.many2one('notebook_type.notebook_type',u"type"),  //type many2one
    }
notebook()

notebook_type_view.xml:

<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data>
        <record model="ir.ui.view" id ="notebook_form_view">
            <field name="name">notebook</field>
            <field name="model">notebook.notebook</field>
            <field name="type">form</field>
            <field name="arch" type="xml">
                <form string = "notebook">
                    <field name="title"/>
                    <field name="content"/>
                    <field name="create_date"/>
                    <field name="type"/>
                </form>
            </field>
        </record>
        <record model="ir.ui.view" id ="notebook_tree_view">
            <field name="name">notebook_tree</field>
            <field name="model">notebook.notebook</field>
            <field name="type">tree</field>
            <field name="arch" type="xml">
                <tree string = "notebook">
                    <field name="title"/>
                    <field name="content"/>
                    <field name="create_date"/>
                    <field name="type"/>
                </tree>
            </field>
        </record>
        <record model="ir.actions.act_window" id="action_notebook">
            <field name="name">notebook</field>
            <field name="res_model">notebook.notebook</field>
            <field name="view_type">form</field>
            <field name="view_model">form,tree</field>
            <field name="view_id" ref="notebook_tree_view"/>
        </record>
        <menuitem id="notebook_menu" name="notebook" parent="lesson.section_main_menu" action="action_notebook"/>
    </data>
</openerp>

三、界面安装以上两个模块

四、测试

首先菜单下会生成两个模块,(notebook,notebook_type):

测试新建一个一条记录:

并且引用了notebook_type的type字段:

一个简单的记事本创建成功!

猜你喜欢

转载自blog.csdn.net/u012551524/article/details/88428834