Merge "Fix default filter and sort parameters for list"
This commit is contained in:
commit
f910db5cc6
|
@ -52,8 +52,6 @@ BASE_ARTIFACT_PROPERTIES = ('id', 'visibility', 'created_at', 'updated_at',
|
|||
'activated_at', 'owner', 'status', 'description',
|
||||
'name', 'type_name', 'version')
|
||||
|
||||
DEFAULT_SORT_PARAMETERS = (('created_at', 'desc', None), ('id', 'asc', None))
|
||||
|
||||
_FACADE = None
|
||||
_LOCK = threading.Lock()
|
||||
|
||||
|
@ -302,13 +300,6 @@ def _get_all(context, session, filters=None, marker=None, limit=None,
|
|||
if marker is not None:
|
||||
marker_artifact = get(context, marker, session)
|
||||
|
||||
if sort is None:
|
||||
sort = DEFAULT_SORT_PARAMETERS
|
||||
else:
|
||||
for val in DEFAULT_SORT_PARAMETERS:
|
||||
if val not in sort:
|
||||
sort.append(val)
|
||||
|
||||
query = _do_paginate_query(query=query, limit=limit,
|
||||
marker=marker_artifact, sort=sort)
|
||||
|
||||
|
|
|
@ -479,13 +479,7 @@ class BaseArtifact(base.VersionedObject):
|
|||
# (filter_name, filter_value)
|
||||
# output format for filters is list of tuples:
|
||||
# (field_name, key_name, op, field_type, value)
|
||||
|
||||
new_filters = [('status', None, 'neq', None, cls.STATUS.DELETED)]
|
||||
if cls.get_type_name() != 'all':
|
||||
new_filters.append(
|
||||
('type_name', None, 'eq', None, cls.get_type_name()))
|
||||
if filters is None:
|
||||
return new_filters
|
||||
new_filters = []
|
||||
|
||||
for filter_name, filter_value in filters:
|
||||
if filter_name in ('tags-any', 'tags'):
|
||||
|
@ -560,12 +554,29 @@ class BaseArtifact(base.VersionedObject):
|
|||
versions should be returned in output
|
||||
:return: list of artifact objects
|
||||
"""
|
||||
if sort is not None:
|
||||
sort = cls._parse_sort_values(sort)
|
||||
else:
|
||||
sort = [('created_at', 'desc', None), ('id', 'asc', None)]
|
||||
|
||||
filters = cls._parse_filter_values(filters)
|
||||
default_sort_parameters = (
|
||||
('created_at', 'desc', None), ('id', 'asc', None))
|
||||
# Parse sort parameters and update them with defaults
|
||||
sort = [] if sort is None else cls._parse_sort_values(sort)
|
||||
for default_sort in default_sort_parameters:
|
||||
for s in sort:
|
||||
# If the default sort parameter already in the list - skip it
|
||||
if s[0] == default_sort[0]:
|
||||
break
|
||||
else:
|
||||
sort.append(default_sort)
|
||||
|
||||
default_filter_parameters = [
|
||||
('status', None, 'neq', None, cls.STATUS.DELETED)]
|
||||
if cls.get_type_name() != 'all':
|
||||
default_filter_parameters.append(
|
||||
('type_name', None, 'eq', None, cls.get_type_name()))
|
||||
# Parse filter parameters and update them with defaults
|
||||
filters = [] if filters is None else cls._parse_filter_values(filters)
|
||||
for default_filter in default_filter_parameters:
|
||||
if default_filter not in filters:
|
||||
filters.append(default_filter)
|
||||
|
||||
return [cls._init_artifact(context, af)
|
||||
for af in cls.db_api.list(
|
||||
|
|
Loading…
Reference in New Issue