odoo10中的gantt圖示例dom
甘特圖視圖的根元素是<gantt />
,它沒有子節點但能夠採用如下屬性:ui
date_start (required)
提供每條記錄事件的開始日期時間的字段名稱。spa
date_stop
提供每條記錄事件結束持續時間的字段名稱。 能夠用date_delay
替換。 必須提供date_stop
和date_delay
中的一個(且僅一個)。code
若是記錄的字段爲False
,則假定爲「點事件」,結束日期將設置爲開始日期xml
date_delay
提供事件持續時間的字段的名稱blog
duration_unit
minute
, hour
(默認的), day
, week
, month
, year
其中一個事件
default_group_by
要分組任務的字段的名稱資源
注:該字段必須是實實在在存在於當前模型數據表中的字段,相似的多對多關聯關係表中存放的字段不能用於該屬性中rem
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之間
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
最終效果以下: