美文网首页
odoo11 请假条demo

odoo11 请假条demo

作者: 喵啊楞 | 来源:发表于2017-12-18 19:12 被阅读0次

odoo11 请假条demo 项目工程目录

由于网上的odoo请假条的demo的实例太杂了,所以我就总结了一下,顺便记录下,以防以后忘记。


odoo11项目工程目录.PNG
odoo工程的神奇之处就在于,其项目是在原本的工程目录上新建模块,即addons上新建jiaqing模块,而且不需要我们自己写sql语句,odoo自动帮我们更新数据库。

注:上图红线标出的本人不清楚有什么用。

models文件夹对应的M层,个人认为也是odoo中最难的一部分;views文件夹对应的V层,C层对应的事controllers文件夹(这里没写,路由)
根目录下的__init__.py文件
# -*- coding: utf-8 -*-  #utf-8编码
from . import models   #依赖路径,这里依赖的事models文件夹下的__init__.py文件,简单来说,__init__.py就是需要导入的文件。
根目录_init_文件.PNG
根目录下的__manifest__.py文件
# -*- coding: utf-8 -*-
{
    'name': "qingjia",
    'summary':
        """
            summary介绍
        """,
    'description':
        """
            description介绍
        """,
    'author': "作者",
    'website': "http://www.yourcompany.com",
    'category': '模块所属分类',
    'version': '0.1',
    'depends': ['base'],  #依赖模块
    'data': [
        'views/views.xml',
        'views/templates.xml',
    ],
    'demo': [
        'demo/demo.xml',  #默认添加的示范数据
    ],
    'application': True,
    'installable': True, #默认True,可设为False禁用该模块
    'auto_install': False,  #默认False,如果设为True,则根据其依赖模块,如果依赖模块都安装了,那么这个模块将自动安装,这种模块通常作为胶合(glue)模块。
    'application': False #默认False,如果设为True,则这个模块成为一个应用了。你的主要模块建议设置为True,这样进入Odoo后点击本地模块,然后默认的搜索过滤就是 应用 ,这样你的主模块会显示出来。
}
以上的代码大多数都能在下面的2张图上找到对应的位置
[图片上传中...(app详情图.PNG-3b391-1513593932389-0)]
app详情图.PNG
models目录下的models.py文件
from odoo import models, fields, api

class qingjiadan(models.Model):
    _name = 'qingjia.qingjiadan'   #对应的pg数据库表名,qingjia_qingjiadan 自动创建

    # 字段名
    name = fields.Char(string="申请人")
    days = fields.Integer(string="天数")
    startdate = fields.Date(string="开始日期")
    reason = fields.Text(string="请假事由")

    # name与active是特殊字段:name字段作为记录的标题。active字段用于是否激活记录。
    # name = fields.Char('Description', required=True)
    # active = fields.Boolean('Active?', default=True)

    # 系统自动创建字段名
    # id
    # create_date (Datetime) 记录创建时间
    # create_uid(Many2one)  操作人id
    # write_date (Datetime)  最后修改时间
    # write_uid (Many2one)   最后操作人id
init.py文件就不说明了,就是导入models文件
pg自动生成的表名.PNG
pgAdmin4本人的表名目录:Server>Database>postgres>Schemas>public>Tables>qingjia_qingjiadan
views文件夹下的views.xml
<odoo>
  <data>
    <!-- tree视图 -->
    <record id="view_tree_qingjia_qingjiadan" model="ir.ui.view">
      <!-- 无实际意义 -->
      <field name="name">请假单列表</field>
      <!-- 对应的models目录下的models.py-->
      <field name="model">qingjia.qingjiadan</field>
      <!-- tree/from/list/search 需要用arch和xml定义-->
      <field name="arch" type="xml">
        <tree>
          <!-- 字段名 -->
          <field name="name"/>
          <field name="days"/>
          <field name="startdate"/>
          <field name="reason" />
        </tree>
      </field>
    </record>

    <!-- form视图 -->
    <!-- 下面的操作会在model="ir.ui.view"(表名ir_ui_view)中插入一条数据 -->
    <record id="view_form_qingjia_qingjiadan" model="ir.ui.view">
      <field name="name">请假单</field>
      <field name="model">qingjia.qingjiadan</field>
      <field name="arch" type="xml">
        <form>
          <sheet>
            <group name="group_top" string="请假单">
              <field name="name"/>
              <field name="days"/>
              <field name="startdate"/>
              <field name="reason"/>
            </group>
          </sheet>
        </form>
      </field>
    </record>

    <act_window id="action_qingjia_qingjiadan"
                   name="请假单"
                   res_model="qingjia.qingjiadan"
                   view_mode="tree,form" />

    <menuitem name="请假" id="menu_qingjia"/>

    <menuitem name="请假单" id="menu_qingjia_qingjiadan" parent="menu_qingjia" action="action_qingjia_qingjiadan"/>

  </data>
</odoo>

相关文章

网友评论

      本文标题:odoo11 请假条demo

      本文链接:https://www.haomeiwen.com/subject/ubwmwxtx.html