diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 9631c69820..ecf19022a5 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -31,6 +31,7 @@ Changelog * Fix: Refactor all breakpoint definitions, removing style overlaps (Janneke Janssen) * Fix: Updated draftjs_exporter to 2.1.5 to fix bug in handling adjacent entities (Thibaud Colas) * Fix: Page titles consisting only of stopwords now generate a non-empty default slug (Andy Chosak, Janneke Janssen) + * Fix: Sitemap generator now allows passing a sitemap instance in the URL configuration (Mitchel Cabuloy, Dan Braghis) 2.3 LTS (23.10.2018) diff --git a/docs/releases/2.4.rst b/docs/releases/2.4.rst index aaeb4082ed..56b312a512 100644 --- a/docs/releases/2.4.rst +++ b/docs/releases/2.4.rst @@ -55,6 +55,7 @@ Bug fixes * Refactor all breakpoint definitions, removing style overlaps (Janneke Janssen) * Updated draftjs_exporter to 2.1.5 to fix bug in handling adjacent entities (Thibaud Colas) * Page titles consisting only of stopwords now generate a non-empty default slug (Andy Chosak, Janneke Janssen) + * Sitemap generator now allows passing a sitemap instance in the URL configuration (Mitchel Cabuloy, Dan Braghis) Upgrade considerations diff --git a/wagtail/contrib/sitemaps/views.py b/wagtail/contrib/sitemaps/views.py index 8267b2a9ba..0e0f7f81d1 100644 --- a/wagtail/contrib/sitemaps/views.py +++ b/wagtail/contrib/sitemaps/views.py @@ -1,3 +1,4 @@ +import inspect from django.contrib.sitemaps import views as sitemap_views from .sitemap_generator import Sitemap @@ -20,7 +21,7 @@ def prepare_sitemaps(request, sitemaps): """Intialize the wagtail Sitemap by passing the request.site value. """ initialised_sitemaps = {} for name, sitemap_cls in sitemaps.items(): - if issubclass(sitemap_cls, Sitemap): + if inspect.isclass(sitemap_cls) and issubclass(sitemap_cls, Sitemap): initialised_sitemaps[name] = sitemap_cls(request) else: initialised_sitemaps[name] = sitemap_cls diff --git a/wagtail/tests/testapp/models.py b/wagtail/tests/testapp/models.py index b3200d4437..6783d0191e 100644 --- a/wagtail/tests/testapp/models.py +++ b/wagtail/tests/testapp/models.py @@ -27,6 +27,7 @@ from wagtail.contrib.forms.forms import FormBuilder from wagtail.contrib.forms.models import ( FORM_FIELD_CHOICES, AbstractEmailForm, AbstractFormField, AbstractFormSubmission) from wagtail.contrib.settings.models import BaseSetting, register_setting +from wagtail.contrib.sitemaps import Sitemap from wagtail.contrib.table_block.blocks import TableBlock from wagtail.core.blocks import CharBlock, RichTextBlock, StructBlock from wagtail.core.fields import RichTextField, StreamField @@ -364,6 +365,11 @@ class SingleEventPage(EventPage): SingleEventPage.content_panels = [FieldPanel('excerpt')] + EventPage.content_panels +# "custom" sitemap object +class EventSitemap(Sitemap): + pass + + # Event index (has a separate AJAX template, and a custom template context) class EventIndex(Page): intro = RichTextField(blank=True) diff --git a/wagtail/tests/urls.py b/wagtail/tests/urls.py index 1082a1544b..878f47e679 100644 --- a/wagtail/tests/urls.py +++ b/wagtail/tests/urls.py @@ -12,6 +12,7 @@ from wagtail.images import urls as wagtailimages_urls from wagtail.images.api.v2.endpoints import ImagesAPIEndpoint from wagtail.images.tests import urls as wagtailimages_test_urls from wagtail.tests.testapp import urls as testapp_urls +from wagtail.tests.testapp.models import EventSitemap api_router = WagtailAPIRouter('wagtailapi_v2') api_router.register_endpoint('pages', PagesAPIEndpoint) @@ -29,7 +30,7 @@ urlpatterns = [ url(r'^sitemap\.xml$', sitemaps_views.sitemap), url(r'^sitemap-index\.xml$', sitemaps_views.index, { - 'sitemaps': {'pages': Sitemap}, + 'sitemaps': {'pages': Sitemap, 'events': EventSitemap(request=None)}, 'sitemap_url_name': 'sitemap', }), url(r'^sitemap-(?P
.+)\.xml$', sitemaps_views.sitemap, name='sitemap'),