Attachment 'ApprovePage-191.py'
Download 1 # -*- coding: iso-8859-1 -*-
2 """
3 MoinMoin - ApprovePage action
4
5 This action allows you to approve a page.
6
7 @copyright: 2005 by Robert Penz <robert.penz@outertech.com>
8 @license: GNU GPL, see COPYING for details.
9
10 Changes by Oliver Siemoneit 4.12.2006:
11 * made action 1.5 compatible
12 """
13
14 import os
15 from datetime import datetime
16 from MoinMoin import wikiutil
17 from MoinMoin.PageEditor import PageEditor
18 from MoinMoin.action import ActionBase
19
20 class ApprovePage(ActionBase):
21 """ Approve page action
22
23 Note: the action name is the class name
24 """
25 def __init__(self, pagename, request):
26 ActionBase.__init__(self, pagename, request)
27 self.use_ticket = True
28 _ = self._
29 self.form_trigger = 'approve'
30 self.form_trigger_label = _('Approve')
31
32 def is_allowed(self):
33 # check user right
34 may = self.request.user.may
35 return may.approve(self.pagename)
36
37 def check_condition(self):
38 _ = self._
39 if not self.page.exists():
40 return _('This page is already deleted or was never created! Cannot be approved.')
41 else:
42 return None
43
44 def do_action(self):
45 """ Approve pagename """
46
47 # Create a page editor that does not do editor backups, because
48 # delete generates a "deleted" version of the page.
49 #self.page = PageEditor(self.request, self.pagename, do_editor_backup=0)
50 #success, msgs = self.page.approvePage(comment)
51 # Approve the page
52 # in the first colum is the revision and in the second the username
53 open(os.path.abspath(os.path.join(self.page.getPagePath(), "approved")),"a").write("%08d\t%s\t%s\n" % (self.page.getRevList()[0], self.request.user.name,datetime.utcnow().strftime("%Y-%m-%d %H:%M:S")))
54
55 msgs = 'Page "%s" has been successfully approved!' % self.pagename
56 return 1, msgs
57
58 # Create a page editor that does not do editor backups, becuase
59 # approve generate "approved" version, of the page.
60 #page = PageEditor(request, pagename, do_editor_backup=0)
61
62 def get_form_html(self, buttons_html):
63 _ = self._
64
65 d = {
66 'pagename': self.pagename,
67 'buttons_html': buttons_html,
68 'querytext': _('Really approve page?'),
69 }
70
71 return '''
72 <strong>%(querytext)s</strong>
73 <table>
74 <tr>
75 <td></td>
76 <td class="buttons">
77 %(buttons_html)s
78 </td>
79 </tr>
80 </table>
81 ''' % d
82
83
84
85 def execute(pagename, request):
86 """ Glue code for actions """
87 ApprovePage(pagename, request).render()
Attached Files
To refer to attachments on a page, use attachment:filename, as shown below in the list of files. Do NOT use the URL of the [get] link, since this is subject to change and can break easily.You are not allowed to attach a file to this page.