Let search_core return author as real list.

This lets search.html deal with real objects instead of playing with
dumed-down strings.
This commit is contained in:
voussoir 2020-09-09 13:08:41 -07:00
parent 94b811b3b1
commit d585fe92a9
4 changed files with 10 additions and 4 deletions

View file

@ -38,6 +38,7 @@ site.jinja_env.filters['file_link'] = jinja_filters.file_link
site.jinja_env.filters['sort_tags'] = jinja_filters.sort_tags site.jinja_env.filters['sort_tags'] = jinja_filters.sort_tags
site.jinja_env.filters['timestamp_to_8601'] = jinja_filters.timestamp_to_8601 site.jinja_env.filters['timestamp_to_8601'] = jinja_filters.timestamp_to_8601
site.jinja_env.filters['timestamp_to_naturaldate'] = jinja_filters.timestamp_to_naturaldate site.jinja_env.filters['timestamp_to_naturaldate'] = jinja_filters.timestamp_to_naturaldate
site.jinja_env.filters['users_to_usernames'] = jinja_filters.users_to_usernames
site.jinja_env.globals['make_attributes'] = jinja_filters.make_attributes site.jinja_env.globals['make_attributes'] = jinja_filters.make_attributes
site.debug = True site.debug = True

View file

@ -384,9 +384,6 @@ def get_search_core():
# The search has converted many arguments into sets or other types. # The search has converted many arguments into sets or other types.
# Convert them back into something that will display nicely on the search form. # Convert them back into something that will display nicely on the search form.
author_helper = lambda users: ', '.join(user.username for user in users) if users else None
search_kwargs['author'] = author_helper(search_kwargs['author'])
tagname_helper = lambda tags: [tag.name for tag in tags] if tags else None tagname_helper = lambda tags: [tag.name for tag in tags] if tags else None
search_kwargs['tag_musts'] = tagname_helper(search_kwargs['tag_musts']) search_kwargs['tag_musts'] = tagname_helper(search_kwargs['tag_musts'])
search_kwargs['tag_mays'] = tagname_helper(search_kwargs['tag_mays']) search_kwargs['tag_mays'] = tagname_helper(search_kwargs['tag_mays'])
@ -474,6 +471,9 @@ def get_search_json():
search_kwargs['extension_not'] = join_helper(search_kwargs['extension_not']) search_kwargs['extension_not'] = join_helper(search_kwargs['extension_not'])
search_kwargs['mimetype'] = join_helper(search_kwargs['mimetype']) search_kwargs['mimetype'] = join_helper(search_kwargs['mimetype'])
author_helper = lambda users: ', '.join(user.username for user in users) if users else None
search_kwargs['author'] = author_helper(search_kwargs['author'])
search_results['results'] = [ search_results['results'] = [
etiquette.jsonify.photo(result, include_albums=False) etiquette.jsonify.photo(result, include_albums=False)
if isinstance(result, etiquette.objects.Photo) else if isinstance(result, etiquette.objects.Photo) else

View file

@ -41,3 +41,8 @@ def timestamp_to_string(timestamp, format):
def timestamp_to_naturaldate(timestamp): def timestamp_to_naturaldate(timestamp):
return timestamp_to_string(timestamp, '%B %d, %Y') return timestamp_to_string(timestamp, '%B %d, %Y')
def users_to_usernames(users):
if not users:
return []
return [user.username for user in users]

View file

@ -271,7 +271,7 @@
name="extension_not" placeholder="Forbid extension(s)"> name="extension_not" placeholder="Forbid extension(s)">
<input type="text" class="basic_param" <input type="text" class="basic_param"
{%if search_kwargs['author']%} value="{{search_kwargs['author']}}" {%endif%} value="{{search_kwargs['author']|users_to_usernames|comma_join}}"
name="author" placeholder="Author"> name="author" placeholder="Author">
<select name="limit" class="basic_param"> <select name="limit" class="basic_param">