File diff 86e1646f8f31 → f742f86f4be4
www/conservancy/apps/news/views.py
Show inline comments
 
# from django.views.generic.list_detail import object_list
 
from django.views.generic import ListView
 
from django.views.generic.dates import YearArchiveView, MonthArchiveView, DayArchiveView, DateDetailView
 
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
 
from conservancy.apps.news.models import ExternalArticle
 
from conservancy.apps.events.models import Event
 
from datetime import datetime
...
 
@@ -41,18 +42,35 @@ def custom_index(request, queryset, *args, **kwargs):
 

	
 
    date_list = queryset.dates(kwargs['date_field'], 'year')
 

	
 
    paginate_by = kwargs.get('paginate_by', 6)
 
    paginator = Paginator(queryset, paginate_by)
 
    page = request.GET.get('page')
 
    try:
 
        p = paginator.page(page)
 
    except PageNotAnInteger:
 
        # If page is not an integer, deliver first page.
 
        p = paginator.page(1)
 
        page = 1
 
    except EmptyPage:
 
        # If page is out of range (e.g. 9999), deliver last page of results.
 
        p = paginator.page(paginator.num_pages)
 
        page = paginator.num_pages
 
    kwargs = dict(kwargs, extra_context={'articles': articles,
 
                                         'date_list': date_list,
 
                                         'future_events': future_events,
 
                                         'past_events': past_events,
 
                                         'page': 1})
 
                                         # 'paginator': paginator,
 
                                         'page': page,
 
                                         # 'is_paginated': True,
 
                                         # 'num_pages': paginator.num_pages
 
                                     })
 
    del kwargs['date_field']
 

	
 
    kwargs['queryset'] = queryset
 
    
 
    # return object_list(request, queryset, *args, **kwargs)
 
    # callable = NewsListView.as_view(queryset=queryset,
 
    #                                 extra_context=kwargs,
 
    #                                 paginate_by=kwargs['paginate_by'])
 
    kwargs['queryset'] = queryset
 
    callable = NewsListView.as_view(**kwargs)
 
    return callable(request)