summaryrefslogtreecommitdiff
path: root/app/src/views.py
diff options
context:
space:
mode:
authorluxagraf <sng@luxagraf.net>2015-11-06 23:09:56 -0500
committerluxagraf <sng@luxagraf.net>2015-11-06 23:09:56 -0500
commitdbb8c23a81361b2bdd1128c997c8ce74a0cb4bd7 (patch)
tree05496f5684b216565dd8ebb6e18e1c7eddc96638 /app/src/views.py
parent78dc05f455f234da32c8c4d60b1b074755758d1c (diff)
refactored src to use new build system with CBVs
Diffstat (limited to 'app/src/views.py')
-rw-r--r--app/src/views.py89
1 files changed, 79 insertions, 10 deletions
diff --git a/app/src/views.py b/app/src/views.py
index ceba079..95ddafa 100644
--- a/app/src/views.py
+++ b/app/src/views.py
@@ -1,15 +1,84 @@
-from django.shortcuts import render_to_response, get_object_or_404
-from django.template import RequestContext
-from .models import Entry, Topic
+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
-def topic(request, slug):
- obj = get_object_or_404(Topic, slug__exact=slug)
- qs = Entry.objects.filter(topics__slug=slug).order_by('-pub_date')
- return render_to_response('archives/src_home.html', {'object_list': qs, 'topic':obj}, context_instance=RequestContext(request))
+from .models import Entry, Topic, Book
-def detail(request, slug):
- obj = get_object_or_404(Entry, slug__exact=slug)
- return render_to_response('details/src_entry.html', {'object': obj}, context_instance=RequestContext(request))
+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()
+ paypal_dict = {
+ "business": settings.PAYPAL_RECEIVER_EMAIL,
+ "amount": book.price,
+ "item_name": book.title,
+ "invoice": "unique-invoice-id",
+ "notify_url": "https://www.example.com" + reverse('src:paypal-ipn'),
+ "return_url": "https://www.example.com/your-return-location/",
+ "cancel_return": "https://www.example.com/your-cancel-location/",
+ }
+ context['paypal_form'] = PayPalPaymentsForm(initial=paypal_dict)
+ return context
+
+
+class SrcListView(ListView):
+ template_name = "archives/src_home.html"
+
+ def queryset(self):
+ return Entry.objects.filter(status__exact=1)
+
+
+class EntryDetailView(DetailView):
+ model = Entry
+ 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 Entry.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 Entry.objects.filter(status__exact=1).order_by('-pub_date')[:10]