summaryrefslogtreecommitdiff
path: root/app/src/views.py
blob: f2466ebf45c8388b02d88ca34b94d6e7c9ebc97d (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
86
87
88
from django.views.generic import ListView
from django.views.generic.detail import DetailView
from django.contrib.syndication.views import Feed
from django.core.urlresolvers import reverse
from django.conf import settings

from paypal.standard.forms import PayPalPaymentsForm

from .models import Post, Topic, Book


class BookListView(ListView):
    template_name = "archives/src_books.html"

    def queryset(self):
        return Book.objects.filter(status__exact=1)


class BookDetailView(DetailView):
    model = Book

    def get_template_names(self):
        book = self.get_object()
        return [book.template_name]

    def get_context_data(self, **kwargs):
        # Call the base implementation first to get a context
        context = super(BookDetailView, self).get_context_data(**kwargs)
        book = self.get_object()
        if book.price_sale < book.price:
            price = book.price_sale
        else:
            price = book.price
        paypal_dict = {
            "business": settings.PAYPAL_RECEIVER_EMAIL,
            "amount": price,
            "item_name": book.title,
            "invoice": "unique-invoice-id",
            "notify_url": "https://luxagraf.net/src/paypal/" + reverse('src:paypal-ipn'),
            "return_url": "https://luxagraf.net/src/thank-you",
            "cancel_return": "https://luxagraf.net/src/books/",
        }
        context['paypal_form'] = PayPalPaymentsForm(initial=paypal_dict)
        return context


class SrcListView(ListView):
    template_name = "archives/src_home.html"

    def queryset(self):
        return Post.objects.filter(status__exact=1)


class EntryDetailView(DetailView):
    model = Post
    template_name = "details/src_entry.html"
    slug_field = "slug"


class EntryDetailViewTXT(EntryDetailView):
    template_name = "details/entry.txt"


class EntryDetailViewAMP(EntryDetailView):
    template_name = "details/src_entry.amp"


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]