from django.views.generic import ListView from django.views.generic.detail import DetailView from django.contrib.syndication.views import Feed from django.urls 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 = "jrnl/entry_detail.txt" 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]