odoo10中的gantt图示例
1.Gantt属性说明
甘特图视图的根元素是<gantt />
,它没有子节点但可以采用以下属性:
date_start (required)
提供每条记录事件的开始日期时间的字段名称。
date_stop
提供每条记录事件结束持续时间的字段名称。 可以用date_delay
替换。 必须提供date_stop
和date_delay
中的一个(且仅一个)。
如果记录的字段为False
,则假定为“点事件”,结束日期将设置为开始日期
date_delay
提供事件持续时间的字段的名称
duration_unit
minute
, hour
(默认的), day
, week
, month
, year
其中一个
default_group_by
要分组任务的字段的名称
注:该字段必须是实实在在存在于当前模型数据表中的字段,类似的多对多关联关系表中存放的字段不能用于该属性中
type
gantt
经典甘特视图(默认)
consolidate
第一个子节点的值在甘特任务中得到合并
planning
子节点显示在甘特图的任务中
consolidation
字段名称,用于显示记录单元格中的合并值
consolidation_max
将“group by”字段作为键的字典,以及在以红色显示单元格之前可以达到的最大合并值(例如{“user_id”:100}
)
consolidation_exclude
如果设置为true,则描述是否必须从合并中排除任务的字段的名称,它在合并行中显示条带区域
warnings
字典定义必须使用双引号,{'user_id':100}
不是有效值
string
要在合并值旁边显示的字符串,如果未指定,将使用合并字段的标签
fold_last_level
如果设置了值,则折叠最后一个分组级别
round_dnd_dates
允许将任务的开始和结束日期舍入到最近的刻度标记
drag_resize
调整任务大小,默认为true
progress
提供记录事件完成百分比的字段名称,介于0和100之间
2.Gantt示例
1 <record id="work_bd_wbs_gantt" model="ir.ui.view"> 2 <field name="name">WBS甘特图</field> 3 <field name="model">esw.work.breakdown</field> 4 <field name="arch" type="xml"> 5 <gantt type="consolidate" 6 date_start="plan_start_time" 7 date_stop="plan_end_time" 8 consolidation="work_remark" 9 default_group_by="employee_id" 10 string="WBS" 12 /> 13 <!-- 14 consolidation_exclude = "exclude" 15 round_dnd_dates="true" 16 consolidation_max = '{"work_remark": 100}' 17 --> 18 </field> 19 </record>
注:XML中注释掉的属性字段,设置了之后没有发现有什么明显的变化,有发现的可以留言告诉下
Python代码如下:
1 plan_start_time = fields.Date(u'计划开始时间', required=True) 2 plan_work_hours = fields.Integer(u'工时(小时)', required=True) 3 plan_end_time = fields.Date(u'计划结束时间') 4 employee_id = fields.Many2one( 5 'hr.employee', 6 string=u'人力资源', 7 domain=_compute_project_employee_domain 8 ) 9 pre_work_bd_id = fields.Many2one('esw.work.breakdown', string=u'前置任务') 10 work_remark = fields.Text(u'任务说明', size=200)
name = fields.Char(u'任务编号')
注:Python模型代码中建议定义name属性字段,在gantt中默认会用的该字段来做显示,不定义会显示为False
最终效果如下: