diff --git a/www/conservancy/apps/news/views.py b/www/conservancy/apps/news/views.py index 136811837a6d5200bd0f80cfa6587566cab0f676..7a6e1cd2d6009f2c3efcac7a08df8cae40ab416a 100644 --- a/www/conservancy/apps/news/views.py +++ b/www/conservancy/apps/news/views.py @@ -1,13 +1,32 @@ -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 = '
This is news' + # debug += '\nqueryset: ' + str(queryset) + # debug += '\nargs: ' + str(args) + # debug += '\nkwargs: ' + str(kwargs) + # debug += '' + # 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) +