from django.views.generic import ListView
from django.views.generic.detail import DetailView
from django.contrib.syndication.views import Feed

from utils.views import PaginatedListView

from .models import Guide


class GuideListView(PaginatedListView):
    model = Guide

    def get_queryset(self, **kwargs):
        qs = Guide.objects.filter(status=1)
        return qs

    def get_context_data(self, **kwargs):
        # Call the base implementation first to get a context
        context = super(GuideListView, self).get_context_data(**kwargs)
        context['topic_list'] = Guide.tags.all()
        return context


class GuideCatListView(GuideListView):
    model = Guide

    def get_queryset(self, **kwargs):
        cat = Category.objects.get(slug=self.kwargs['slug'])
        qs = Guide.objects.filter(status=1, tags=cat)
        return qs

class GuideDetailView(DetailView):
    model = Guide


class GuideDetailViewTXT(GuideDetailView):
    template_name = "essays/entry_detail.txt"


'''
class TopicListView(ListView):
    template_name = 'archives/src_home.html'

    def queryset(self):
        return Post.objects.filter(topics__slug=self.kwargs['slug'])

    def get_context_data(self, **kwargs):
        # Call the base implementation first to get a context
        context = super(TopicListView, self).get_context_data(**kwargs)
        context['topic'] = Topic.objects.get(slug__exact=self.kwargs['slug'])
        return context


class SrcRSSFeedView(Feed):
    title = "luxagraf:src Code and Technology"
    link = "/src/"
    description = "Latest postings to luxagraf.net/src"
    description_template = 'feeds/blog_description.html'

    def items(self):
        return Post.objects.filter(status__exact=1).order_by('-pub_date')[:10]
'''