Fix API enum fields and add last_iteration to range queries

This commit is contained in:
allegroai 2021-05-03 17:37:49 +03:00
parent 7a4a5eb03e
commit 78e4a58c91
3 changed files with 18 additions and 12 deletions

View File

@ -218,7 +218,7 @@ class ActualEnumField(fields.StringField):
) )
def parse_value(self, value): def parse_value(self, value):
if value is NotSet and not self.required: if value in (NotSet, None) and not self.required:
return self.get_default_value() return self.get_default_value()
try: try:
# noinspection PyArgumentList # noinspection PyArgumentList

View File

@ -78,6 +78,7 @@ class GetMixin(PropsMixin):
MultiFieldParameters = namedtuple("MultiFieldParameters", "pattern fields") MultiFieldParameters = namedtuple("MultiFieldParameters", "pattern fields")
_field_collation_overrides = {} _field_collation_overrides = {}
_numeric_collation = {"locale": "en_US", "numericOrdering": True}
class QueryParameterOptions(object): class QueryParameterOptions(object):
def __init__( def __init__(
@ -708,16 +709,21 @@ class GetMixin(PropsMixin):
if res: if res:
query_sets = [cls.objects(q) for q in res] query_sets = [cls.objects(q) for q in res]
query_sets = [qs.order_by(*order_by) for qs in query_sets] query_sets = [qs.order_by(*order_by) for qs in query_sets]
if order_field: # if order_field:
collation_override = first( # collation_override = first(
v # v
for k, v in cls._field_collation_overrides.items() # for k, v in cls._field_collation_overrides.items()
if order_field.startswith(k) # if order_field.startswith(k)
) # )
if collation_override: # if collation_override:
query_sets = [ # query_sets = [
qs.collation(collation=collation_override) for qs in query_sets # qs.collation(collation=collation_override) for qs in query_sets
] # ]
# always use numeric collation
query_sets = [
qs.collation(collation=cls._numeric_collation) for qs in query_sets
]
if search_text: if search_text:
query_sets = [qs.search_text(search_text) for qs in query_sets] query_sets = [qs.search_text(search_text) for qs in query_sets]

View File

@ -197,7 +197,7 @@ class Task(AttributedDocument):
"project", "project",
"parent", "parent",
), ),
range_fields=("started", "active_duration", "last_metrics.*"), range_fields=("started", "active_duration", "last_metrics.*", "last_iteration"),
datetime_fields=("status_changed", "last_update"), datetime_fields=("status_changed", "last_update"),
pattern_fields=("name", "comment"), pattern_fields=("name", "comment"),
) )