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:
		
					parent
					
						
							
								48650f33ce
							
						
					
				
			
			
				commit
				
					
						7cd5244fdc
					
				
			
		
					 11 changed files with 217 additions and 35 deletions
				
			
		|  | @ -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 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue