1.1 --- a/MoinForms.py Sun Dec 09 23:47:20 2012 +0100
1.2 +++ b/MoinForms.py Mon Dec 10 00:13:17 2012 +0100
1.3 @@ -47,7 +47,7 @@
1.4
1.5 # Get the form definition.
1.6
1.7 - structure = self.getFormStructure()
1.8 + structure = self.getFormStructure(fields)
1.9
1.10 # Without any form definition, the page is probably the wrong one.
1.11
1.12 @@ -78,13 +78,12 @@
1.13 self.serialiseFields(fields, form)
1.14 do_show(self.pagename, self.request)
1.15
1.16 - def getFormStructure(self):
1.17 + def getFormStructure(self, fields):
1.18
1.19 "Return the structure of the form being handled."
1.20
1.21 - form = get_form(self.request)
1.22 text = Page(self.request, self.pagename).get_raw_body()
1.23 - text = getFormForFragment(text, form.get("fragment", [None])[0])
1.24 + text = getFormForFragment(text, fields.get("fragment", [None])[0])
1.25 return getFormStructure(text, self.request)
1.26
1.27 def validateFields(self, fields, structure):
1.28 @@ -199,7 +198,10 @@
1.29 """
1.30
1.31 section, (name, index) = getSectionForPath(path, fields)
1.32 - del section[name][index]
1.33 + try:
1.34 + del section[name][index]
1.35 + except KeyError:
1.36 + pass
1.37
1.38 def addField(self, path, fields):
1.39
1.40 @@ -648,10 +650,12 @@
1.41 queryparams.append("%s=%s" % (argname, default))
1.42
1.43 querystr = "&".join(queryparams)
1.44 + fragment = attrs.get("fragment")
1.45
1.46 - write(fmt.rawHTML('<form method="post" action="%s"%s>' % (
1.47 + write(fmt.rawHTML('<form method="post" action="%s%s"%s>' % (
1.48 escattr(page.url(request, querystr)),
1.49 - attrs.has_key("fragment") and (' id="%s"' % attrs["fragment"]) or ""
1.50 + fragment and ("#%s" % escattr(fragment)) or "",
1.51 + fragment and (' id="%s"' % escattr(fragment)) or ""
1.52 )))
1.53
1.54 # Obtain page text for the form, incorporating subregions and applicable