from django.views.generic.dates import YearArchiveView, MonthArchiveView
from django.views.generic.detail import DetailView

from utils.views import PaginatedListView

from .models import Sketch


class SketchListView(PaginatedListView):
    """
    Return a list of Notes in reverse chronological order
    """
    queryset = Sketch.objects.all().order_by('-pub_date')
    template_name = "archives/sketches.html"


class SketchDetailView(DetailView):
    model = Sketch
    template_name = "details/note.html"
    slug_field = "slug"


class SketchDetailViewTXT(SketchDetailView):
    template_name = "details/entry.txt"


class SketchYearArchiveView(YearArchiveView):
    queryset = Sketch.objects.all()
    date_field = "pub_date"
    make_object_list = True
    allow_future = True
    template_name = "archives/notes_date.html"


class SketchMonthArchiveView(MonthArchiveView):
    queryset = Sketch.objects.all()
    date_field = "pub_date"
    allow_future = True
    template_name = "archives/notes_date.html"