~ubuntu-branches/ubuntu/natty/moin/natty-updates

« back to all changes in this revision

Viewing changes to MoinMoin/action/RenamePage.py

  • Committer: Bazaar Package Importer
  • Author(s): Jonas Smedegaard
  • Date: 2008-06-22 21:17:13 UTC
  • mto: This revision was merged to the branch mainline in revision 18.
  • Revision ID: james.westby@ubuntu.com-20080622211713-inlv5k4eifxckelr
ImportĀ upstreamĀ versionĀ 1.7.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
29
29
        filterfn = re.compile(ur"^%s/.*$" % re.escape(pagename), re.U).match
30
30
        subpagenames = request.rootpage.getPageList(user='', exists=1, filter=filterfn)
31
31
        self.subpages = [pagename for pagename in subpagenames if self.request.user.may.delete(pagename)]
32
 
        try:
33
 
            self.show_redirect = request.cfg.show_rename_redirect
34
 
        except AttributeError:
35
 
            self.show_redirect = False
36
 
        try:
37
 
            self.rename_redirect = int(self.request.form.get('rename_redirect', '0'))
38
 
        except ValueError:
39
 
            self.rename_redirect = 0
40
32
 
41
33
    def is_allowed(self):
42
34
        may = self.request.user.may
53
45
        """ Rename this page to "pagename" """
54
46
        _ = self._
55
47
        form = self.form
56
 
        newpagename = form.get('newpagename', u'')
57
 
        newpagename = wikiutil.normalize_pagename(newpagename, self.cfg)
58
 
        comment = form.get('comment', u'')
 
48
        newpagename = form.get('newpagename', [u''])[0]
 
49
        newpagename = self.request.normalizePagename(newpagename)
 
50
        comment = form.get('comment', [u''])[0]
59
51
        comment = wikiutil.clean_input(comment)
60
 
        try:
61
 
            rename_subpages = int(self.request.form.get('rename_subpages', '0'))
62
 
        except ValueError:
63
 
            rename_subpages = 0
64
52
 
65
53
        self.page = PageEditor(self.request, self.pagename)
66
54
        success, msgs = self.page.renamePage(newpagename, comment)
67
55
 
68
 
        if not success:
69
 
            return success, msgs
70
 
 
71
 
        msgs = [msgs]
72
 
 
73
 
        if self.show_redirect and self.rename_redirect:
74
 
            self.page = PageEditor(self.request, self.pagename)
75
 
            self.page.saveText('#redirect %s' % newpagename, 0)
 
56
        rename_subpages = 0
 
57
        if 'rename_subpages' in form:
 
58
            try:
 
59
                rename_subpages = int(form['rename_subpages'][0])
 
60
            except:
 
61
                pass
76
62
 
77
63
        if rename_subpages and self.subpages:
78
64
            for name in self.subpages:
79
65
                self.page = PageEditor(self.request, name)
80
66
                new_subpagename = name.replace(self.pagename, newpagename, 1)
81
67
                success_i, msg = self.page.renamePage(new_subpagename, comment)
82
 
                msgs.append(msg)
83
 
 
84
 
                if self.show_redirect and self.rename_redirect and success_i:
85
 
                    self.page = PageEditor(self.request, name)
86
 
                    self.page.saveText('#redirect %s' % new_subpagename, 0)
87
 
            msgs = ' '.join([msg for msg in msgs if msg])
 
68
                msgs = "%s %s" % (msgs, msg)
88
69
 
89
70
        self.newpagename = newpagename # keep there for finish
90
71
        return success, msgs
92
73
    def do_action_finish(self, success):
93
74
        if success:
94
75
            url = Page(self.request, self.newpagename).url(self.request)
95
 
            self.request.http_redirect(url, code=301)
 
76
            self.request.http_redirect(url)
 
77
            self.request.finish()
96
78
        else:
97
79
            self.render_msg(self.make_form(), "dialog")
98
80
 
99
81
    def get_form_html(self, buttons_html):
100
82
        _ = self._
101
 
 
102
83
        if self.subpages:
103
 
            redirect_label = _('Create redirect for renamed page(s)?')
104
 
 
105
 
            subpages = ' '.join([wikiutil.escape(page) for page in self.subpages])
106
 
            subpages_html = """
107
 
                <tr>
108
 
                <dd>
109
 
                    %(subpage_label)s<input type="checkbox" name="rename_subpages" value="1" %(subpages_checked)s>
110
 
                </dd>
111
 
                <dd>
112
 
                    <class="label"><subpage> %(subpage)s</subpage>
113
 
                </dd>
114
 
                </tr>
115
 
                """ % {
116
 
                    'subpage': subpages,
117
 
                    'subpages_checked': ('', 'checked')[self.request.args.get('subpages_checked', '0') == '1'],
118
 
                    'subpage_label': _('Rename all /subpages too?'),
119
 
                 }
120
 
        else:
121
 
            redirect_label = _('Create redirect for renamed page?')
122
 
            subpages_html = ""
123
 
 
124
 
        if self.show_redirect:
125
 
            redirect_html = '<tr><dd>%(redirect_label)s<input type="checkbox" name="rename_redirect" value="1" %(redirect)s></dd></tr>' % {
126
 
                'redirect': self.rename_redirect,
127
 
                'redirect_label': redirect_label,
128
 
            }
129
 
        else:
130
 
            redirect_html = ''
131
 
 
132
 
        if self.show_redirect or self.subpages:
133
 
            options_html = """
134
 
                <table>
135
 
                    %(subpages_html)s
136
 
                    %(redirect_html)s
137
 
                </table>
138
 
                """ % {
139
 
                    "subpages_html": subpages_html,
140
 
                    "redirect_html": redirect_html,
 
84
            subpages = ' '.join(self.subpages)
 
85
 
 
86
            d = {
 
87
                'subpage': subpages,
 
88
                'subpages_checked': ('', 'checked')[self.request.form.get('subpages_checked', ['0'])[0] == '1'],
 
89
                'subpage_label': _('Rename all /subpages too?'),
 
90
                'pagename': wikiutil.escape(self.pagename, True),
 
91
                'newname_label': _("New name"),
 
92
                'comment_label': _("Optional reason for the renaming"),
 
93
                'buttons_html': buttons_html,
 
94
                'querytext': _('Really rename this page?')
141
95
                }
142
 
        else:
143
 
            options_html = ""
144
 
 
145
 
        d = {
146
 
            'querytext': _('Really rename this page?'),
147
 
            'pagename': wikiutil.escape(self.pagename, True),
148
 
            'newname_label': _("New name"),
149
 
            'comment_label': _("Optional reason for the renaming"),
150
 
            'buttons_html': buttons_html,
151
 
            'options_html': options_html,
152
 
            }
153
 
 
154
 
        return '''
 
96
 
 
97
            return '''
155
98
<strong>%(querytext)s</strong>
156
99
<br>
157
100
<br>
158
 
%(options_html)s
 
101
<table>
 
102
    <tr>
 
103
    <dd>
 
104
        %(subpage_label)s<input type="checkbox" name="rename_subpages" value="1" %(subpages_checked)s>
 
105
    </dd>
 
106
    <dd>
 
107
        <class="label"><subpage> %(subpage)s</subpage>
 
108
    </dd>
 
109
    </tr>
 
110
</table>
 
111
<table>
 
112
    <tr>
 
113
        <td class="label"><label>%(newname_label)s</label></td>
 
114
        <td class="content">
 
115
            <input type="text" name="newpagename" value="%(pagename)s" size="80">
 
116
        </td>
 
117
    </tr>
 
118
    <tr>
 
119
        <td class="label"><label>%(comment_label)s</label></td>
 
120
        <td class="content">
 
121
            <input type="text" name="comment" size="80" maxlength="200">
 
122
        </td>
 
123
    </tr>
 
124
    <tr>
 
125
        <td></td>
 
126
        <td class="buttons">
 
127
            %(buttons_html)s
 
128
        </td>
 
129
    </tr>
 
130
</table>
 
131
''' % d
 
132
 
 
133
        else:
 
134
            d = {
 
135
                'pagename': wikiutil.escape(self.pagename, True),
 
136
                'newname_label': _("New name"),
 
137
                'comment_label': _("Optional reason for the renaming"),
 
138
                'buttons_html': buttons_html,
 
139
                }
 
140
            return '''
159
141
<table>
160
142
    <tr>
161
143
        <td class="label"><label>%(newname_label)s</label></td>