概念
甘特图视图适当地显示甘特图(用于调度)
属性
gantt视图的根元素是,它没有子元素,但可以采用以下属性:
-
date_start (必填)
为每个记录提供事件开始日期时间的字段的名称 -
date_stop(必填)
为每个记录提供事件结束持续时间的字段的名称 -
color
根据其值为药丸着色的字段名称 -
decoration-{$name}
允许根据相应记录的属性更改行文本的样式。值是Python表达式。对于每条记录,表达式都使用记录的属性作为上下文值进行评估,如果为真,则将相应的样式应用于该行。以下是上下文中可用的一些其他值
-
uid: 当前用户的id
-
today: 当前本地日期作为YYYY-MM-DD形式的字符串
-
now: 添加当前时间后与今天相同。此值格式为YYYY-MM-DD hh:mm:ss
{$name} 可以是以下引导上下文颜色之一(danger, info, secondary, success or warning).
-
-
default_group_by
按以下方式对任务进行分组的字段名称 -
disable_drag_drop
如果设置为true,甘特图视图将没有任何拖放支持 -
consolidation
在记录单元格中显示合并值的字段名 -
consolidation_max
以"group by"字段为键的字典,以及在以红色显示单元格之前可以达到的最大合并值(例如{“user_id”: 100}) -
consolidation_exclude
描述任务是否必须从合并中排除的字段的名称如果设置为true,它会在合并行中显示一个条带区域 -
create, cell_create, edit, delete, plan
允许通过将相应属性设置为false(默认值:true)来禁用视图中的相应操作-
create:如果启用,将在控制面板中提供添加按钮以创建记录
-
cell_create:如果启用并启用创建,则将鼠标悬停在时隙单元格上以在该时隙上创建新记录时将显示“+”按钮
-
edit: 如果启用,打开的记录将处于编辑模式(因此可编辑)。
-
plan:如果启用并启用编辑功能,将在时隙上显示一个"放大镜"按钮,以将未分配的记录计划到该时隙中
-
-
offset
根据刻度,今天要添加的单位数来计算默认周期。示例:default_scale周的偏移量为+1将打开下周的甘特图,default_scale月的偏移量为-2将打开2个月前的甘特图。 -
progress
为记录的事件提供完成百分比的字段的名称,介于0和100之间 -
string
甘特视图的标题 -
precision
JSON对象指定每个刻度中药丸的捕捉精度
刻度日的可能值为(默认值:hour)-
hour: 记录时间快照到完整的小时 (ex: 7:12 becomes 8:00)
-
hour:half: 记录时间为半小时 (ex: 7:12 becomes 7:30)
-
hour:quarter: 记录时间为半小时(ex: 7:12 becomes 7:15)
刻度周的可能值为(默认值:day:half)
-
day: 记录时间快照到全天 (ex: 7:28 AM becomes 11:59:59 PM of the previous day, 10:32 PM becomes 12:00 PM of the current day)
-
day:half: 记录时间为半小时 (ex: 7:28 AM becomes 12:00 PM)
刻度月的可能值为 (default: day:half):
-
day: 记录时间快照到全天 (ex: 7:28 AM becomes 11:59:59 PM of the previous day, 10:32 PM becomes 12:00 PM of the current day)
-
day:half:记录时间为半小时 (ex: 7:28 AM becomes 12:00 PM)
比例年总是捕捉到全天
精度属性示例: {“day”: “hour:quarter”, “week”: “day:half”, “month”: “day”} -
-
total_row
布尔值来控制是否应该显示包含记录总数的行 (default: false) -
collapse_first_level
布尔值来控制如果按一个字段分组是否可以折叠每行。(默认值:false,按两个字段分组时开始折叠) -
display_unavailability
布尔值将模型的gantt_unavailability函数返回的日期标记为甘特视图中的可用日期。记录仍然可以在其中调度,但它们的不可用会直观地显示出来。(默认值:假) -
default_scale
呈现视图时的默认比例。可能的值是(默认值:月):-
day
-
week
-
month
-
year
-
-
scales
此视图允许的标度以逗号分隔的列表。默认情况下,允许所有标度。有关此列表中可能使用的标度值,请参见default_scale -
templates
定义QWeb模板模板gant-popover,当用户将鼠标悬停在gantt视图中的一条记录上时使用该模板。gantt视图使用大多数标准的javascript qweb并提供以下上下文变量:
-
widget
当前的GanttRow()可用于获取一些元信息。在颜色整数中转换的getColor方法也可以直接在模板上下文中使用,无需使用小部件 -
on_create
如果在单击视图上的添加按钮时指定,而不是打开一个通用对话框,启动一个客户端操作。这应该保存该操作的xmcover(例如:on_create=“%(my_module.my_wizard)d”
-
-
form_view_id
视图在用户创建或编辑记录时打开。请注意,如果未设置此属性,甘特图视图将回退到当前操作中表单视图的id(如果有) -
dynamic_range
如果设置为true,甘特图将从第一条记录开始,而不是从年/月/日开始。 -
thumbnails
如果组是关系字段,这允许在组名称旁边显示缩略图。这需要一个python判断,哪个键是活动模型上字段的名称。值是相关模型上保存缩略图的字段的名称。
案例
使用Odoo看板视图中的model,创建起始和结束时间字段,字段类型必须为Datetime类型
start_date = fields.Datetime(string="开始时间",default=fields.Date.today())
end_date = fields.Datetime(string='结束时间', default=fields.Date.today())
新增甘特图
<record model="ir.ui.view" id="view_gantt">
<field name="name">gantt</field>
<field name="model">test_demo.comics</field>
<field name="arch" type="xml">
<gantt string="gantt" date_start="start_date " date_stop="end_date" >
<field name="name"/>
<field name="total"/>
<field name="score"/>
<field name="cover_image" widget="image"/>
</gantt>
</field>
</record>
在显示视图的action中,引入gantt
<record id="act_comics_view" model="ir.actions.act_window">
<field name="name">comics</field>
<field name="res_model">test_demo.comics</field>
<field name="view_mode">tree,kanban,calendar,gantt,form</field>
</record>
注:社区版不支持甘特图!所以不会显示