X-Git-Url: https://git.openstreetmap.org./osqa.git/blobdiff_plain/1b21d42675c8a3a02c7dce35d101cbc4e5ca423e..2444d6ffd7995be782615589fb1d5aef2c8277ce:/forum/views/readers.py?ds=sidebyside diff --git a/forum/views/readers.py b/forum/views/readers.py index 1c4dfcc..f8113be 100644 --- a/forum/views/readers.py +++ b/forum/views/readers.py @@ -29,6 +29,7 @@ from forum.forms import get_next_url from forum.actions import QuestionViewAction from forum.http_responses import HttpResponseUnauthorized from forum.feed import RssQuestionFeed, RssAnswerFeed +from forum.utils.pagination import generate_uri import decorators class HottestQuestionsSort(pagination.SortBase): @@ -76,7 +77,6 @@ def feed(request): settings.APP_TITLE + _(' - ')+ _('latest questions'), settings.APP_DESCRIPTION)(request) - @decorators.render('index.html') def index(request): paginator_context = QuestionListPaginatorContext() @@ -163,11 +163,11 @@ def question_list(request, initial, #answer_description = _("answers") if not feed_url: - req_params = "&".join(["%s=%s" % (k, v) for k, v in request.GET.items() if not k in (_('page'), _('pagesize'), _('sort'))]) + req_params = "&".join(generate_uri(request.GET, (_('page'), _('pagesize'), _('sort')))) if req_params: req_params = '&' + req_params - feed_url = mark_safe(request.path + "?type=rss" + req_params) + feed_url = mark_safe(escape(request.path + "?type=rss" + req_params)) return pagination.paginated(request, ('questions', paginator_context or QuestionListPaginatorContext()), { "questions" : questions.distinct(), @@ -223,7 +223,7 @@ def tags(request): if request.method == "GET": stag = request.GET.get("q", "").strip() if stag: - tags = tags.filter(name__contains=stag) + tags = tags.filter(name__icontains=stag) return pagination.paginated(request, ('tags', TagPaginatorContext()), { "tags" : tags, @@ -243,7 +243,7 @@ def update_question_view_times(request, question): request.session['last_seen_in_question'][question.id] = datetime.datetime.now() -def match_question_slug(slug): +def match_question_slug(id, slug): slug_words = slug.split('-') qs = Question.objects.filter(title__istartswith=slug_words[0]) @@ -267,7 +267,7 @@ def answer_redirect(request, answer): else: raise Http404() - count = answer.question.answers.filter(Q(marked=True) | filter).count() + count = answer.question.answers.filter(Q(marked=True) | filter).exclude(state_string="(deleted)").count() pagesize = pc.pagesize(request) page = count / pagesize @@ -287,7 +287,7 @@ def question(request, id, slug='', answer=None): question = Question.objects.get(id=id) except: if slug: - question = match_question_slug(slug) + question = match_question_slug(id, slug) if question is not None: return HttpResponseRedirect(question.get_absolute_url()) @@ -314,9 +314,9 @@ def question(request, id, slug='', answer=None): return HttpResponsePermanentRedirect(question.get_absolute_url()) if request.POST: - answer_form = AnswerForm(question, request.POST) + answer_form = AnswerForm(request.POST, user=request.user) else: - answer_form = AnswerForm(question) + answer_form = AnswerForm(user=request.user) answers = request.user.get_visible_answers(question)