def add_translation_by_search(request): resp, li, access = _list_access_from_post_pk(request, request.POST, need_edit = True) if resp: return resp form = HighlightedModelSearchForm(request.POST) if li.language: results = form.search().filter(language_key = li.language) other_language_results = form.search().filter(language_key__not = li.language) else: results = form.search() other_language_results = None if len(results) == 1: if results[0].language_key == li.language or li.language is None: """ Only one results, apply directly. """ if results[0].object in li.translations.all(): add_message(request, WARNING, '"%s" (the only result) is already on the list.' % results[0].object) else: li.translations.add(results[0].object) """ everyone who follows this list needs to update active translations """ for need_update_access in ListAccess.objects.filter(translations_list = li): need_update_access.learner.need_update() add_message(request, INFO, '"%s" (the only result) was added to the list.' % results[0].object) return redirect(request.POST['next'] or li.get_absolute_url()) """ Show options to the user """ return render(request, 'add_choose.html', { 'results': results, 'language_results': other_language_results, 'query': request.POST['q'], 'list': li, 'next': request.POST['next'], })
def render(self, context, instance, placeholder): request = context.get('request') query = request.GET.get('q', None) page = request.GET.get('page', 1) form = HighlightedModelSearchForm(request.GET) form.search_queryset = SearchQuerySet if query: queryset = form.search() #TODO: filter pages and titles (for the unique page usage) # queryset = queryset.filter() # for item in queryset: # print item.object if not request.user.is_authenticated(): queryset = queryset.exclude(login_required=True) paginated = DiggPaginator(queryset, COMMON_PAGINATOR_PAGINATE_BY) context.update({ 'page_obj': paginated.page(page), }) context.update({ 'instance': instance, 'form': form, }) return context
class AdvancedSearchView(SearchView): '''Overrides the Haystack view''' template = 'search/advanced_search.html' form = HighlightedModelSearchForm()