Allow searching members by shelf, prefetch_related search strings
utils.gen_search_strings() times before: 1.4 s after member shelves: 2.6 s after prefetch_related: 0.7 s
This commit is contained in:
parent
342c6f0189
commit
f3450b5991
|
@ -157,7 +157,7 @@ def gen_search_strings():
|
|||
start = time.time()
|
||||
|
||||
search_strings = {}
|
||||
for m in models.Member.objects.order_by('-expire_date'):
|
||||
for m in models.Member.objects.order_by('-expire_date').prefetch_related('user__storage'):
|
||||
string = '{} {} | {} {}'.format(
|
||||
m.preferred_name,
|
||||
m.last_name,
|
||||
|
@ -166,11 +166,18 @@ def gen_search_strings():
|
|||
)
|
||||
|
||||
string += ' | ' + m.user.email
|
||||
|
||||
if m.discourse_username:
|
||||
string += ' | ' + m.discourse_username
|
||||
|
||||
string += ' | ' + str(m.id)
|
||||
|
||||
for s in m.user.storage.all():
|
||||
string += ' | ' + s.shelf_id
|
||||
|
||||
string = string.lower()
|
||||
search_strings[string] = m.id
|
||||
|
||||
cache.set('search_strings', search_strings)
|
||||
|
||||
logger.info('Generated search strings in %s s.', time.time() - start)
|
||||
|
|
|
@ -178,7 +178,7 @@ export function Members(props) {
|
|||
<Container>
|
||||
<Header size='large'>Member List</Header>
|
||||
|
||||
<p>Search by name, email, Spacebar username, or member ID:</p>
|
||||
<p>Search by name, email, Spacebar username, member ID, or member shelf:</p>
|
||||
|
||||
<Input autoFocus focus icon='search'
|
||||
placeholder='Search...'
|
||||
|
|
Loading…
Reference in New Issue
Block a user