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 存储库。
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 日期选择器的选项中。
这是 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 存储库。
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 日期选择器的选项中。