1 # -*- coding: iso-8859-1 -*- 2 """ 3 MoinMoin - form (MoinForms) 4 5 @copyright: 2012 by Paul Boddie <paul@boddie.org.uk> 6 @license: GNU GPL (v2 or later), see COPYING.txt for details. 7 """ 8 9 from MoinForms import * 10 from MoinSupport import * 11 12 Dependencies = ["pages"] 13 14 # Parser support. 15 16 class Parser: 17 18 "Manipulate and display forms." 19 20 Dependencies = Dependencies 21 extensions = [] 22 23 # Output content types preferred by this parser. 24 25 output_mimetypes = ["text/html"] 26 27 def __init__(self, raw, request, **kw): 28 29 """ 30 Initialise the parser with the given 'raw' data, 'request' and any 31 keyword arguments that may have been supplied. 32 """ 33 34 self.raw = raw 35 self.request = request 36 attrs = parseAttributes(kw.get("format_args", ""), False) 37 38 self.fragment = attrs.get("fragment") 39 40 def format(self, fmt, write=None): 41 42 """ 43 Format an event using the given formatter 'fmt'. If the 'write' 44 parameter is specified, use it to write output; otherwise, write output 45 using the request. 46 """ 47 48 formatForm(self.raw, self.request, fmt, write=write) 49 50 # Extra API methods. 51 52 def formatForOutputType(self, mimetype, write=None): 53 54 """ 55 Format an event for the given 'mimetype'. If the 'write' parameter is 56 specified, use it to write output; otherwise, write output using the 57 request. 58 """ 59 60 formatFormForOutputType(self.raw, self.request, mimetype, write=write) 61 62 # Class methods. 63 64 def getOutputTypes(self): 65 return self.output_mimetypes 66 67 getOutputTypes = classmethod(getOutputTypes) 68 69 # vim: tabstop=4 expandtab shiftwidth=4