X-Git-Url: https://git.openstreetmap.org./osqa.git/blobdiff_plain/42fc66b154f719a3e55a8dff942bf0c381af896f..9f2913c2565411c1bb8de79a9e7d17e441c9b409:/forum/views/readers.py diff --git a/forum/views/readers.py b/forum/views/readers.py index b865fbb..6e75b37 100644 --- a/forum/views/readers.py +++ b/forum/views/readers.py @@ -73,7 +73,7 @@ def tag(request, tag): @decorators.list('questions', QUESTIONS_PAGE_SIZE) def question_list(request, initial, list_description=_('questions'), sort=None, base_path=None, page_title=None, allowIgnoreTags=True): - questions = initial.filter(deleted=None, in_moderation=None) + questions = initial.filter_state(deleted=False) if request.user.is_authenticated() and allowIgnoreTags: questions = questions.filter(~Q(tags__id__in = request.user.marked_tags.filter(user_selections__reason = 'bad'))) @@ -95,7 +95,7 @@ def question_list(request, initial, list_description=_('questions'), sort=None, if request.GET.get("q"): keywords = request.GET.get("q").strip() - answer_count = Answer.objects.filter(deleted=None, parent__in=questions).count() + answer_count = Answer.objects.filter_state(deleted=False).filter(parent__in=questions).count() answer_description = _("answers") return { @@ -120,21 +120,17 @@ def search(request): if not keywords: return HttpResponseRedirect(reverse(index)) if search_type == 'tag': - return HttpResponseRedirect(reverse('tags') + '?q=%s' % (keywords.strip())) + return HttpResponseRedirect(reverse('tags') + '?q=%s' % urlquote(keywords.strip())) elif search_type == "user": - return HttpResponseRedirect(reverse('users') + '?q=%s' % (keywords.strip())) + return HttpResponseRedirect(reverse('users') + '?q=%s' % urlquote(keywords.strip())) elif search_type == "question": return question_search(request, keywords) else: return render_to_response("search.html", context_instance=RequestContext(request)) -@decoratable -def do_question_search(keywords): - return Question.objects.filter(Q(title__icontains=keywords) | Q(body__icontains=keywords)) - @decorators.render('questions.html') def question_search(request, keywords): - initial = do_question_search(keywords) + initial = Question.objects.search(keywords) return question_list(request, initial, _("questions matching '%(keywords)s'") % {'keywords': keywords}, base_path="%s?t=question&q=%s" % (reverse('search'), django_urlquote(keywords)), sort=False) @@ -152,12 +148,12 @@ def tags(request):#view showing a listing of available tags - plain list if request.method == "GET": stag = request.GET.get("q", "").strip() if stag != '': - objects_list = Paginator(Tag.objects.filter(deleted=False).exclude(used_count=0).extra(where=['name like %s'], params=['%' + stag + '%']), DEFAULT_PAGE_SIZE) + objects_list = Paginator(Tag.active.filter(name__contains=stag), DEFAULT_PAGE_SIZE) else: if sortby == "name": - objects_list = Paginator(Tag.objects.all().filter(deleted=False).exclude(used_count=0).order_by("name"), DEFAULT_PAGE_SIZE) + objects_list = Paginator(Tag.active.order_by("name"), DEFAULT_PAGE_SIZE) else: - objects_list = Paginator(Tag.objects.all().filter(deleted=False).exclude(used_count=0).order_by("-used_count"), DEFAULT_PAGE_SIZE) + objects_list = Paginator(Tag.active.order_by("-used_count"), DEFAULT_PAGE_SIZE) try: tags = objects_list.page(page) @@ -232,7 +228,7 @@ def question(request, id, slug): page = int(request.GET.get('page', 1)) view_id, order_by = get_answer_sort_order(request) - if question.deleted and not request.user.can_view_deleted_post(question): + if question.nis.deleted and not request.user.can_view_deleted_post(question): raise Http404 if request.POST: @@ -244,7 +240,7 @@ def question(request, id, slug): if answers is not None: answers = [a for a in answers.order_by("-marked", order_by) - if not a.deleted or a.author == request.user] + if not a.nis.deleted or a.author == request.user] objects_list = Paginator(answers, ANSWERS_PAGE_SIZE) page_objects = objects_list.page(page)