Skip to content

Commit

Permalink
Do not generate sitemap entries for variants (#187)
Browse files Browse the repository at this point in the history
  • Loading branch information
tm-kn authored and jberghoef committed Sep 25, 2018
1 parent d15f6c3 commit 1f464ad
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 0 deletions.
13 changes: 13 additions & 0 deletions src/wagtail_personalisation/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
from django.utils.safestring import mark_safe
from django.utils.translation import ugettext_lazy as _
from modelcluster.models import ClusterableModel
import wagtail
from wagtail.admin.edit_handlers import (
FieldPanel, FieldRowPanel, InlinePanel, MultiFieldPanel)
from wagtail.core.models import Page
Expand Down Expand Up @@ -302,3 +303,15 @@ def personalisation_metadata(self):
metadata = PersonalisablePageMetadata.objects.create(
canonical_page=self, variant=self)
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()
13 changes: 13 additions & 0 deletions tests/unit/test_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,3 +60,16 @@ def test_page_protection_when_deleting_segment(segmented_page):
assert len(segment.get_used_pages())
with pytest.raises(ProtectedError):
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()

0 comments on commit 1f464ad

Please sign in to comment.