Esempio n. 1
0
 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)
Esempio n. 2
0
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)