summaryrefslogtreecommitdiff
path: root/app/notes/views.py
blob: 1fbe6f4f63f184a6147afd291cf99f7fa41e9015 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
from django.shortcuts import render_to_response, get_object_or_404
from django.template import RequestContext
from django.views.generic.dates import YearArchiveView, MonthArchiveView
from django.views.generic.detail import DetailView

from utils.views import PaginatedListView

from notes.models import LuxNote, Note


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


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


class NoteDetailViewTXT(NoteDetailView):
    template_name = "details/entry.txt"


class NoteDetailViewAMP(NoteDetailView):
    template_name = "details/entry.amp"


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


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


"""
Legacy Notes views
"""


def entry_detail(request, year, month, slug):
    context = {
        'object': get_object_or_404(Note, slug__exact=slug),
    }
    return render_to_response(
        'details/note.html',
        context,
        context_instance=RequestContext(request)
    )


def date_list(request, year, month=None):
    if month:
        qs = Note.objects.filter(date_created__year=year, date_created__month=month).order_by('-date_created')
    else:
        qs = Note.objects.filter(date_created__year=year).order_by('-date_created')
    context = {
        'year': year,
        'month': month,
        'object_list': qs,
    }
    return render_to_response(
        "archives/notes_date.html",
        context,
        context_instance=RequestContext(request)
    )


def entry_list(request):
    context = {
        'object_list': Note.objects.all().order_by('-date_created').select_related(),
    }
    return render_to_response("archives/notes.html", context, context_instance=RequestContext(request))