odoo10中的gantt图示例

1.Gantt属性说明

甘特图视图的根元素是<gantt />,它没有子节点但可以采用以下属性:

date_start (required)

提供每条记录事件的开始日期时间的字段名称。

date_stop

提供每条记录事件结束持续时间的字段名称。 可以用date_delay替换。 必须提供date_stopdate_delay中的一个(且仅一个)。

如果记录的字段为False,则假定为“点事件”,结束日期将设置为开始日期

date_delay

提供事件持续时间的字段的名称

duration_unit

minutehour (默认的), dayweekmonthyear其中一个

default_group_by

要分组任务的字段的名称

注:该字段必须是实实在在存在于当前模型数据表中的字段,类似的多对多关联关系表中存放的字段不能用于该属性中

type

gantt经典甘特视图(默认)

consolidate 第一个子节点的值在甘特任务中得到合并

planning 子节点显示在甘特图的任务中

consolidation

字段名称,用于显示记录单元格中的合并值

consolidation_max

将“group by”字段作为键的字典,以及在以红色显示单元格之前可以达到的最大合并值(例如{“user_id”:100}

consolidation_exclude

如果设置为true,则描述是否必须从合并中排除任务的字段的名称,它在合并行中显示条带区域

string

要在合并值旁边显示的字符串,如果未指定,将使用合并字段的标签

fold_last_level

如果设置了值,则折叠最后一个分组级别

round_dnd_dates

允许将任务的开始和结束日期舍入到最近的刻度标记

drag_resize

调整任务大小,默认为true

progress

提供记录事件完成百分比的字段名称,介于0和100之间

2.Gantt示例

 <record id="work_bd_wbs_gantt" model="ir.ui.view">
<field name="name">WBS甘特图</field>
<field name="model">esw.work.breakdown</field>
<field name="arch" type="xml">
<gantt type="consolidate"
date_start="plan_start_time"
date_stop="plan_end_time"
consolidation="work_remark"
default_group_by="employee_id"
string="WBS"
/>
<!--
consolidation_exclude = "exclude"
round_dnd_dates="true"
consolidation_max = '{"work_remark": 100}'
-->
</field>
</record>

注:XML中注释掉的属性字段,设置了之后没有发现有什么明显的变化,有发现的可以留言告诉下

Python代码如下:

 plan_start_time = fields.Date(u'计划开始时间', required=True)
plan_work_hours = fields.Integer(u'工时(小时)', required=True)
plan_end_time = fields.Date(u'计划结束时间')
employee_id = fields.Many2one(
'hr.employee',
string=u'人力资源',
domain=_compute_project_employee_domain
)
pre_work_bd_id = fields.Many2one('esw.work.breakdown', string=u'前置任务')
work_remark = fields.Text(u'任务说明', size=200)
name = fields.Char(u'任务编号')

注:Python模型代码中建议定义name属性字段,在gantt中默认会用的该字段来做显示,不定义会显示为False

最终效果如下:

odoo10甘特图gantt view-LMLPHP

05-07 15:56