Add support for timestamp field as datetime in domain parser

Closes #12776
(grafted from c2d266d5fd2591477a400f44d772e0dea499fee6)

--HG--
branch : 7.0
This commit is contained in:
Cédric Krier
2024-01-30 12:07:21 +01:00
parent e93563bfe2
commit cfe83d64d2
2 changed files with 13 additions and 4 deletions
+7 -2
View File
@@ -1576,6 +1576,7 @@
'multiselection': complete_selection,
'reference': complete_reference,
'datetime': complete_datetime,
'timestamp': complete_datetime,
'date': complete_date,
'time': complete_time
};
@@ -1853,8 +1854,10 @@
operator = '=';
}
}
if (~['integer', 'float', 'numeric', 'datetime', 'date',
'time'].indexOf(field.type)) {
if (~[
'integer', 'float', 'numeric',
'datetime', 'timestamp', 'date',
'time'].indexOf(field.type)) {
if ((typeof value == 'string') && value.contains('..')) {
var values = value.split('..', 2);
var lvalue = this.convert_value(field, values[0], this.context);
@@ -2086,6 +2089,7 @@
}
}
};
converts.timestamp = converts.datetime;
var func = converts[field.type];
if (func) {
return func();
@@ -2202,6 +2206,7 @@
}
}
};
converts.timestamp = converts.datetime;
if (value instanceof Array) {
return value.map(v => this.format_value(field, v)).join(';');
} else {
+6 -2
View File
@@ -298,6 +298,7 @@ def convert_value(field, value, context=None):
'multiselection': convert_selection,
'reference': convert_selection,
'datetime': convert_datetime,
'timestamp': convert_datetime,
'date': convert_date,
'time': convert_time,
'timedelta': convert_timedelta,
@@ -402,6 +403,7 @@ def format_value(field, value, target=None, context=None):
'multiselection': format_selection,
'reference': format_reference,
'datetime': format_datetime,
'timestamp': format_datetime,
'date': format_date,
'time': format_time,
'timedelta': format_timedelta,
@@ -465,6 +467,7 @@ def complete_value(field, value):
'multiselection': complete_selection,
'reference': complete_reference,
'datetime': complete_datetime,
'timestamp': complete_datetime,
'date': complete_date,
'time': complete_time,
}
@@ -852,8 +855,9 @@ class DomainParser(object):
operator = '!='
else:
operator = '='
if field['type'] in ('integer', 'float', 'numeric',
'datetime', 'date', 'time'):
if field['type'] in {
'integer', 'float', 'numeric',
'datetime', 'timestamp', 'date', 'time'}:
if isinstance(value, str) and '..' in value:
lvalue, rvalue = value.split('..', 1)
lvalue = convert_value(field, lvalue, self.context)