def items(self): """ Return all published items for models that subclass ``Displayable``, excluding those that point to external sites. """ # Fake homepage object. home = Displayable() setattr(home, "get_absolute_url", home_slug) items = {home.get_absolute_url(): home} for model in get_models(): if issubclass(model, Displayable): for item in (model.objects.published().filter(in_sitemap=True) .exclude(slug__startswith="http://") .exclude(slug__startswith="https://")): items[item.get_absolute_url()] = item return items.values()
def search_filter(request, query, filter=None, page=1): results = get_search_results(query, filter, page) result_types = [subclass.__name__ for subclass in Displayable.__subclasses__() if "pari" in subclass.__module__] return render_dajax_response('article/includes/search_result_list.html', {'results': results, 'query': query, 'filter': filter, 'result_types': result_types, 'request': request})
def get_context_data(self, **kwargs): context = super(SearchList, self).get_context_data(**kwargs) context['result_types'] = [subclass.__name__ for subclass in Displayable.__subclasses__() if "pari" in subclass.__module__] context['filter'] = self.request.GET.get('filter') context['query'] = self.request.GET.get('query') return context
def get_result_types(filter, display_count=4): return [subclass.__name__ for subclass in sorted([subclass for subclass in Displayable.__subclasses__() if "pari" in subclass.__module__ and is_searchable(subclass)], key=lambda x: type_sort_order(x, filter, display_count), reverse=True)]