From 1b51db3489358b07b09bac635e3cf1b507dbc342 Mon Sep 17 00:00:00 2001 From: vThaian Date: Tue, 26 Feb 2019 15:51:21 +0100 Subject: [PATCH 1/4] Removed bulk_lookup_kwargs from code --- aldryn_newsblog/managers.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/aldryn_newsblog/managers.py b/aldryn_newsblog/managers.py index 34c999eb..ff7d0768 100644 --- a/aldryn_newsblog/managers.py +++ b/aldryn_newsblog/managers.py @@ -6,7 +6,9 @@ from collections import Counter from operator import attrgetter +from django.contrib.contenttypes.models import ContentType from django.db import models +from django.db.models import QuerySet from django.utils.timezone import now from aldryn_apphooks_config.managers.base import ManagerMixin, QuerySetMixin @@ -102,7 +104,18 @@ def get_tags(self, request, namespace): if not articles: # return empty iterable early not to perform useless requests return [] - kwargs = TaggedItem.bulk_lookup_kwargs(articles) + + if isinstance(articles, QuerySet): + # Can do a real object_id IN (SELECT ..) query. + kwargs = { + "object_id__in": articles, + "content_type": ContentType.objects.get_for_model(articles.model), + } + else: + kwargs = { + "object_id__in": [instance.pk for instance in articles], + "content_type": ContentType.objects.get_for_model(articles[0]), + } # aggregate and sort counted_tags = dict(TaggedItem.objects From 41a4472e25e075f0c9896a6cb4ff28183e7198a8 Mon Sep 17 00:00:00 2001 From: vThaian Date: Tue, 26 Feb 2019 18:59:58 +0100 Subject: [PATCH 2/4] Restore $ for thos urls --- aldryn_newsblog/urls.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/aldryn_newsblog/urls.py b/aldryn_newsblog/urls.py index 5d145ce1..4cfb780f 100644 --- a/aldryn_newsblog/urls.py +++ b/aldryn_newsblog/urls.py @@ -9,7 +9,7 @@ urlpatterns = [ - url(r'^', ArticleList.as_view(), name='article-list'), + url(r'^$', ArticleList.as_view(), name='article-list'), url(r'^feed/', LatestArticlesFeed(), name='article-list-feed'), url(r'^search/', @@ -31,7 +31,7 @@ url(r'^(?P\d{4})/(?P\d{1,2})/(?P\d{1,2})/(?P\d+)/', ArticleDetail.as_view(), name='article-detail'), # These support permalinks with - url(r'^(?P\w[-\w]*)/', + url(r'^(?P\w[-\w]*)/$', ArticleDetail.as_view(), name='article-detail'), url(r'^(?P\d{4})/(?P\w[-\w]*)/', ArticleDetail.as_view(), name='article-detail'), From 8f626958f2f78a6723adaf13a3d046628780db50 Mon Sep 17 00:00:00 2001 From: vThaian Date: Mon, 4 Mar 2019 09:13:47 +0100 Subject: [PATCH 3/4] Changed for missing apphook code --- aldryn_newsblog/cms_menus.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/aldryn_newsblog/cms_menus.py b/aldryn_newsblog/cms_menus.py index 7afd084e..847a19bd 100644 --- a/aldryn_newsblog/cms_menus.py +++ b/aldryn_newsblog/cms_menus.py @@ -34,11 +34,11 @@ def get_nodes(self, request): if hasattr(self, 'instance') and self.instance: app = apphook_pool.get_apphook(self.instance.application_urls) - if app: - config = app.get_config(self.instance.application_namespace) + if app: + config = app.get_config(self.instance.application_namespace) - if config: - articles = articles.filter(app_config=config) + if config: + articles = articles.filter(app_config=config) for article in articles: try: From 011be9914964b7072a044c28ae6943e57b3e348d Mon Sep 17 00:00:00 2001 From: vThaian Date: Mon, 11 Mar 2019 13:06:55 +0100 Subject: [PATCH 4/4] Fix missing newsblog in toolbar after use copy_plugin --- aldryn_newsblog/cms_toolbars.py | 4 ++-- aldryn_newsblog/views.py | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/aldryn_newsblog/cms_toolbars.py b/aldryn_newsblog/cms_toolbars.py index cd8035a3..11265f8b 100644 --- a/aldryn_newsblog/cms_toolbars.py +++ b/aldryn_newsblog/cms_toolbars.py @@ -3,7 +3,7 @@ from __future__ import unicode_literals from django.core.exceptions import ImproperlyConfigured -from django.urls import reverse +from django.urls import reverse, resolve from django.utils.translation import get_language_from_request, override from django.utils.translation import ugettext as _ @@ -52,7 +52,7 @@ def populate(self): user = getattr(self.request, 'user', None) try: - view_name = self.request.resolver_match.view_name + view_name = resolve(self.request.toolbar.request_path).view_name except AttributeError: view_name = None diff --git a/aldryn_newsblog/views.py b/aldryn_newsblog/views.py index 759a4e74..5d88b6ce 100644 --- a/aldryn_newsblog/views.py +++ b/aldryn_newsblog/views.py @@ -113,6 +113,9 @@ def get(self, request, *args, **kwargs): if not hasattr(self, 'object'): self.object = self.get_object() set_language_changer(request, self.object.get_absolute_url) + # submit object to cms toolbar to get current language switcher behavior + if hasattr(request, 'toolbar'): + request.toolbar.set_object(self.object) url = self.object.get_absolute_url() if self.config.non_permalink_handling == 200 or request.path == url: # Continue as normal