1.1 --- a/MoinForms.py Wed Dec 05 00:58:20 2012 +0100
1.2 +++ b/MoinForms.py Fri Dec 07 01:05:58 2012 +0100
1.3 @@ -34,6 +34,8 @@
1.4 of the interpreted information.
1.5 """
1.6
1.7 + _ = self.request.getText
1.8 +
1.9 # Get the form fields and obtain the hierarchical field structure.
1.10
1.11 form = get_form(self.request)
1.12 @@ -43,7 +45,20 @@
1.13
1.14 self.modifyFields(fields)
1.15
1.16 - if self.validateFields(fields):
1.17 + # Get the form definition.
1.18 +
1.19 + structure = self.getFormStructure()
1.20 +
1.21 + # Without any form definition, the page is probably the wrong one.
1.22 +
1.23 + if not structure:
1.24 + self.request.theme.add_msg(_("This page does not provide a form."), "error")
1.25 + do_show(self.pagename, self.request)
1.26 + return
1.27 +
1.28 + # With a form definition, attempt to validate the fields.
1.29 +
1.30 + if self.validateFields(fields, structure):
1.31 self.finished(fields, form)
1.32 else:
1.33 self.unfinished(fields, form)
1.34 @@ -63,17 +78,22 @@
1.35 self.serialiseFields(fields, form)
1.36 do_show(self.pagename, self.request)
1.37
1.38 - def validateFields(self, fields):
1.39 + def getFormStructure(self):
1.40
1.41 - """
1.42 - Validate the given 'fields', introducing error fields where the
1.43 - individual fields do not conform to their descriptions.
1.44 - """
1.45 + "Return the structure of the form being handled."
1.46
1.47 form = get_form(self.request)
1.48 text = Page(self.request, self.pagename).get_raw_body()
1.49 text = getFormForFragment(text, form.get("fragment", [None])[0])
1.50 - structure = getFormStructure(text, self.request)
1.51 + return getFormStructure(text, self.request)
1.52 +
1.53 + def validateFields(self, fields, structure):
1.54 +
1.55 + """
1.56 + Validate the given 'fields' using the given form 'structure',
1.57 + introducing error fields where the individual fields do not conform to
1.58 + their descriptions.
1.59 + """
1.60
1.61 return self.validateFieldsUsingStructure(fields, structure)
1.62