Odoo 10:更改字段的日期时间选择器选项

Odoo 10: Change datetime picker options for a field

这是 Odoo 10 和默认的 bootstrap-datetimepicker。

我的视图中有一个字段具有 "Start of event" 日期时间。我希望显示的日期选择器以 5 分钟为间隔工作 (minuteStepping: 5),并显示时间选择器和日期选择器 (sideBySide: true)。

我已通过手动编辑 addons/web/static/src/js/widgets/date_picker.js 确认它可以正常工作。

但是,我更愿意将我想要更改的两个选项作为参数提供给视图 XML 中 <form> 标记下的 <field ..> 定义。源 Widget 在它的 init 方法中接受一个 options 参数,它扩展到最后一个选项对象,但我无法将我的配置选项插入到这个对象中。

我尝试将其设置为 <field ... options="{...}".. t-field-options='..',但我猜后者不会起作用,因为在我看来我不在 qweb 上下文中,而第一个一个不被小部件读取。

有什么方法可以在不创建新小部件的情况下做到这一点? (并希望不子类化或扩展现有的小部件,而是将其保留为纯视图配置选项)?

您可以在本模块中看到一个很好的示例。 https://github.com/OCA/web/tree/10.0/web_m2x_options

在文件中。 static/src/js/form.js.

该模块已覆盖 Many2one 字段以添加不同的选项,可以在 XML 字段声明中设置。

Example : <field name="partner_id" options="{'search_more':true}" />

在这个例子中。搜索更多按钮在所有情况下都可见。

您可以使用此模块的逻辑作为小部件扩展的基础。

安装:

第一次,您必须下载 Github 存储库。

https://github.com/jo541/web

Select 分支 10.0。 在存储库中,有一个命名模块 "web_widget_datepicker_options"。该模块使您可以根据需要为特定字段指定任何选项。

在 Odoo 上下载并安装模块后。您需要重新加载浏览器缓存才能确定。

修改:

现在您可以修改表单视图了。例如,我将使用视图表单 sale.order。

在表单视图 sale.order 中,您有一个字段 "date_order"。如果您希望时间步长为 5 步 5。

<field name="date_order" options="{'datepicker':{'minuteStepping': 5}}" attrs="{'invisible': [('state', 'in', ['sale', 'done', 'cancel'])]}"/>

关键字 datepicker 的字典中的所有选项都将添加到 bootstrap 日期选择器的选项中。