File diff 69d7924e89d0 → 2bf594b86cb1
www/conservancy/apps/news/views.py
Show inline comments
 
from django.views.generic.list_detail import object_list
 
# 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 conservancy.apps.news.models import ExternalArticle
 
from conservancy.apps.events.models import Event
 
from datetime import datetime
 
# for debugging...
 
from django.http import HttpResponse
 

	
 

	
 
class NewsListView(ListView):
 
    extra_context = {}
 
    def get_context_data(self, **kwargs):
 
        context = super(NewsListView, self).get_context_data(**kwargs)
 
        # context['key'] = 'value'
 
        context.update(self.extra_context)
 
        return context
 
                                    
 
def custom_index(request, queryset, *args, **kwargs):
 
    """News index.  Calls a generic list view, but passes additional
 
    context including past and future events, and an index of news by
 
    year.
 
    """
 
    # debug = '<pre>This is news'
 
    # debug += '\nqueryset: ' + str(queryset)
 
    # debug += '\nargs: ' + str(args)
 
    # debug += '\nkwargs: ' + str(kwargs)
 
    # debug += '</pre>'
 
    # return HttpResponse(debug)
 

	
 
    articles = None
 
    #if not request.GET.has_key("page"):
...
 
@@ -28,8 +47,62 @@ def custom_index(request, queryset, *args, **kwargs):
 
                                         'past_events': past_events})
 
    del kwargs['date_field']
 

	
 
    return object_list(request, queryset, *args, **kwargs)
 
    # 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)
 

	
 
#    num_navigation = 3 # in each direction
 
#    page_navigation = range(max((page - num_navigation), 1),
 
#                            min((page + num_navigation), page_count) + 1)
 

	
 
class NewsYearArchiveView(YearArchiveView):
 
    # queryset = Article.objects.all()
 
    # date_field = "pub_date"
 
    make_object_list = True
 
    allow_future = True
 

	
 
# def archive_year(request, **kwargs):
 
#     callable = NewsYearArchiveView.as_view(**kwargs)
 
#     return callable(request)
 

	
 
class NewsMonthArchiveView(MonthArchiveView):
 
    allow_future = True
 

	
 
# def archive_month(request, **kwargs):
 
#     # return HttpResponse("archive_month")
 
#     callable = NewsMonthArchiveView.as_view(**kwargs)
 
#     return callable(request)
 

	
 
class NewsDayArchiveView(DayArchiveView):
 
    allow_future = True
 

	
 
# def archive_day(request, **kwargs):
 
#     # return HttpResponse("archive_day")
 
#     callable = NewsDayArchiveView.as_view(**kwargs)
 
#     return callable(request)
 

	
 
class NewsDateDetailView(DateDetailView):
 
    # extra_context = {}
 
    allow_future = True
 
    # slug_url_kwarg = 'slug'
 

	
 
    # def get_context_data(self, **kwargs):
 
    #     context = super(NewsDateDetailView, self).get_context_data(**kwargs)
 
    #     context.update(self.extra_context)
 
    #     return context
 

	
 
# def object_detail(request, **kwargs):
 
#     # extra_context = {}
 
#     # extra_context['slug'] = kwargs['slug']
 
#     # del kwargs['slug']
 
#     # kwargs['extra_context'] = extra_context
 
#     # return HttpResponse("object_detail: " + str(kwargs))
 
#     # slug = kwargs['slug']
 
#     # del kwargs['slug']
 
#     callable = NewsDateDetailView.as_view(**kwargs)
 
#     return callable(request)