A div with paragraph showing an error code, and text paragraph showing text replaced by error message on error.
The following button sets an error to be displayed in an ErrorCode widget and refreshes the page.
Error code : 0
This is the text in the errorcode widget
This table lists the Responders called to produce this page:
skiwidgets,8102 | SubmitData | Sets up title and widget description |
skiwidgets,8104 | This page | error_messages.ErrorCode template |
This is a ShowCallData widget, which displays the contents of the skicall.call_data dictionary.
{}
Below is the Python file which populates this page.
import os from skipole import FailPage, GoTo, ValidateError, ServerError, ServeFile, PageData, SectionData def index(skicall): "Sets up the page" # the title and widget decription is in section 'header' which contains a # HeadText widget with name 'title' and a TextBlockPara widget with name 'widgetdesc' # It also has a ButtonLink2 widget with name 'tomodule' headersection = SectionData('header') headersection['title', 'large_text'] = 'ErrorCode' # A textblock contains the widget description ref = "widgets.error_messages.ErrorCode" headersection['widgetdesc','textblock_ref'] = ref headersection['widgetdesc','text_refnotfound'] = f'Textblock reference {ref} not found' # link to this widgets module page headersection['tomodule','button_text'] = "Module: error_messages" headersection['tomodule','link_ident'] = skicall.makepath('error_messages') skicall.update(headersection) # this code file contents is placed in section 'codefile' which contains a # PreText widget with name 'pretext' codesection = SectionData('codefile') code = os.path.realpath(__file__) with open(code) as f: codesection['pretext', 'pre_text'] = f.read() skicall.update(codesection) def show_error(skicall): "Called by a button to set the ErrorCode widget fields" if ('buttonlink2', 'get_field1') not in skicall.call_data: raise FailPage(message="Invalid call") if skicall.call_data['buttonlink2', 'get_field1'] != 'show error': raise FailPage(message="Invalid call") # show an error code in the code field, and error message pd = PageData() pd['errorcode','code'] = "1" pd['errorcode', 'show_error'] = 'This is an error message' skicall.update(pd)