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):
# def archive_month(request, **kwargs):
# # return HttpResponse("archive_month")
# callable = NewsMonthArchiveView.as_view(**kwargs)
class NewsDayArchiveView(DayArchiveView):
# def archive_day(request, **kwargs):
# # return HttpResponse("archive_day")
# callable = NewsDayArchiveView.as_view(**kwargs)
class NewsDateDetailView(DateDetailView):
# extra_context = {}
# 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']
# callable = NewsDateDetailView.as_view(**kwargs)