Added PostListViewUngleichTest, Added PostDetailViewUngleich, Converted detail ungleich post view into Class Based Django view, Added translations to ungleich landing page

This commit is contained in:
Levi 2016-07-15 00:14:51 -05:00
commit 7cd5244fdc
11 changed files with 217 additions and 35 deletions

View file

@ -1,12 +1,13 @@
from django.conf import settings
from django.http import Http404
from django.shortcuts import render
from django.views.generic import DetailView
from django.utils.translation import get_language
from djangocms_blog.models import Post
from djangocms_blog.views import PostListView
from djangocms_blog.settings import get_setting
def blog(request):
posts = Post.objects.all()
context = {
@ -41,12 +42,39 @@ class PostListViewUngleich(PostListView):
return queryset
def details(request, year, month, day, slug):
#should be this way
language = get_language()
#but currently the posts are not trasnlated
# language = 'en-us'
post = Post.objects.translated(language, slug=slug).first()
context = {'post': post}
return render(request, 'ungleich/djangocms_blog/post_detail.html', context=context)
class PostDetailViewUngleich(DetailView):
model = Post
template_name = 'ungleich/djangocms_blog/post_detail.html'
context_object_name = 'post'
slug_field = 'slug'
slug_url_kwarg = 'slug'
def get_object(self, queryset=None):
# Use a custom queryset if provided; this is required for subclasses
# like DateDetailView
language = get_language()
if queryset is None:
queryset = self.get_queryset()
# Next, try looking up by primary key.
pk = self.kwargs.get(self.pk_url_kwarg)
slug = self.kwargs.get(self.slug_url_kwarg)
if pk is not None:
queryset = queryset.filter(pk=pk)
# Next, try looking up by slug.
if slug is not None and (pk is None or self.query_pk_and_slug):
slug_field = self.get_slug_field()
queryset = queryset.translated(language, **{slug_field: slug})
# If none of those are defined, it's an error.
if pk is None and slug is None:
raise AttributeError("Generic detail view %s must be called with "
"either an object pk or a slug."
% self.__class__.__name__)
try:
# Get the single item from the filtered queryset
obj = queryset.first()
except queryset.model.DoesNotExist:
raise Http404(_("No %(verbose_name)s found matching the query") %
{'verbose_name': queryset.model._meta.verbose_name})
return obj