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 Entry, 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() 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]