| 
									
										
										
										
											2016-06-23 21:32:51 -05:00
										 |  |  | from django.conf import settings | 
					
						
							| 
									
										
										
										
											2016-07-15 00:14:51 -05:00
										 |  |  | from django.http import Http404 | 
					
						
							| 
									
										
										
										
											2015-05-23 00:33:35 -06:00
										 |  |  | from django.shortcuts import render | 
					
						
							| 
									
										
										
										
											2016-07-15 00:14:51 -05:00
										 |  |  | from django.views.generic import DetailView | 
					
						
							| 
									
										
										
										
											2016-04-03 11:46:25 +02:00
										 |  |  | from django.utils.translation import get_language | 
					
						
							|  |  |  | from djangocms_blog.models import Post | 
					
						
							| 
									
										
										
										
											2016-04-10 16:12:43 -05:00
										 |  |  | from djangocms_blog.views import PostListView | 
					
						
							| 
									
										
										
										
											2016-04-03 11:46:25 +02:00
										 |  |  | from djangocms_blog.settings import get_setting | 
					
						
							| 
									
										
										
										
											2017-06-29 17:34:40 +03:00
										 |  |  | from django.utils.translation import ugettext_lazy as _ | 
					
						
							| 
									
										
										
										
											2015-05-23 00:33:35 -06:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-03 11:46:25 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | def blog(request): | 
					
						
							|  |  |  |     posts = Post.objects.all() | 
					
						
							|  |  |  |     context = { | 
					
						
							|  |  |  |         'post_list': posts | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # PostListView.base_template_name='post_list.html' | 
					
						
							|  |  |  |     return render(request, 'ungleich/djangocms_blog/post_list_ungleich.html', context=context) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class PostListViewUngleich(PostListView): | 
					
						
							|  |  |  |     model = Post | 
					
						
							|  |  |  |     context_object_name = 'post_list' | 
					
						
							|  |  |  |     base_template_name = 'post_list_ungleich.html' | 
					
						
							|  |  |  |     paginate_by = 5 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def get_context_data(self, **kwargs): | 
					
						
							|  |  |  |         context = super(PostListView, self).get_context_data(**kwargs) | 
					
						
							|  |  |  |         context['TRUNCWORDS_COUNT'] = get_setting('POSTS_LIST_TRUNCWORDS_COUNT') | 
					
						
							| 
									
										
										
										
											2016-06-23 21:32:51 -05:00
										 |  |  |         context['languages'] = settings.LANGUAGES | 
					
						
							|  |  |  |         context['current_language'] = get_language() | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-03 11:46:25 +02:00
										 |  |  |         return context | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def get_paginate_by(self, queryset): | 
					
						
							|  |  |  |         return get_setting('PAGINATION') | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def get_queryset(self): | 
					
						
							|  |  |  |         language = get_language() | 
					
						
							| 
									
										
										
										
											2016-05-16 15:34:45 +03:00
										 |  |  |         queryset = self.model.objects.filter(publish=True).translated(language) | 
					
						
							| 
									
										
										
										
											2016-04-03 11:46:25 +02:00
										 |  |  |         setattr(self.request, get_setting('CURRENT_NAMESPACE'), self.config) | 
					
						
							|  |  |  |         return queryset | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-15 00:14:51 -05:00
										 |  |  | 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): | 
					
						
							| 
									
										
										
										
											2016-04-09 08:51:20 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-07-15 00:14:51 -05:00
										 |  |  |         # 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 |