summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/control_panel
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web/static/src/js/control_panel')
-rw-r--r--addons/web/static/src/js/control_panel/search_bar.js27
1 files changed, 18 insertions, 9 deletions
diff --git a/addons/web/static/src/js/control_panel/search_bar.js b/addons/web/static/src/js/control_panel/search_bar.js
index a56c3ea0973..a86e22a10b8 100644
--- a/addons/web/static/src/js/control_panel/search_bar.js
+++ b/addons/web/static/src/js/control_panel/search_bar.js
@@ -239,16 +239,25 @@ odoo.define('web.SearchBar', function (require) {
const { type } = this.props.fields[source.fieldName];
const parser = field_utils.parse[type];
let parsedValue;
- if (['date', 'datetime'].includes(type)) {
- const parsedDate = parser(rawValue, { type }, { timezone: true });
- const dateFormat = type === 'datetime' ? 'YYYY-MM-DD HH:mm:ss' : 'YYYY-MM-DD';
- const momentValue = moment(parsedDate, dateFormat);
- if (!momentValue.isValid()) {
- throw new Error('Invalid date');
+ switch (type) {
+ case 'date':
+ case 'datetime': {
+ const parsedDate = parser(rawValue, { type }, { timezone: true });
+ const dateFormat = type === 'datetime' ? 'YYYY-MM-DD HH:mm:ss' : 'YYYY-MM-DD';
+ const momentValue = moment(parsedDate, dateFormat);
+ if (!momentValue.isValid()) {
+ throw new Error('Invalid date');
+ }
+ parsedValue = parsedDate.toJSON();
+ break;
+ }
+ case 'many2one': {
+ parsedValue = rawValue;
+ break;
+ }
+ default: {
+ parsedValue = parser(rawValue);
}
- parsedValue = parsedDate.toJSON();
- } else {
- parsedValue = parser(rawValue);
}
return parsedValue;
}