交互式可视化图表以显示事件
项目描述
定义一个新的视图,以交互式可视化图表的形式显示事件。
该小部件基于外部库 https://visjs.github.io/vis-timeline/examples/timeline
目录
配置
您需要定义一个以 <timeline> 为基础元素的视图。以下是此标签的可能属性
属性 |
必需? |
描述 |
---|---|---|
date_start |
是 |
定义包含事件开始时间的日期字段名称。 |
date_stop |
否 |
定义包含事件结束时间的日期字段名称。date_stop 可以与 date_start 相等,以在时间轴上显示“点”事件(瞬时事件)。 |
date_delay |
否 |
定义包含事件持续时间的浮点数/整数字段名称,默认值为 1。 |
default_group_by |
是 |
定义在访问视图或未选择其他分组时作为默认分组依据的字段名称。 |
zoomKey |
否 |
指定是否仅在按下其他键时才放大时间轴。可用值有 ‘’(不适用)、‘altKey’、‘ctrlKey’ 或 ‘metaKey’。如果您想在具有大量事件的视图中使用滚动来垂直导航,请设置此选项。 |
mode |
否 |
指定初始可见窗口。可用值有:显示当前日期的‘day’,‘week’,‘month’和‘fit’。默认值是‘fit’,以调整可见窗口以适应所有项目。 |
margin |
否 |
指定项目周围的边距。它应该遵循JSON格式。例如‘{“item”:{“horizontal”:-10}}’。可用值有:‘{“axis”: |
event_open_popup |
否 |
当设置为true时,允许在弹出窗口中编辑事件。如果没有(默认值),则通过更改到表单视图来编辑记录。 |
stack |
否 |
当设置为false时,项目将不会堆叠在一起,以至于它们重叠。 |
colors |
否 |
允许在满足表达的条件(JS语法)时设置特定的颜色。 |
dependency_arrow |
否 |
将此属性设置为x2many字段以在x2many字段引用的记录之间绘制箭头。 |
您可以声明一个自定义模板,该模板将用于渲染时间线项目。您必须命名模板为‘timeline-item’。以下是模板渲染中可用的变量
record:用于访问在时间线定义中选择的字段值。
field_utils:用于格式化和解析值(请参阅web.field_utils中可用的函数)。
您还需要在涉及模型的操作窗口中声明视图。
请参阅web_timeline/demo/ir_cron_view.xml,其中包含了一个非常基本的时间线视图示例,它被添加到cron任务中。
更进阶的示例,来自project_timeline
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_task_timeline" model="ir.ui.view">
<field name="model">project.task</field>
<field name="type">timeline</field>
<field name="arch" type="xml">
<timeline date_start="date_assign"
date_stop="date_end"
string="Tasks"
default_group_by="project_id"
event_open_popup="true"
colors="white: user_ids == []; #2ecb71: kanban_state == 'done'; #ec7063: kanban_state == 'blocked'"
dependency_arrow="depend_on_ids"
>
<field name="user_ids" />
<field name="planned_hours" />
<templates>
<t t-name="timeline-item">
<div class="o_project_timeline_item">
<t t-foreach="record.user_ids" t-as="user">
<img
t-if="record.user_ids"
t-attf-src="/web/image/res.users/#{user}/image_128/16x16"
t-att-title="record.user"
width="16"
height="16"
class="mr8"
alt="User"
/>
</t>
<span name="display_name">
<t t-esc="record.display_name" />
</span>
<small
name="planned_hours"
class="text-info ml4"
t-if="record.planned_hours"
>
<t
t-esc="field_utils.format.float_time(record.planned_hours)"
/>
</small>
</div>
</t>
</templates>
</timeline>
</field>
</record>
<record id="project.action_view_task" model="ir.actions.act_window">
<field
name="view_mode"
>kanban,tree,form,calendar,timeline,pivot,graph,activity</field>
</record>
</odoo>
用法
要访问时间线视图,您必须单击视图切换器中的带有时钟图标的按钮。第一次访问时,时间线窗口会缩放到适合所有当前元素,就像执行搜索、筛选或按组操作时一样。
您可以使用鼠标滚动在时间线中放大或缩小,并单击任何空白区域并拖动以在该方向上平移视图。
您的模型记录将显示为矩形,其宽度根据我们的定义表示事件的时间长度。您可以通过单击此矩形来选择它们。您还可以使用Ctrl或Shift键进行离散或范围选择。所选记录以不同颜色突出显示(但与背景颜色有关,差异将更加明显)。一旦选择,您就可以拖动并移动所选记录穿过时间线。
当记录被选择时,在左上角会出现一个红色的十字按钮,允许删除该记录。尽管选择了多个记录,但这不起作用。
记录根据所选的按组标准分组到不同的块中(如果没有指定,则应用默认的按组)。将记录从一块拖到另一块会更改相应的字段到表示该块的值。您还可以单击组名称直接编辑涉及记录。
双击记录进行编辑。在空白区域双击以创建一个新记录,并将组和起始日期链接到您单击的区域。通过按住Ctrl键并从左到右拖动,您可以使用拖动的起始和结束日期创建一个新的记录。
已知问题/路线图
实现一个更有效的刷新时间线的方法,在记录更新后;
使attrs属性工作;
当按m2m分组并且设置多个记录时,时间线项目只出现在一个组中。允许在两个组中显示。
当按m2m分组并拖动以更改时间或组时,不会设置对组的更改,因为这可能会使与我们想要进行的更改无关的记录消失。当项在所有组中显示时,根据拖动项的组更改值。
当项标签不适合其日期范围框时:✅ 标签正确溢出框;✅ 在标签上的任何位置单击可移动框;❌ 在框外双击标签不会打开该项。
错误跟踪器
在GitHub Issues上跟踪错误。GitHub Issues。如有问题,请检查是否已报告您的问题。如果您是第一个发现的人,请通过提供详细且受欢迎的反馈来帮助我们解决这个问题。
请不要直接联系贡献者以获取支持或技术问题帮助。
鸣谢
贡献者
Laurent Mignon <laurent.mignon@acsone.eu>
Adrien Peiffer <adrien.peiffer@acsone.eu>
Leonardo Donelli <donelli@webmonks.it>
Adrien Didenot <adrien.didenot@horanet.com>
Thong Nguyen Van <thongnv@trobz.com>
Murtaza Mithaiwala <mmithaiwala@opensourceintegrators.com>
Ammar Officewala <aofficewala@opensourceintegrators.com>
-
Pedro M. Baeza
Alexandre Díaz
César A. Sánchez
-
Dennis Sluijk <d.sluijk@onestein.nl>
Anjeel Haria
-
Houzéfa Abbasbhay
维护者
此模块由OCA维护。
OCA,或Odoo社区协会,是一个非营利组织,其使命是支持Odoo功能的协作开发并推广其广泛应用。
当前维护者
此模块是OCA/web项目的一部分,该项目位于GitHub上。
欢迎您做出贡献。有关如何贡献的信息,请访问https://odoo-community.org/page/Contribute。
项目详情
odoo_addon_web_timeline-16.0.1.1.5-py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3a83e318742598dd446d3e82f7ff2ab24f9ffe21aee415d255142608afd820fb |
|
MD5 | 9be0f35d0e911af15b814b79150034d1 |
|
BLAKE2b-256 | 95c1e4abcf4680bf8b4072e9d934826b4571a11046e1e3396e7b05e416ce0523 |