1 # -*- coding: iso-8859-1 -*- 2 """ 3 MoinMoin - ApproveChanges library 4 5 @copyright: 2011 by Paul Boddie <paul@boddie.org.uk> 6 @license: GNU GPL (v2 or later), see COPYING.txt for details. 7 """ 8 9 import re 10 11 __version__ = "0.1" 12 13 def get_queued_changes_page(request): 14 return getattr(request.cfg, "queued_changes_page", "ApprovalQueue") 15 16 def get_approved_editors_group(request): 17 return getattr(request.cfg, "approved_editors_group", "ApprovedGroup") 18 19 def is_queued_changes_page(request, pagename): 20 21 "Return whether 'pagename' is a queued changes page by testing its name." 22 23 parts = pagename.split("/") 24 return len(parts) > 1 and parts[-1] == get_queued_changes_page(request) 25 26 def get_target_page_name(pagename): 27 28 "Return the target page name for the given queued changes 'pagename'." 29 30 return "/".join(pagename.split("/")[:-1]) 31 32 # Utility classes and associated functions. 33 # NOTE: These are a subset of EventAggregatorSupport. 34 35 class Form: 36 37 """ 38 A wrapper preserving MoinMoin 1.8.x (and earlier) behaviour in a 1.9.x 39 environment. 40 """ 41 42 def __init__(self, form): 43 self.form = form 44 45 def get(self, name, default=None): 46 values = self.form.getlist(name) 47 if not values: 48 return default 49 else: 50 return values 51 52 def __getitem__(self, name): 53 return self.form.getlist(name) 54 55 class ActionSupport: 56 57 """ 58 Work around disruptive MoinMoin changes in 1.9, and also provide useful 59 convenience methods. 60 """ 61 62 def get_form(self): 63 return get_form(self.request) 64 65 def get_form(request): 66 67 "Work around disruptive MoinMoin changes in 1.9." 68 69 if hasattr(request, "values"): 70 return Form(request.values) 71 else: 72 return request.form 73 74 # vim: tabstop=4 expandtab shiftwidth=4