def test_move_with_redirect(self): self.page.save_draft_rev('book list sample text', True) self.page.publish_draft_rev() Page.move(self.page, 'Reading List', True) redirect_page = self.acct.get_page_by_title('Book List') moved_page = self.acct.get_page_by_title('Reading List') self.assertTrue(redirect_page.redirect) self.assertEqual('Book List', redirect_page.title) self.assertEqual('book-list', redirect_page.slug) redirect_text = redirect_page.get_curr_rev().get_text() self.assertEqual('This page has moved: [[Reading List]]', redirect_text) self.assertFalse(moved_page.redirect) self.assertEqual('Reading List', moved_page.title) self.assertEqual('reading-list', moved_page.slug) moved_text = moved_page.get_curr_rev().get_text() self.assertEqual('book list sample text', moved_text)
def handle_page_move(page): # get form values new_title = request.form['new_title'] create_redirect = request.form.has_key('create_redirect') cancel = request.form.has_key('cancel') if cancel: # redirect to view page return redirect_to_user_page(page.acct.uid, page.slug) valid = True errors = {} new_title_exists = Page.title_exists(page.acct.uid, new_title) if new_title_exists: valid = False errors['new_title'] = 'A page by this title already exists' if not valid: # show validation errors vals = { 'page': page, 'page_uid': page.acct.uid, 'new_title': new_title, 'create_redirect': create_redirect, 'breadcrumb': page.get_breadcrumb(), 'errors': errors, } return render_template('page_move.html', **vals) # move page Page.move(page, new_title, create_redirect) # redirect to view page return redirect_to_user_page(page.acct.uid, page.slug)