Fix Wagtail Sitemaps does not allow for Django Sitemap instances

pull/4935/head
Dan Braghis 2018-10-28 13:21:30 +03:00 zatwierdzone przez Matt Westcott
rodzic e5f9c122ab
commit 12ac86217a
5 zmienionych plików z 12 dodań i 2 usunięć
docs/releases
wagtail
contrib/sitemaps
tests

Wyświetl plik

@ -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)

Wyświetl plik

@ -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

Wyświetl plik

@ -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

Wyświetl plik

@ -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)

Wyświetl plik

@ -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<section>.+)\.xml$', sitemaps_views.sitemap, name='sitemap'),