def _personas(request): """Handle the request for persona searches.""" initial = dict(request.GET.items()) # Ignore these filters since return the same results for Firefox # as for Thunderbird, etc. initial.update(appver=None, platform=None) form = ESSearchForm(initial, type=amo.ADDON_PERSONA) form.is_valid() qs = Addon.search_public() filters = ['sort'] mapping = { 'downloads': '-weekly_downloads', 'users': '-average_daily_users', 'rating': '-bayesian_rating', 'created': '-created', 'name': 'name.raw', 'updated': '-last_updated', 'hotness': '-hotness' } results = _filter_search(request, qs, form.cleaned_data, filters, sorting=mapping, sorting_default='-average_daily_users', types=[amo.ADDON_PERSONA]) form_data = form.cleaned_data.get('q', '') search_opts = {} search_opts['limit'] = form.cleaned_data.get('pp', DEFAULT_NUM_PERSONAS) page = form.cleaned_data.get('page') or 1 search_opts['offset'] = (page - 1) * search_opts['limit'] pager = amo.utils.paginate(request, results, per_page=search_opts['limit']) categories, filter, base, category = personas_listing_view(request) context = { 'pager': pager, 'form': form, 'categories': categories, 'query': form_data, 'filter': filter, 'search_placeholder': 'themes' } return render(request, 'search/personas.html', context)
def _personas(request): """Handle the request for persona searches.""" initial = dict(request.GET.items()) # Ignore these filters since return the same results for Firefox # as for Thunderbird, etc. initial.update(appver=None, platform=None) form = ESSearchForm(initial, type=amo.ADDON_PERSONA) form.is_valid() qs = Addon.search_public() filters = ['sort'] mapping = { 'downloads': '-weekly_downloads', 'users': '-average_daily_users', 'rating': '-bayesian_rating', 'created': '-created', 'name': 'name.raw', 'updated': '-last_updated', 'hotness': '-hotness'} results = _filter_search(request, qs, form.cleaned_data, filters, sorting=mapping, sorting_default='-average_daily_users', types=[amo.ADDON_PERSONA]) form_data = form.cleaned_data.get('q', '') search_opts = {} search_opts['limit'] = form.cleaned_data.get('pp', DEFAULT_NUM_PERSONAS) page = form.cleaned_data.get('page') or 1 search_opts['offset'] = (page - 1) * search_opts['limit'] pager = amo.utils.paginate(request, results, per_page=search_opts['limit']) categories, filter, base, category = personas_listing_view(request) context = { 'pager': pager, 'form': form, 'categories': categories, 'query': form_data, 'filter': filter, 'search_placeholder': 'themes'} return render(request, 'search/personas.html', context)