def feed(request): return RssQuestionFeed( request, Question.objects.filter_state( deleted=False).order_by('-last_activity_at'), settings.APP_TITLE + _(' - ') + _('latest questions'), settings.APP_DESCRIPTION)(request)
def question_list(request, initial, list_description=_('questions'), base_path=None, page_title=_("All Questions"), allowIgnoreTags=True, feed_url=None, paginator_context=None, show_summary=None, feed_sort=('-added_at',), feed_req_params_exclude=(_('page'), _('pagesize'), _('sort')), extra_context={}): if show_summary is None: show_summary = bool(settings.SHOW_SUMMARY_ON_QUESTIONS_LIST) 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'))) if page_title is None: page_title = _("Questions") if request.GET.get('type', None) == 'rss': if feed_sort: questions = questions.order_by(*feed_sort) return RssQuestionFeed(request, questions, page_title, list_description)(request) keywords = "" if request.GET.get("q"): keywords = request.GET.get("q").strip() #answer_count = Answer.objects.filter_state(deleted=False).filter(parent__in=questions).count() #answer_description = _("answers") if not feed_url: req_params = generate_uri(request.GET, feed_req_params_exclude) if req_params: req_params = '&' + req_params feed_url = request.path + "?type=rss" + req_params context = { 'questions' : questions.distinct(), 'questions_count' : questions.count(), 'keywords' : keywords, 'list_description': list_description, 'base_path' : base_path, 'page_title' : page_title, 'tab' : 'questions', 'feed_url': feed_url, 'show_summary' : show_summary, } context.update(extra_context) return pagination.paginated(request, ('questions', paginator_context or QuestionListPaginatorContext()), context)
def question_list(request, initial, list_description=_('questions'), base_path=None, page_title=_("All Questions"), allowIgnoreTags=True, feed_url=None, paginator_context=None, isIndex=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'))) if page_title is None: page_title = _("Questions") if request.GET.get('type', None) == 'rss': questions = questions.order_by('-added_at') return RssQuestionFeed(request, questions, page_title, list_description)(request) keywords = "" if request.GET.get("q"): keywords = request.GET.get("q").strip() #answer_count = Answer.objects.filter_state(deleted=False).filter(parent__in=questions).count() #answer_description = _("answers") if not feed_url: req_params = generate_uri(request.GET, (_('page'), _('pagesize'), _('sort'))) if req_params: req_params = '&' + req_params feed_url = request.path + "?type=rss" + req_params return pagination.paginated( request, ('questions', paginator_context or QuestionListPaginatorContext()), { "questions": questions.distinct(), "questions_count": questions.count(), "keywords": keywords, "list_description": list_description, "base_path": base_path, "page_title": page_title, "tab": "index" if isIndex else "questions", 'feed_url': feed_url, })
def question_list(request, initial, list_description=_('questions'), base_path=None, page_title=_("All Questions"), allowIgnoreTags=True, feed_url=None, paginator_context=None, show_summary=None, feed_sort=('-added_at', ), feed_req_params_exclude=(_('page'), _('pagesize'), _('sort')), extra_context={}): if show_summary is None: show_summary = bool(settings.SHOW_SUMMARY_ON_QUESTIONS_LIST) 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'))) if page_title is None: page_title = _("Questions") # Added custom code to OSQA to make it more useful for Magnate # Only show those questions that are linked to a given Zinnia entry # BEGIN if request.GET.get('entry', None): from zinnia.models.entry import Entry try: entry_pk = int(request.GET.get('entry')) entry = Entry.objects.get(pk=entry_pk) # make sure it exists if entry.is_public(): questions = questions.filter(about_entries__entry__pk=entry_pk) page_title = _(unicode(page_title) + " about " + entry.title) except (ValueError, Entry.DoesNotExist) as e: # If the entry id is not integer, ignore ?entry # If there is no such entry, ignore ?entry # If there is, but it is not public, ignore ?entry # If it is public, show related entries and change the title pass # END if request.GET.get('type', None) == 'rss': if feed_sort: questions = questions.order_by(*feed_sort) return RssQuestionFeed(request, questions, page_title, list_description)(request) keywords = "" if request.GET.get("q"): keywords = request.GET.get("q").strip() #answer_count = Answer.objects.filter_state(deleted=False).filter(parent__in=questions).count() #answer_description = _("answers") if not feed_url: req_params = generate_uri(request.GET, feed_req_params_exclude) if req_params: req_params = '&' + req_params feed_url = request.path + "?type=rss" + req_params context = { 'questions': questions.distinct(), 'questions_count': questions.count(), 'keywords': keywords, 'list_description': list_description, 'base_path': base_path, 'page_title': page_title, 'tab': 'questions', 'feed_url': feed_url, 'show_summary': show_summary, } context.update(extra_context) return pagination.paginated( request, ('questions', paginator_context or QuestionListPaginatorContext()), context)