# HG changeset patch # User Paul Boddie # Date 1360883806 -3600 # Node ID fec3a1bd649a0e21461564b0a59c445a33079ae7 # Parent 6c21fb6d057f62bb4cd943f9d5ae06eb17ac178a Added error message output when form data cannot be accessed. diff -r 6c21fb6d057f -r fec3a1bd649a MoinForms.py --- a/MoinForms.py Sat Feb 09 20:15:05 2013 +0100 +++ b/MoinForms.py Fri Feb 15 00:16:46 2013 +0100 @@ -19,6 +19,12 @@ form_field_regexp_str = r"<>" form_field_regexp = re.compile(form_field_regexp_str, re.DOTALL) +class MoinFormDataError(Exception): + + "An exception indicating a problem with form data." + + pass + # Common action functionality. class MoinFormHandlerAction: @@ -64,7 +70,25 @@ else: self.attributes, text = self.getFormForFragment(fields) self.access_handler = self.getAccessHandler() - fields = self.loadFields(number) + + # Attempt to load the form. + + try: + fields = self.loadFields(number) + + # Absent or inaccessible forms will result in an IndexError. + + except IndexError: + self.request.theme.add_msg(_("The stored data for this form cannot be accessed."), "error") + do_show(self.pagename, self.request) + return + + # Bad data will result in a MoinFormDataError. + + except MoinFormDataError: + self.request.theme.add_msg(_("The stored data for this form is in the wrong format."), "error") + do_show(self.pagename, self.request) + return self.unfinished(fields, form) @@ -311,18 +335,12 @@ submission 'number'. """ - try: - text = store[number] - module = parse(text) - if checkStoredFormData(module): - return eval(text) - - # NOTE: Should indicate any errors in retrieving form data. - - except: - pass - - return {} + text = store[number] + module = parse(text) + if checkStoredFormData(module): + return eval(text) + else: + raise MoinFormDataError, text def checkStoredFormData(node):