1 # -*- coding: iso-8859-1 -*- 2 """ 3 MoinMoin - SiteUpdates Macro 4 5 Inspired by the RecentChanges macro 6 7 @copyright: 2007 by Paul Boddie <paul@boddie.org.uk> 8 @license: GNU GPL (v2 or later), see COPYING.txt for details. 9 """ 10 11 from MoinMoin.Page import Page 12 from MoinMoin.logfile import editlog 13 14 Dependencies = [] 15 16 MAX_ENTRIES = 5 17 18 def execute(macro, args): 19 request = macro.request 20 21 max_entries = MAX_ENTRIES 22 args = args.split(",") 23 if args: 24 try: 25 max_entries = int(args[0]) 26 except ValueError: 27 pass 28 29 pages = {} 30 log = editlog.EditLog(request) 31 32 for line in log.reverse(): 33 34 if not request.user.may.read(line.pagename): 35 continue 36 37 pages[line.pagename] = line 38 39 if len(pages.keys()) >= max_entries: 40 break 41 42 output = [] 43 44 if pages: 45 output.append('<ul class="site-updates">\n') 46 47 lines = pages.values() 48 lines.sort() 49 lines.reverse() 50 51 for line in lines[:max_entries]: 52 page = Page(request, line.pagename) 53 link = page.link_to(request, text=page.split_title(request)) 54 output.append('<li>%s</li>\n' % link) 55 56 output.append('</ul>\n') 57 58 return ''.join(output) 59 60 # vim: tabstop=4 expandtab shiftwidth=4