1.1 --- a/actions/ApproveChanges.py Wed Oct 12 00:04:21 2011 +0200
1.2 +++ b/actions/ApproveChanges.py Wed Oct 12 00:33:12 2011 +0200
1.3 @@ -14,8 +14,8 @@
1.4 Dependencies = ['pages']
1.5
1.6 from MoinMoin.action import ActionBase
1.7 +from MoinMoin.Page import Page
1.8 from MoinMoin.PageEditor import PageEditor
1.9 -from MoinMoin.wikiutil import escape
1.10 from ApproveChangesSupport import *
1.11
1.12 # Action class and supporting functions.
1.13 @@ -34,6 +34,8 @@
1.14 _ = self._
1.15 request = self.request
1.16 fmt = request.formatter
1.17 + form = get_form(request)
1.18 + rev = form.get("rev")
1.19
1.20 d = {
1.21 "buttons_html" : buttons_html,
1.22 @@ -54,6 +56,10 @@
1.23 </tr>
1.24 </table>''' % d
1.25
1.26 + if rev:
1.27 + html += '''
1.28 +<input name="rev" type="hidden" value="%(rev)s" />''' % {"rev" : escattr(rev[0])}
1.29 +
1.30 return html
1.31
1.32 def do_action(self):
1.33 @@ -80,12 +86,24 @@
1.34 target_page = PageEditor(request, target_page_name)
1.35
1.36 # Save the target page, removing any protective ACL.
1.37 + # First, the displayed revision must be retrieved.
1.38
1.39 - body = self.page.get_raw_body()
1.40 + form = get_form(request)
1.41 +
1.42 + # Get the revision or None.
1.43 +
1.44 + rev = form.get("rev")
1.45 + if rev is None:
1.46 + rev = self.page.current_rev()
1.47 + else:
1.48 + rev = int(rev[0])
1.49 +
1.50 + page = Page(request, self.page.page_name, rev=rev)
1.51 + body = page.get_raw_body()
1.52 body = remove_access_control(request, body)
1.53
1.54 try:
1.55 - target_page.saveText(body, 0, comment=_("Changes to page approved."))
1.56 + target_page.saveText(body, 0, comment=_("Changes to page approved from queue revision %d.") % rev)
1.57 except PageEditor.Unchanged:
1.58 pass
1.59