Add support for timestamp field as datetime in domain parser
Closes #12776 (grafted from c2d266d5fd2591477a400f44d772e0dea499fee6) --HG-- branch : 7.0
This commit is contained in:
+7
-2
@@ -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 {
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user