(04)odoo视图操作

* 窗口操作
如下一些代码
<?xml version="1.0" encoding="utf-8" ?>
<openerp>
<data>
<act_window id="action_todo_stage"
name="To-Do Task Stages"
res_model="todo.task.stage"
view_mode="tree,form" />

<act_window id="todo_app.action_todo_task"
name="To-Do Task "
res_model="todo.task"
view_mode="tree,form,calendar,gantt,graph"
target="current"
context="{‘default_user_id‘:uid}"
domain="[]"
limit="80" />
<act_window id="action_todo_task_stage"
name="To-Do Task Stages"
res_model="todo.task.stage"
src_model="todo.task"
multi="False" />
</data>

</openerp>

窗口的动作是存在 ir.actions.act_window 模型中的,我们可以在xml文件中用<act_window>来快捷定义
# name 显示的标题
# res_model 动作响应的目标模型
# view_mode 列出动作响应对应可用的视图类型
# target 如果设置为new 就打开新窗口,默认是 current
# context 设置目标视图的上下文
# domain 过滤记录按条件
# limit 指列表视图时,一页的记录数,默认是80

# src_model 指定可以启动视图的更多按钮
# multi 设为True, 更多按钮显示在列表视图,否则显示在表单视图

* 菜单项
如下一些代码

<menuitem id="menu_todo_task_main"
name="To-Do" parent="mail.mail_my_stuff"/>
<menuitem id="todo_app.menu_todo_task"
name="To-Do Tasks"
parent="menu_todo_task_main"
sequence="10"
action="todo_app.action_todo_task"/>
<menuitem id="menu_todo_task_stage"
name="To-Do Stages"
parent="menu_todo_task_main"
sequence="20"
action="action_todo_stage"/>

在 设置-> 技术-> 用户界面-> 菜单 可以看到已定义的菜单
菜单是存在 ir.ui.menu 模型中的,我们可以在xml文件中用<menuitem>来快捷定义

* 上下文(Context)
# 上下文 是一个字典类型的数据,用于客户端和服务端的处理,
可用于视图间信息传递,
例子:{‘lang‘: ‘en_US‘, ‘tz‘: ‘Europe/Brussels‘, ‘uid‘: 1}
{‘default_user_id‘: uid} 用当前用户作为默认用户
{‘search_default_filter_my_tasks‘: True}

* Domain 表达式

# 用于过滤记录数,相当于sql的where
(‘field‘, ‘operator‘,value) 每个条件表达式是元组类型
domain=[(‘user_id‘, ‘=‘, uid)] 当前用户做为条件过滤
#操作符如下:
<,>,<=,>=,!=
=like
like, ilike(大小写不敏感)
child_of 找直接和间接的子对象
in, not in
#条件可以用逻辑符连起来 用列表类型来组织
& 是且的意思,是默认
|是或
! 是非,相反的意思
[‘!‘,(‘user_id‘,‘=‘,uid)] 不是当前用户的记录
[‘|‘,(‘user_id‘,‘=‘,uid),(‘user_id‘,‘=‘,False)] 不是当前用户,或没有用户的记录
复杂一点的:
[‘|‘, (‘message_follower_ids‘, ‘in‘, [user.partner_id.id]),‘|‘, (‘user_id‘, ‘=‘, user.id),
(‘user_id‘, ‘=‘, False)]
逻辑是连后面两个domain条件

* 表单视图
# 添加在动作和菜单项后面 <act_window> <menuitem>
代码如下:
<record id="view_form_todo_task_ui" model="ir.ui.view">
<field name="name">view_form_todo_task_ui</field>
<field name="model">todo.task</field>
<field name="arch" type="xml">
<form>
<header> <!-- Buttons and status widget --> </header>
<sheet> <!-- Form content --> </sheet>
<!-- History and communication: -->
<div class="oe_chatter">
<field name="message_follower_ids"
widget="mail_followers"/>
<field name="message_ids"
widget="mail_thread"/>
</div>
</form>
</field>
</record>
#包含三个可视域:
<header>
<sheet> 放内容的
<bottom> 历史记录和社交部分
# header 状态栏
<header>
<field name="stage_state" invisible="True"/>
<button name="do_toggle_done" type="object"
attrs="{‘invisible‘:
[(‘stage_state‘,‘in‘,[‘done‘,‘cancel‘])]}"
string="Toggle Done" class="oe_highlight"/>
<!-- Add stage statusbar: ... -->
</header>
@ class="oe_highlight" 加高亮
@ invisible 为可见性,还可以用到其它元素上,不仅在<botton>上

* 视图元素
#按钮<button>,支持的属性
icon 可用的icon在 addons/web/static/src/img/icons
string 按钮的显示文字
type 值可以是 workflow, object action
name 就是要触发的方法标识
args 传递方法的参数
content 上下文
confirm 针对对话框的确认
special="cancel" 用于向导

#字段<field>,支付的属性
name 字段技术名
string 显示名
help 帮助提示
placeholder 占位文字
widget 小物件
options 小物件对应的选项
class 加载类名
invisible="1" 标识不可见
nolabel="1" 不显示标签,会用于<group>之内
readonly="1" 标识只读
required="1" 标识不能为空

sum,avg 小计,平均值
password="True" 密码框
filename 文件上传用
mode="tree" One2many字段

#关联字段
options={‘no_open‘:True,‘no_create‘:True}
常用于 context 和 domain中

# 小物件
用于文本字段
email url html
用于数字字段
float_time monetary progressbar
用于关联和选择
many2many_tags
selection
radio
kanban_state_selection
priority

* 事件变化
@api.onchange(‘field1‘,‘field2‘)

* 动态视图
# group
# states
增加灵活性 用 refers_to
<field name="refers_to"
attrs="{‘invisible‘: [(‘state‘,‘=‘,‘draft‘)]}" />

* 列表视图
<record id="todo_app.view_tree_todo_task" model="ir.ui.view">
<field name="name">To-do Task Tree</field>
<field name="model">todo.task</field>
<field name="arch" type="xml">
<tree editable="bottom"
colors="gray:is_done==True"
fonts="italic: state!=‘open‘" delete="false">
<field name="name"/>
<field name="user_id"/>
</tree>
</field>
</record>

# <tree>
editable 设置字段在列表直接可以编辑
colors 按条件设定记录的颜色
fonts 按条件设定记录的字体
create,delete,edit 若设置为false 则为不可用

* 搜索视图
代码如下:
<record id="todo_app.view_filter_todo_task"
model="ir.ui.view">
<field name="name">To-do Task Filter</field>
<field name="model">todo.task</field>
<field name="arch" type="xml">
<search>
<field name="name" domain_filter="[‘|‘,
(‘name‘,‘ilike‘,self),(‘user_id‘,‘ilike‘,self)]"/>
<field name="user_id"/>
<filter name="filter_not_done" string="Not Done"
domain="[(‘is_done‘,‘=‘,False)]"/>
<filter name="filter_done" string="Done"
domain="[(‘is_done‘,‘!=‘,False)]"/>
<separator/>
<filter name="group_user" string="By User"
context="{‘group_by‘: ‘user_id‘}"/>
</search>
</field>
</record>

# <search>
上面显示,只有name 和 user_id 搜索
field元素定义的属性
name 字段标识名
string 标签名
operator 操作符
domain_filter 过滤记录按条件
groups 用于分组
filter元素支持属性
name 指定动作标识符
string 标签名
domain 过滤记录按条件
content 上下文
groups 分组列出

* 日历视图
<record id="view_calendar_todo_task" model="ir.ui.view">
<field name="name">view_calendar_todo_task</field>
<field name="model">todo.task</field>
<field name="arch" type="xml">
<calendar date_start="date_deadline" color="user_id"
display="[name], Stage [stage_id]">
<!-- Fields used for the text of display attribute -->
<field name="name"/>
<field name="stage_id"/>
</calendar>
</field>
</record>
#<calendar>
date_start 开始日期
date_end 结束日期
date_delay 周期
color 用颜色的实体
display 显示文字

* 甘特视图
<record id="view_gantt_todo_task" model="ir.ui.view">
<field name="name">view_gantt_todo_task</field>
<field name="model">todo.task</field>
<field name="arch" type="xml">
<gantt date_start="date_deadline"
default_group_by="user_id"/>
</field>
</record>

#<gantt>
date_start 开始日期
date_end 结束日期
date_delay 周期
progress 进度百分比
default_group_by 任务分组条件

* 图表视图
<record id="view_graph_todo_task" model="ir.ui.view">
<field name="name">view_graph_todo_task</field>
<field name="model">todo.task</field>
<field name="arch" type="xml">
<graph type="pivot">
<field name="stage" type="col"/>
<field name="user_id"/>
<field name="date_deadline" interval="week"/>
<field name="effort_estimate" type="measure"/>
</graph>
</field>
</record>
#<graph>
字段支持的属性<field>
name 字段标识名
type 分组方式,默认是row 行 ,设定可以是col列
interval 时间度量 day,week,month,quarter 或 year

时间: 2024-08-05 07:08:08

(04)odoo视图操作的相关文章

C#:列表视图操作类

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86

Windows之Xmanager连接linux打开Oracle视图操作

前提:安装Xmanager 能够百度Xmanager下载其破解版或者带注冊机的版本号,也能够官网下载.只是须要秘钥(建议下载企业版) 官网下载地址:http://www.netsarang.com/download/down_xme.html 使用(以RedHat 5.8为例): 一:Xstart 打开Xstart,新建须要远程的Linux的会话 1)新建:输入新建远程会话名称 2)主机:远程Linux的IP 3)协议:此处使用SSH协议 4)username:Linuxserver的用户登录名

hibernate mysql视图操作

hibernate对视图操作,首先建立数据库视图 视图v_invite: create view pintu.v_invite asselect cp.user_id as be_user_id,cai.activity_invite_id,cai.person_id,cai.person_name,cai.be_person_id,cai.activity_id,cai.invite_timefrom ptcom.com_person cp, ptcom.com_activity_invite

MySQL之视图操作

MySQL之视图操作 视图 什么是视图 视图就是一条select语句执行后返回的结果集,所以我们在创建视图的时候,主要的工作就是在创建这条select语句上. 视图的特性 视图是对若干张基本表的引用,是一张虚表,查询语句执行的结果,不存储具体的数据(基本表发生了改变,视图也会跟着被改变) 和基本表一样,也可以增删改查操作(但是增删改操作会有一定的条件限定) 视图的作用 方便操作,特别是查询操作,减少复杂的SQL语句,增强可读性 更加安全,数据库授权命令不能限制到特定的行和特定的列,但是通过合理的

Oracle SQL基础(3)-索引/触发器/视图操作

本文只列出索引,触发器,视图的简单操作语句 1.索引 a.创建 create index idx_name on fdh_client_info(name); --普通索引(单列索引) create unique index uni_idx_id on fdh_client(id); --唯一索引 create index union_idx_name_addr on fdh_client(name, address); --联合索引 b.查询索引 select * from user_inde

php视图操作

一.视图的基本介绍 视图是虚拟的表.与包含数据的表不一样,视图只包含使用时动态检索数据的查询. 使用视图需要MySQL5及以后的版本支持. 下面是视图的一些常见应用: 重用SQL语句: 简化复杂的SQL操作: 使用表的组成部分而不是整个表: 保护数据: 更改数据格式和表示: 在视图创建之后,可以用与表基本相同的方式利用它们. 但对于大量的复杂或嵌套视图,性能可能下降得很厉害.因此在部署相应的应用前,应进行充分的测试. 二.使用视图的规则和限制 与表一样,视图必须唯一命名(不能给视图取与别的视图或

(47) odoo详细操作手册

odoo 8 详细操作手册, ERP(Odoo8.0)操作手册-v1.10(陈伟明).pdf 链接: http://pan.baidu.com/s/1hsp0bVQ 密码: r9tt 花了将近9个月时间平时整理的手册,共913页,可能稍微有点长,但还是很有参考价值, 希望对大家有帮助.

(03)odoo 模型操作

* 创建模型: class Stage(models.Model): _name = 'todo.task.stage' _order = 'sequence,name' _rec_name = 'name' _table = 'todo_task_stage' # _name 模型的标识符,用于引用 # _order 用于browsed时的记录的排序 # _rec_name 覆盖默认的name字段 # _table 映射到数据库的表名,可自定义,默认是模型标识符把"."换成"

安装Win7与Ubuntu16.04双系统操作教程

安装主要分为以下几步: 一. 下载Ubuntu 16.04镜像软件: 二. 制作U盘启动盘使用ultraISO: 三. 安装Ubuntu系统: 四. 用EasyBCD 创建启动系统启动引导: (根据个人情况,选择性的安装) 五. 开启系统: 一. 下载ubuntu16.04  直接到官网免费下载 http://www.ubuntu.com/download/desktop 根据自己电脑配置,选择下载64位或32位系统 二. 制作U盘启动器  1下载UltraISO软件安装并打开 2.网上搜索教程