X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=m_librarian%2Fsearch.py;h=63078ced1d997ded58ccdcab2412c4cd2d123c85;hb=refs%2Ftags%2F0.0.6;hp=f1d71b71a9e9bf90deb060af373f22ff742267f6;hpb=a85145dc47b87062148a2599180e229ab7c7af2b;p=m_librarian.git diff --git a/m_librarian/search.py b/m_librarian/search.py index f1d71b7..63078ce 100644 --- a/m_librarian/search.py +++ b/m_librarian/search.py @@ -29,11 +29,6 @@ def _search_with_operator(table, case_sensitive, comparison_op, values, return AND(*_expressions) -def _search_exact(table, case_sensitive, values, expressions): - return _search_with_operator(table, case_sensitive, '__eq__', values, - expressions) - - def _search_start(table, case_sensitive, values, expressions): return _search_with_operator(table, case_sensitive, 'startswith', values, expressions) @@ -44,28 +39,39 @@ def _search_substring(table, case_sensitive, values, expressions): expressions) -def _search(table, search_type, case_sensitive, values, expressions): +def _search_full(table, case_sensitive, values, expressions): + return _search_with_operator(table, case_sensitive, '__eq__', values, + expressions) + + +def _search(table, search_type, case_sensitive, values, + expressions, orderBy=None): _search_f = globals()['_search_%s' % search_type] conditions = _search_f(table, case_sensitive, values, expressions) - return table.select(conditions) + return table.select(conditions, orderBy=orderBy) def search_authors(search_type, case_sensitive, values, - expressions): - return _search(Author, search_type, case_sensitive, values, expressions) + expressions, orderBy=None): + return _search(Author, search_type, case_sensitive, values, + expressions, orderBy) -def search_books(search_type, case_sensitive, values): - return _search(Book, search_type, case_sensitive, values) +def search_books(search_type, case_sensitive, values, orderBy=None): + return _search(Book, search_type, case_sensitive, values, + [], orderBy) -def search_extensions(search_type, case_sensitive, values): - return _search(Extension, search_type, case_sensitive, values) +def search_extensions(search_type, case_sensitive, values, orderBy=None): + return _search(Extension, search_type, case_sensitive, values, + [], orderBy) -def search_genres(search_type, case_sensitive, values): - return _search(Genre, search_type, case_sensitive, values) +def search_genres(search_type, case_sensitive, values, orderBy=None): + return _search(Genre, search_type, case_sensitive, values, + [], orderBy) -def search_languages(search_type, case_sensitive, values): - return _search(Language, search_type, case_sensitive, values) +def search_languages(search_type, case_sensitive, values, orderBy=None): + return _search(Language, search_type, case_sensitive, values, + [], orderBy)