mirror of
https://github.com/Hopiu/wagtail-modeltranslation.git
synced 2026-05-14 02:03:17 +00:00
Adds RoutablePage test
This commit is contained in:
parent
a1c90e9e97
commit
e6488400c2
3 changed files with 47 additions and 3 deletions
|
|
@ -1,6 +1,8 @@
|
|||
# coding: utf-8
|
||||
from django.db import models
|
||||
from django.http import HttpResponse
|
||||
from modelcluster.fields import ParentalKey
|
||||
from wagtail.contrib.wagtailroutablepage.models import RoutablePageMixin, route
|
||||
from wagtail.wagtailadmin.edit_handlers import FieldPanel, MultiFieldPanel, FieldRowPanel, InlinePanel, StreamFieldPanel
|
||||
from wagtail.wagtailcore import blocks
|
||||
from wagtail.wagtailcore.fields import StreamField
|
||||
|
|
@ -24,9 +26,11 @@ class TestSlugPage1(WagtailPage):
|
|||
class TestSlugPage2(WagtailPage):
|
||||
pass
|
||||
|
||||
|
||||
class TestSlugPage1Subclass(TestSlugPage1):
|
||||
pass
|
||||
|
||||
|
||||
class PatchTestPage(WagtailPage):
|
||||
description = models.CharField(max_length=50)
|
||||
|
||||
|
|
@ -193,3 +197,13 @@ class InlinePanelPage(WagtailPage):
|
|||
content_panels = [
|
||||
InlinePanel('related_page_model')
|
||||
]
|
||||
|
||||
|
||||
class RoutablePageTest(RoutablePageMixin, WagtailPage):
|
||||
@route(r'^archive/year/1984/$')
|
||||
def archive_for_1984(self, request):
|
||||
return HttpResponse("we were always at war with eastasia")
|
||||
|
||||
@route(r'^archive/year/(\d+)/$')
|
||||
def archive_by_year(self, request, year):
|
||||
return HttpResponse("ARCHIVE BY YEAR: " + str(year))
|
||||
|
|
|
|||
|
|
@ -705,6 +705,18 @@ class WagtailModeltranslationTest(WagtailModeltranslationTestBase):
|
|||
},
|
||||
},
|
||||
},
|
||||
'routable_page': {
|
||||
'model': models.RoutablePageTest,
|
||||
'kwargs': {'title': 'Routable Page', 'live': True,
|
||||
'slug_de': 'routing-de-03', 'slug_en': 'routing-en-03'},
|
||||
'children': {
|
||||
'grandchild1': {
|
||||
'model': models.TestSlugPage1,
|
||||
'kwargs': {'title': 'grandchild1 routing',
|
||||
'slug_de': 'routing-de-0301', 'slug_en': 'routing-en-0301'},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
page_factory.create_page_tree(site_pages)
|
||||
|
|
@ -712,13 +724,28 @@ class WagtailModeltranslationTest(WagtailModeltranslationTestBase):
|
|||
root_page = site_pages['instance']
|
||||
page_0101 = site_pages['children']['child1']['children']['grandchild1']['instance']
|
||||
page_0201 = site_pages['children']['child2']['children']['grandchild1']['instance']
|
||||
page_0301 = site_pages['children']['routable_page']['children']['grandchild1']['instance']
|
||||
|
||||
self.check_route_request(root_page, ['routing-de-01', 'routing-de-0101'], page_0101)
|
||||
self.check_route_request(root_page, ['routing-de-02', 'routing-de-0201'], page_0201)
|
||||
|
||||
# routable page test
|
||||
routable_page = site_pages['children']['routable_page']['instance']
|
||||
view, args, kwargs = routable_page.resolve_subpage('/archive/year/2014/')
|
||||
self.assertEqual(view, routable_page.archive_by_year)
|
||||
self.assertEqual(args, ('2014',))
|
||||
self.assertEqual(kwargs, {})
|
||||
self.check_route_request(root_page, ['routing-de-03', 'routing-de-0301'], page_0301)
|
||||
|
||||
trans_real.activate('en')
|
||||
|
||||
# assert translated slugs fetch the correct page
|
||||
self.check_route_request(root_page, ['routing-en-01', 'routing-en-0101'], page_0101)
|
||||
# in the absence of translated slugs assert the default ones work
|
||||
self.check_route_request(root_page, ['routing-de-02', 'routing-de-0201'], page_0201)
|
||||
|
||||
view, args, kwargs = routable_page.resolve_subpage('/archive/year/2014/')
|
||||
self.assertEqual(view, routable_page.archive_by_year)
|
||||
self.assertEqual(args, ('2014',))
|
||||
self.assertEqual(kwargs, {})
|
||||
self.check_route_request(root_page, ['routing-en-03', 'routing-en-0301'], page_0301)
|
||||
|
|
|
|||
|
|
@ -5,9 +5,7 @@ from wagtail_modeltranslation.tests.models import TestRootPage, TestSlugPage1, T
|
|||
PatchTestSnippet, FieldPanelPage, ImageChooserPanelPage, FieldRowPanelPage, MultiFieldPanelPage, InlinePanelPage, \
|
||||
FieldPanelSnippet, ImageChooserPanelSnippet, FieldRowPanelSnippet, MultiFieldPanelSnippet, PageInlineModel, \
|
||||
BaseInlineModel, StreamFieldPanelPage, StreamFieldPanelSnippet, SnippetInlineModel, InlinePanelSnippet, \
|
||||
TestSlugPage1Subclass
|
||||
|
||||
from wagtail.wagtailcore.models import Page
|
||||
TestSlugPage1Subclass, RoutablePageTest
|
||||
|
||||
|
||||
# Wagtail Models
|
||||
|
|
@ -107,3 +105,8 @@ class InlinePanelModelTranslationOptions(TranslationOptions):
|
|||
|
||||
|
||||
translator.register(InlinePanelSnippet, InlinePanelModelTranslationOptions)
|
||||
|
||||
|
||||
@register(RoutablePageTest)
|
||||
class RoutablePageTestTranslationOptions(TranslationOptions):
|
||||
fields = ()
|
||||
|
|
|
|||
Loading…
Reference in a new issue