Beispiel #1
0
def show(request, section_id, page_number='1'):
    ''' '''
    try:
        section = Section.objects.get(pk=section_id)
        article_set = Article.objects.filter(is_published=True, section=section).order_by('-issue__published_at').all()
        if not section.parent:
            related_sections = Section.objects.filter(parent=section).all()
        else:
            related_sections = Section.objects.filter(parent=section.parent).exclude(id=section.id).all()
    except:
        raise Http404

    page = None
    try:
        page_number = int(page_number)
        if page_number < 1:
            raise Exception
    except:
        page_number = 1

    paginator = DiggPaginator(article_set, 10)
    try:
        page = paginator.page(page_number)
        articles = page.object_list
    except:
        page = paginator.page(paginator.num_pages)
        articles = page.object_list
    if page:
        page.url = u'%s/' % section.get_absolute_url()

    breadcrumb = []
    breadcrumb.append({
             'name': request.locals['home'],
             'link': '/'
            })
    breadcrumb.append({
         'name': request.locals['section'],
         'link': '/section'
        })

    count = len(request.main_menus)
    while count > 0:
        if request.main_menus[count-1]['name'] == 'section':
            request.main_menus[count-1]['is_selected'] = True
            break
        count -= 1

    return render_to_response(request.site.settings.template + '/section.html',
        {
            'section': section,
            'page': page,
            'articles': articles,
            'related_sections': related_sections,
            'site': request.site,
            'locals': request.locals,
            'main_menus': request.main_menus,
            'breadcrumb': breadcrumb,
            'top_articles': request.top_articles
        }
    )
Beispiel #2
0
def show(request, section_id, page_number='1'):
    ''' '''
    try:
        section = Section.objects.get(pk=section_id)
        article_set = Article.objects.filter(
            is_published=True,
            section=section).order_by('-issue__published_at').all()
        if not section.parent:
            related_sections = Section.objects.filter(parent=section).all()
        else:
            related_sections = Section.objects.filter(
                parent=section.parent).exclude(id=section.id).all()
    except:
        raise Http404

    page = None
    try:
        page_number = int(page_number)
        if page_number < 1:
            raise Exception
    except:
        page_number = 1

    paginator = DiggPaginator(article_set, 10)
    try:
        page = paginator.page(page_number)
        articles = page.object_list
    except:
        page = paginator.page(paginator.num_pages)
        articles = page.object_list
    if page:
        page.url = u'%s/' % section.get_absolute_url()

    breadcrumb = []
    breadcrumb.append({'name': request.locals['home'], 'link': '/'})
    breadcrumb.append({'name': request.locals['section'], 'link': '/section'})

    count = len(request.main_menus)
    while count > 0:
        if request.main_menus[count - 1]['name'] == 'section':
            request.main_menus[count - 1]['is_selected'] = True
            break
        count -= 1

    return render_to_response(
        request.site.settings.template + '/section.html', {
            'section': section,
            'page': page,
            'articles': articles,
            'related_sections': related_sections,
            'site': request.site,
            'locals': request.locals,
            'main_menus': request.main_menus,
            'breadcrumb': breadcrumb,
            'top_articles': request.top_articles
        })
Beispiel #3
0
def search(request):
    query = request.GET.get('query', '')
    if query:
        q = u'%' + query + u'%'
        articles_set =  Article.objects.filter(is_published=True).extra( \
            where=[' title LIKE %s or body_text LIKE %s '], params=[q, q]).all()
    else:
        articles_set = []

    page = None
    try:
        page_number = int(request.GET.get('page', '1'))
        page_number = int(page_number)
        if page_number < 1:
            raise Exception
    except:
        page_number = 1

    paginator = DiggPaginator(articles_set, 10)
    try:
        page = paginator.page(page_number)
        articles = page.object_list
    except:
        page = paginator.page(paginator.num_pages)
        articles = page.object_list
    if page:
        page.url = u'/search?query=%s&page=' % query
    return render_to_response(
        request.site.settings.template + '/search.html', {
            'site': request.site,
            'locals': request.locals,
            'articles': articles,
            'page': page,
            'query': query,
            'main_menus': request.main_menus,
            'top_articles': request.top_articles
        })
Beispiel #4
0
def search(request):
    query =  request.GET.get('query', '')
    if query:
        q = u'%' + query + u'%'
        articles_set =  Article.objects.filter(is_published=True).extra( \
            where=[' title LIKE %s or body_text LIKE %s '], params=[q, q]).all()
    else:
        articles_set = []

    page = None
    try:
        page_number = int(request.GET.get('page', '1'))
        page_number = int(page_number)
        if page_number < 1:
            raise Exception
    except:
        page_number = 1

    paginator = DiggPaginator(articles_set, 10)
    try:
        page = paginator.page(page_number)
        articles = page.object_list
    except:
        page = paginator.page(paginator.num_pages)
        articles = page.object_list
    if page:
        page.url = u'/search?query=%s&page=' % query
    return render_to_response(request.site.settings.template + '/search.html', {
        'site': request.site,
        'locals': request.locals,
        'articles': articles,
        'page': page,
        'query': query,
        'main_menus': request.main_menus,
        'top_articles': request.top_articles
    })