mirror of
https://github.com/Hopiu/wagtail.git
synced 2026-04-06 16:11:03 +00:00
Merge branch 'master' of github.com:torchbox/wagtail
This commit is contained in:
commit
f62b0d5d67
2 changed files with 31 additions and 8 deletions
|
|
@ -337,14 +337,17 @@ class Page(six.with_metaclass(PageBase, MP_Node, ClusterableModel, index.Indexed
|
|||
# has been set and so we can safely call get_parent
|
||||
self.set_url_path(self.get_parent())
|
||||
else:
|
||||
# see if the slug has changed from the record in the db, in which case we need to
|
||||
# update url_path of self and all descendants
|
||||
old_record = Page.objects.get(id=self.id)
|
||||
if old_record.slug != self.slug:
|
||||
self.set_url_path(self.get_parent())
|
||||
update_descendant_url_paths = True
|
||||
old_url_path = old_record.url_path
|
||||
new_url_path = self.url_path
|
||||
# Check that we are committing the slug to the database
|
||||
# Basically: If update_fields has been specified, and slug is not included, skip this step
|
||||
if not ('update_fields' in kwargs and 'slug' not in kwargs['update_fields']):
|
||||
# see if the slug has changed from the record in the db, in which case we need to
|
||||
# update url_path of self and all descendants
|
||||
old_record = Page.objects.get(id=self.id)
|
||||
if old_record.slug != self.slug:
|
||||
self.set_url_path(self.get_parent())
|
||||
update_descendant_url_paths = True
|
||||
old_url_path = old_record.url_path
|
||||
new_url_path = self.url_path
|
||||
|
||||
result = super(Page, self).save(*args, **kwargs)
|
||||
|
||||
|
|
|
|||
|
|
@ -600,3 +600,23 @@ class TestSubpageTypeBusinessRules(TestCase):
|
|||
# BusinessSubIndex only allows BusinessIndex as a parent
|
||||
self.assertNotIn(ContentType.objects.get_for_model(SimplePage), BusinessSubIndex.allowed_parent_page_types())
|
||||
self.assertIn(ContentType.objects.get_for_model(BusinessIndex), BusinessSubIndex.allowed_parent_page_types())
|
||||
|
||||
|
||||
class TestIssue735(TestCase):
|
||||
"""
|
||||
Issue 735 reports that URL paths of child pages are not
|
||||
updated correctly when slugs of parent pages are updated
|
||||
"""
|
||||
fixtures = ['test.json']
|
||||
|
||||
def test_child_urls_updated_on_parent_publish(self):
|
||||
event_index = Page.objects.get(url_path='/home/events/')
|
||||
christmas_event = EventPage.objects.get(url_path='/home/events/christmas/')
|
||||
|
||||
# Change the event index slug and publish it
|
||||
event_index.slug = 'old-events'
|
||||
event_index.save_revision().publish()
|
||||
|
||||
# Check that the christmas events url path updated correctly
|
||||
new_christmas_event = EventPage.objects.get(id=christmas_event.id)
|
||||
self.assertEqual(new_christmas_event.url_path, '/home/old-events/christmas/')
|
||||
|
|
|
|||
Loading…
Reference in a new issue