Do not generate sitemap entries for variants (#187)
This commit is contained in:
@ -10,6 +10,7 @@ from django.utils.functional import cached_property
|
|||||||
from django.utils.safestring import mark_safe
|
from django.utils.safestring import mark_safe
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
from modelcluster.models import ClusterableModel
|
from modelcluster.models import ClusterableModel
|
||||||
|
import wagtail
|
||||||
from wagtail.admin.edit_handlers import (
|
from wagtail.admin.edit_handlers import (
|
||||||
FieldPanel, FieldRowPanel, InlinePanel, MultiFieldPanel)
|
FieldPanel, FieldRowPanel, InlinePanel, MultiFieldPanel)
|
||||||
from wagtail.core.models import Page
|
from wagtail.core.models import Page
|
||||||
@ -302,3 +303,15 @@ class PersonalisablePageMixin:
|
|||||||
metadata = PersonalisablePageMetadata.objects.create(
|
metadata = PersonalisablePageMetadata.objects.create(
|
||||||
canonical_page=self, variant=self)
|
canonical_page=self, variant=self)
|
||||||
return metadata
|
return metadata
|
||||||
|
|
||||||
|
def get_sitemap_urls(self, request=None):
|
||||||
|
# Do not generate sitemap entries for variants.
|
||||||
|
if not self.personalisation_metadata.is_canonical:
|
||||||
|
return []
|
||||||
|
if wagtail.VERSION >= (2, 2):
|
||||||
|
# Since Wagtail 2.2 you can pass request to the get_sitemap_urls
|
||||||
|
# method.
|
||||||
|
return super(PersonalisablePageMixin, self).get_sitemap_urls(
|
||||||
|
request=request
|
||||||
|
)
|
||||||
|
return super(PersonalisablePageMixin, self).get_sitemap_urls()
|
||||||
|
@ -60,3 +60,16 @@ def test_page_protection_when_deleting_segment(segmented_page):
|
|||||||
assert len(segment.get_used_pages())
|
assert len(segment.get_used_pages())
|
||||||
with pytest.raises(ProtectedError):
|
with pytest.raises(ProtectedError):
|
||||||
segment.delete()
|
segment.delete()
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.django_db
|
||||||
|
def test_sitemap_generation_for_canonical_pages_is_enabled(segmented_page):
|
||||||
|
canonical = segmented_page.personalisation_metadata.canonical_page
|
||||||
|
assert canonical.personalisation_metadata.is_canonical
|
||||||
|
assert canonical.get_sitemap_urls()
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.django_db
|
||||||
|
def test_sitemap_generation_for_variants_is_disabled(segmented_page):
|
||||||
|
assert not segmented_page.personalisation_metadata.is_canonical
|
||||||
|
assert not segmented_page.get_sitemap_urls()
|
||||||
|
Reference in New Issue
Block a user