The minimum version is:
def submit_data(skicall): return
This function is called when a responder wishes to submit data for processing in some manner. This function typically should populate PageData object with widgfields as keys, and values to insert into the fields.
This framework often refers to the key tuple (widgetname,fieldname) as a widgfield.
Using the skiadmin facility a responder is chosen from a list of responders by yourself, and added to this site like any other page. Each responder has a different functionality. Certain responders call this submit_data function. Typically a client web browser would make a call to a responder, which (after start_call is called) would set any received form data into the skicall.call_data dictionary, and then call your submit_data function. Responders generally are set with a target ident - generally the ident of a template page, which will have its widgets populated by any data you set in the PageData object.
The responder calling this function will specify what it wants returned from submit_data in its documentation.
Most responders require 'None' to be returned, but, for example, the LogIn responder requires a session string.
It is possible for one responder to pass the call to another, therefore submit_data could be called multiple times within a single call. Your function can inspect skicall.ident_list which is the list of such responder idents called - the first item being the responder ident called by the user, the last entry being the responder ident that called submit_data.
Each ident in the list is a tuple of the form ('projname', pagenumber).
skicall.submit_list is a list of strings which may be submitted by the responder calling this function.
They are optionally used for your convenience, and set when you add a responder to the project.
skicall.submit_dict is a dictionary which may be submitted by the responder calling this function.
The submit_dict contents depends on the responder, and are documented for each responder type in the skiadmin pages.
skicall.call_data is a dictionary which you can populate with your own data during the progress of the call. If you wish to clear it, use skicall.call_data.clear().
Typically a responder would be used to pass submitted form data into this call_data dictionary prior to this function being called.
On returning from this function the call will be passed to the responder's target page, which could typically be a template page (in which case your end_call function will be called next) or it could be another responder. If required a GoTo exception could be raised to jump elsewhere, or a FailPage exception could be raised to jump to the responders failure page with an error message.