<s> """<STR_LIT>""" <EOL> module = request . controller <EOL> resourcename = request . function <EOL> if not settings . has_module ( module ) : <EOL> raise HTTP ( <NUM_LIT> , body = "<STR_LIT>" % module ) <EOL> s3db . hrm_vars ( ) <EOL> def index ( ) : <EOL> """<STR_LIT>""" <EOL> return settings . customise_home ( module , alt_function = "<STR_LIT>" ) <EOL> def index_alt ( ) : <EOL> """<STR_LIT>""" <EOL> s3_redirect_default ( URL ( f = "<STR_LIT>" , args = "<STR_LIT>" ) ) <EOL> def mission ( ) : <EOL> """<STR_LIT>""" <EOL> def prep ( r ) : <EOL> if r . id : <EOL> tablename = r . tablename if not r . component else r . component . tablename <EOL> next_url = r . url ( component = "<STR_LIT>" , method = "<STR_LIT>" , vars = { } ) <EOL> if r . component_name == "<STR_LIT>" : <EOL> alert_create_script ( ) <EOL> if settings . get_deploy_manual_recipients ( ) : <EOL> create_next = URL ( f = "<STR_LIT>" , args = [ "<STR_LIT>" , "<STR_LIT>" ] ) <EOL> else : <EOL> create_next = next_url <EOL> s3db . configure ( tablename , <EOL> create_next = create_next , <EOL> delete_next = next_url , <EOL> update_next = next_url , <EOL> ) <EOL> else : <EOL> s3db . configure ( tablename , <EOL> create_next = next_url , <EOL> delete_next = next_url , <EOL> update_next = next_url , <EOL> ) <EOL> s3 . cancel = next_url <EOL> if r . component_name == "<STR_LIT>" : <EOL> member_id = r . get_vars . get ( "<STR_LIT>" , None ) <EOL> if member_id and str ( member_id ) . isdigit ( ) : <EOL> htable = s3db . hrm_human_resource <EOL> query = ( htable . id == member_id ) & ( htable . deleted != True ) <EOL> row = db ( query ) . select ( htable . id , limitby = ( <NUM_LIT:0> , <NUM_LIT:1> ) ) . first ( ) <EOL> if row : <EOL> field = s3db . deploy_assignment . human_resource_id <EOL> field . default = row . id <EOL> field . writable = False <EOL> field . comment = None <EOL> elif r . method == "<STR_LIT>" : <EOL> atable = s3db . deploy_assignment <EOL> atable . end_date . writable = atable . end_date . readable = False <EOL> if not r . component and r . method == "<STR_LIT>" : <EOL> represent = lambda d : s3base . S3DateTime . datetime_represent ( d , utc = True ) <EOL> s3db . deploy_alert . modified_on . represent = represent <EOL> s3db . deploy_response . created_on . represent = represent <EOL> s3base . s3_trunk8 ( lines = <NUM_LIT:1> ) <EOL> else : <EOL> s3 . cancel = r . url ( method = "<STR_LIT>" , component = None , id = <NUM_LIT:0> ) <EOL> if not r . component : <EOL> status = r . get_vars . get ( "<STR_LIT>" ) <EOL> if status == "<STR_LIT:2>" : <EOL> s3 . crud_strings [ r . tablename ] [ "<STR_LIT>" ] = T ( "<STR_LIT>" ) <EOL> elif status == "<STR_LIT:1>" : <EOL> s3 . crud_strings [ r . tablename ] [ "<STR_LIT>" ] = T ( "<STR_LIT>" ) <EOL> return True <EOL> s3 . prep = prep <EOL> def postp ( r , output ) : <EOL> if not r . component : <EOL> s3_action_buttons ( r , <EOL> deletable = True , <EOL> editable = True , <EOL> read_url = r . url ( method = "<STR_LIT>" , id = "<STR_LIT>" ) , <EOL> update_url = r . url ( method = "<STR_LIT>" , id = "<STR_LIT>" ) , <EOL> delete_url = r . url ( method = "<STR_LIT>" , id = "<STR_LIT>" ) , <EOL> ) <EOL> if isinstance ( output , dict ) and "<STR_LIT>" in output : <EOL> buttons = output [ "<STR_LIT>" ] <EOL> if "<STR_LIT>" in buttons and "<STR_LIT>" in buttons : <EOL> buttons [ "<STR_LIT>" ] = buttons [ "<STR_LIT>" ] <EOL> elif "<STR_LIT>" in output and "<STR_LIT>" in output : <EOL> output [ "<STR_LIT>" ] = TAG [ "<STR_LIT>" ] ( output [ "<STR_LIT>" ] , <EOL> H3 ( output [ "<STR_LIT>" ] ) ) <EOL> return output <EOL> s3 . postp = postp <EOL> return s3_rest_controller ( <EOL> notitle = lambda r : { "<STR_LIT:title>" : "<STR_LIT>" } if r . component else None , <EOL> rheader = s3db . deploy_rheader , <EOL> ) <EOL> def response_message ( ) : <EOL> """<STR_LIT>""" <EOL> return s3_rest_controller ( "<STR_LIT>" , "<STR_LIT>" , <EOL> custom_crud_buttons = { "<STR_LIT>" : None } , <EOL> ) <EOL> def human_resource ( ) : <EOL> """<STR_LIT>""" <EOL> settings . hrm . staff_experience = True <EOL> settings . hrm . use_skills = True <EOL> settings . search . filter_manager = True <EOL> s3db . add_components ( "<STR_LIT>" , <EOL> deploy_alert_recipient = "<STR_LIT>" , <EOL> ) <EOL> q = FS ( "<STR_LIT>" ) != None <EOL> output = s3db . hrm_human_resource_controller ( extra_filter = q ) <EOL> return output <EOL> def person ( ) : <EOL> """<STR_LIT>""" <EOL> settings . hrm . staff_experience = "<STR_LIT>" <EOL> settings . hrm . vol_experience = "<STR_LIT>" <EOL> settings . hrm . use_skills = True <EOL> settings . search . filter_manager = True <EOL> return s3db . hrm_person_controller ( replace_option = None , <EOL> csv_extra_fields = [ <EOL> dict ( label = "<STR_LIT>" , <EOL> value = "<STR_LIT:true>" ) , <EOL> dict ( label = "<STR_LIT>" , <EOL> value = "<STR_LIT>" ) , <EOL> ] , <EOL> csv_stylesheet = ( "<STR_LIT>" , "<STR_LIT>" ) , <EOL> csv_template = ( "<STR_LIT>" , "<STR_LIT>" ) , <EOL> ) <EOL> def application ( ) : <EOL> """<STR_LIT>""" <EOL> settings . hrm . staff_experience = True <EOL> settings . hrm . use_skills = True <EOL> settings . search . filter_manager = True <EOL> def prep ( r ) : <EOL> method = r . method <EOL> if not method and r . representation != "<STR_LIT>" : <EOL> r . method = method = "<STR_LIT>" <EOL> if method == "<STR_LIT>" : <EOL> r . custom_action = s3db . deploy_apply <EOL> return True <EOL> s3 . prep = prep <EOL> if "<STR_LIT>" in request . args or request . env . request_method == "<STR_LIT:POST>" and auth . permission . format == "<STR_LIT>" : <EOL> return s3_rest_controller ( ) <EOL> else : <EOL> return s3_rest_controller ( "<STR_LIT>" , "<STR_LIT>" ) <EOL> def assignment ( ) : <EOL> """<STR_LIT>""" <EOL> def prep ( r ) : <EOL> mission_date = s3db . deploy_mission . created_on <EOL> mission_date . represent = lambda d : s3base . S3DateTime . date_represent ( d , utc = True ) <EOL> if r . record : <EOL> table = r . resource . table <EOL> table . mission_id . writable = False <EOL> table . human_resource_id . writable = False <EOL> if r . representation == "<STR_LIT>" : <EOL> r . resource . configure ( insertable = False ) <EOL> return True <EOL> s3 . prep = prep <EOL> def postp ( r , output ) : <EOL> if r . id and isinstance ( output , dict ) : <EOL> popup = r . representation == "<STR_LIT>" <EOL> record_id = r . id <EOL> atable = s3db . hrm_appraisal <EOL> ltable = s3db . deploy_assignment_appraisal <EOL> query = ( ltable . assignment_id == record_id ) & ( atable . id == ltable . appraisal_id ) & ( atable . deleted != True ) <EOL> appraisal = db ( query ) . select ( atable . id , <EOL> limitby = ( <NUM_LIT:0> , <NUM_LIT:1> ) ) . first ( ) <EOL> permit = auth . s3_has_permission <EOL> url = None <EOL> if appraisal and permit ( "<STR_LIT>" , atable , record_id = appraisal . id ) : <EOL> hrtable = db . hrm_human_resource <EOL> hr = db ( hrtable . id == r . record . human_resource_id ) . select ( hrtable . person_id , <EOL> limitby = ( <NUM_LIT:0> , <NUM_LIT:1> ) <EOL> ) . first ( ) <EOL> if hr : <EOL> get_vars = { } <EOL> if popup : <EOL> method = "<STR_LIT>" <EOL> refresh = get_vars . get ( "<STR_LIT>" , None ) <EOL> if refresh : <EOL> get_vars [ "<STR_LIT>" ] = refresh <EOL> record = get_vars . get ( "<STR_LIT>" , None ) <EOL> if record : <EOL> get_vars [ "<STR_LIT>" ] = record <EOL> else : <EOL> method = "<STR_LIT>" <EOL> url = URL ( c = "<STR_LIT>" , f = "<STR_LIT>" , <EOL> args = [ hr . person_id , "<STR_LIT>" , <EOL> appraisal . id , method ] , <EOL> vars = get_vars , <EOL> ) <EOL> elif permit ( "<STR_LIT>" , r . table , record_id = record_id ) : <EOL> hrtable = db . hrm_human_resource <EOL> hr = db ( hrtable . id == r . record . human_resource_id ) . select ( hrtable . person_id , <EOL> limitby = ( <NUM_LIT:0> , <NUM_LIT:1> ) <EOL> ) . first ( ) <EOL> if hr : <EOL> get_vars = { "<STR_LIT>" : r . record . mission_id , <EOL> } <EOL> if popup : <EOL> method = "<STR_LIT>" <EOL> refresh = get_vars . get ( "<STR_LIT>" , None ) <EOL> if refresh : <EOL> get_vars [ "<STR_LIT>" ] = refresh <EOL> record = get_vars . get ( "<STR_LIT>" , None ) <EOL> if record : <EOL> get_vars [ "<STR_LIT>" ] = record <EOL> else : <EOL> method = "<STR_LIT>" <EOL> url = URL ( c = "<STR_LIT>" , f = "<STR_LIT>" , <EOL> args = [ hr . person_id , "<STR_LIT>" , method ] , <EOL> vars = get_vars , <EOL> ) <EOL> if url : <EOL> button = s3base . S3CRUD . crud_button ( T ( "<STR_LIT>" ) , <EOL> _href = url , <EOL> _class = "<STR_LIT>" , <EOL> ) <EOL> if popup : <EOL> output [ "<STR_LIT>" ] = button <EOL> else : <EOL> s3 . rfooter = button <EOL> return output <EOL> s3 . postp = postp <EOL> return s3_rest_controller ( ) <EOL> def competency ( ) : <EOL> """<STR_LIT>""" <EOL> return s3db . hrm_competency_controller ( ) <EOL> def credential ( ) : <EOL> """<STR_LIT>""" <EOL> return s3db . hrm_credential_controller ( ) <EOL> def experience ( ) : <EOL> """<STR_LIT>""" <EOL> return s3db . hrm_experience_controller ( ) <EOL> def event_type ( ) : <EOL> """<STR_LIT>""" <EOL> return s3_rest_controller ( "<STR_LIT>" , "<STR_LIT>" ) <EOL> def job_title ( ) : <EOL> """<STR_LIT>""" <EOL> return s3_rest_controller ( "<STR_LIT>" , "<STR_LIT>" ) <EOL> def training ( ) : <EOL> """<STR_LIT>""" <EOL> return s3db . hrm_training_controller ( ) <EOL> def hr_search ( ) : <EOL> """<STR_LIT>""" <EOL> s3 . filter = FS ( "<STR_LIT>" ) == True <EOL> s3 . prep = lambda r : r . method == "<STR_LIT>" <EOL> return s3_rest_controller ( "<STR_LIT>" , "<STR_LIT>" ) <EOL> def person_search ( ) : <EOL> """<STR_LIT>""" <EOL> s3 . filter = FS ( "<STR_LIT>" ) == True <EOL> s3 . prep = lambda r : r . method == "<STR_LIT>" <EOL> return s3_rest_controller ( "<STR_LIT>" , "<STR_LIT>" ) <EOL> def alert_create_script ( ) : <EOL> """<STR_LIT>""" <EOL> table = s3db . msg_sms_webapi_channel <EOL> gateway = db ( table . enabled == True ) . select ( table . max_length , <EOL> limitby = ( <NUM_LIT:0> , <NUM_LIT:1> ) <EOL> ) . first ( ) <EOL> if gateway : <EOL> max_length = gateway . max_length <EOL> if max_length is None : <EOL> max_length = <NUM_LIT> <EOL> else : <EOL> max_length = <NUM_LIT> <EOL> script = '''<STR_LIT>''' % dict ( max_length = max_length ) <EOL> s3 . jquery_ready . append ( script ) <EOL> i18n = '''<STR_LIT>''' % ( T ( "<STR_LIT>" ) , <EOL> T ( "<STR_LIT>" ) , <EOL> T ( "<STR_LIT>" ) ) <EOL> s3 . js_global . append ( i18n ) <EOL> def alert ( ) : <EOL> """<STR_LIT>""" <EOL> settings . hrm . staff_experience = True <EOL> settings . hrm . use_skills = True <EOL> settings . search . filter_manager = True <EOL> def prep ( r ) : <EOL> if r . component : <EOL> if r . component . alias == "<STR_LIT>" : <EOL> if not r . method : <EOL> r . method = "<STR_LIT>" <EOL> if r . method == "<STR_LIT>" : <EOL> r . custom_action = s3db . deploy_alert_select_recipients <EOL> elif r . component_name == "<STR_LIT>" : <EOL> s3db . configure ( r . component . tablename , <EOL> deletable = False , <EOL> editable = False , <EOL> insertable = False , <EOL> ) <EOL> elif r . component_name == "<STR_LIT>" : <EOL> settings . search . filter_manager = False <EOL> from s3 import S3TextFilter , S3OptionsFilter <EOL> recipient_filters = [ <EOL> S3TextFilter ( [ <EOL> "<STR_LIT>" , <EOL> "<STR_LIT>" , <EOL> "<STR_LIT>" , <EOL> ] , <EOL> label = current . T ( "<STR_LIT:Name>" ) , <EOL> ) , <EOL> S3OptionsFilter ( <EOL> "<STR_LIT>" , <EOL> widget = "<STR_LIT>" , <EOL> filter = True , <EOL> header = "<STR_LIT>" , <EOL> hidden = True , <EOL> ) , <EOL> ] <EOL> if settings . get_org_regions ( ) : <EOL> recipient_filters . insert ( <NUM_LIT:1> , <EOL> s3base . S3HierarchyFilter ( <EOL> "<STR_LIT>" , <EOL> lookup = "<STR_LIT>" , <EOL> hidden = True , <EOL> ) <EOL> ) <EOL> s3db . configure ( r . component . tablename , <EOL> filter_widgets = recipient_filters , <EOL> ) <EOL> if r . record . message_id : <EOL> s3db . configure ( r . component . tablename , <EOL> deletable = False , <EOL> insertable = False , <EOL> ) <EOL> else : <EOL> if r . record : <EOL> if r . record . message_id : <EOL> s3db . configure ( r . tablename , <EOL> deletable = False , <EOL> editable = False , <EOL> ) <EOL> else : <EOL> alert_create_script ( ) <EOL> if settings . get_deploy_manual_recipients ( ) : <EOL> create_next = URL ( f = "<STR_LIT>" , args = [ "<STR_LIT>" , "<STR_LIT>" ] ) <EOL> else : <EOL> create_next = URL ( f = "<STR_LIT>" , args = [ "<STR_LIT>" , "<STR_LIT>" ] ) <EOL> s3db . configure ( r . tablename , <EOL> create_next = create_next , <EOL> deletable = False , <EOL> ) <EOL> return True <EOL> s3 . prep = prep <EOL> def postp ( r , output ) : <EOL> if r . component : <EOL> if r . component_name == "<STR_LIT>" : <EOL> s3 . actions = [ { "<STR_LIT:label>" : str ( READ ) , <EOL> "<STR_LIT:url>" : URL ( f = "<STR_LIT>" , <EOL> args = [ "<STR_LIT>" , "<STR_LIT>" ] , <EOL> ) , <EOL> "<STR_LIT>" : "<STR_LIT>" , <EOL> } <EOL> ] <EOL> if r . component_name == "<STR_LIT>" : <EOL> open_url = URL ( f = "<STR_LIT>" , <EOL> args = [ "<STR_LIT>" ] , <EOL> vars = { "<STR_LIT>" : "<STR_LIT>" } , <EOL> ) <EOL> delete_url = URL ( f = "<STR_LIT>" , <EOL> args = [ r . id , "<STR_LIT>" , "<STR_LIT>" , "<STR_LIT>" ] , <EOL> ) <EOL> s3_action_buttons ( r , <EOL> read_url = open_url , <EOL> update_url = open_url , <EOL> delete_url = delete_url , <EOL> deletable = not r . record . message_id <EOL> ) <EOL> else : <EOL> table = r . table <EOL> query = auth . s3_accessible_query ( "<STR_LIT>" , "<STR_LIT>" ) & ( table . message_id == None ) <EOL> rows = db ( query ) . select ( table . id ) <EOL> restrict = [ str ( row . id ) for row in rows ] <EOL> s3 . actions = [ { "<STR_LIT:label>" : str ( READ ) , <EOL> "<STR_LIT:url>" : URL ( f = "<STR_LIT>" , args = "<STR_LIT>" ) , <EOL> "<STR_LIT>" : "<STR_LIT>" , <EOL> } , <EOL> { "<STR_LIT:label>" : str ( DELETE ) , <EOL> "<STR_LIT:url>" : URL ( f = "<STR_LIT>" , args = [ "<STR_LIT>" , "<STR_LIT>" ] ) , <EOL> "<STR_LIT>" : restrict , <EOL> "<STR_LIT>" : "<STR_LIT>" , <EOL> } , <EOL> ] <EOL> return output <EOL> s3 . postp = postp <EOL> return s3_rest_controller ( rheader = s3db . deploy_rheader , <EOL> hide_filter = { "<STR_LIT>" : False , <EOL> "<STR_LIT>" : True , <EOL> } <EOL> ) <EOL> def alert_response ( ) : <EOL> """<STR_LIT>""" <EOL> alert_id = get_vars . get ( "<STR_LIT>" ) <EOL> if alert_id : <EOL> table = s3db . deploy_response <EOL> f = table . alert_id <EOL> f . readable = f . writable = False <EOL> f . default = alert_id <EOL> atable = s3db . deploy_alert <EOL> alert = db ( atable . id == alert_id ) . select ( atable . mission_id , <EOL> limitby = ( <NUM_LIT:0> , <NUM_LIT:1> ) , <EOL> ) . first ( ) <EOL> if alert : <EOL> f = table . mission_id <EOL> f . readable = f . writable = False <EOL> f . default = alert . mission_id <EOL> human_resource_id = auth . s3_logged_in_human_resource ( ) <EOL> if human_resource_id : <EOL> f = table . human_resource_id_id <EOL> f . readable = f . writable = False <EOL> f . default = alert_id <EOL> table . message_id . readable = False <EOL> return s3_rest_controller ( "<STR_LIT>" , "<STR_LIT>" ) <EOL> def email_inbox ( ) : <EOL> """<STR_LIT>""" <EOL> if not auth . s3_logged_in ( ) : <EOL> session . error = T ( "<STR_LIT>" ) <EOL> redirect ( URL ( c = "<STR_LIT:default>" , f = "<STR_LIT:user>" , args = "<STR_LIT>" ) ) <EOL> tablename = "<STR_LIT>" <EOL> table = s3db . msg_email <EOL> table . inbound . readable = False <EOL> table . channel_id . readable = False <EOL> table . to_address . readable = False <EOL> from s3 . s3query import FS <EOL> s3 . filter = ( FS ( "<STR_LIT>" ) == None ) & ( FS ( "<STR_LIT>" ) == True ) <EOL> from s3 . s3forms import S3SQLCustomForm , S3SQLInlineComponent <EOL> crud_form = S3SQLCustomForm ( "<STR_LIT:date>" , <EOL> "<STR_LIT>" , <EOL> "<STR_LIT>" , <EOL> "<STR_LIT:body>" , <EOL> S3SQLInlineComponent ( <EOL> "<STR_LIT>" , <EOL> name = "<STR_LIT>" , <EOL> label = T ( "<STR_LIT>" ) , <EOL> fields = [ "<STR_LIT>" , <EOL> ] , <EOL> ) , <EOL> ) <EOL> s3db . configure ( tablename , <EOL> crud_form = crud_form , <EOL> editable = False , <EOL> insertable = False , <EOL> list_fields = [ "<STR_LIT:id>" , <EOL> "<STR_LIT:date>" , <EOL> "<STR_LIT>" , <EOL> "<STR_LIT>" , <EOL> "<STR_LIT:body>" , <EOL> ( T ( "<STR_LIT>" ) , "<STR_LIT>" ) , <EOL> ] , <EOL> ) <EOL> s3 . crud_strings [ tablename ] = Storage ( <EOL> title_list = T ( "<STR_LIT>" ) , <EOL> title_update = T ( "<STR_LIT>" ) , <EOL> label_list_button = T ( "<STR_LIT>" ) , <EOL> label_delete_button = T ( "<STR_LIT>" ) , <EOL> msg_record_modified = T ( "<STR_LIT>" ) , <EOL> msg_record_deleted = T ( "<STR_LIT>" ) , <EOL> msg_list_empty = T ( "<STR_LIT>" ) <EOL> ) <EOL> def prep ( r ) : <EOL> decode = current . msg . decode_email <EOL> if r . id : <EOL> s3db . msg_attachment . document_id . label = "<STR_LIT>" <EOL> if r . component and r . component . alias == "<STR_LIT>" : <EOL> if not r . method : <EOL> r . method = "<STR_LIT>" <EOL> if r . method == "<STR_LIT>" : <EOL> r . custom_action = s3db . deploy_response_select_mission <EOL> represent = lambda string : decode ( string ) <EOL> elif not r . method and r . representation in ( "<STR_LIT:html>" , "<STR_LIT>" ) : <EOL> r . method = "<STR_LIT>" <EOL> r . custom_action = s3db . deploy_Inbox ( ) <EOL> represent = lambda string : s3base . s3_datatable_truncate ( decode ( string ) ) <EOL> table = r . resource . table <EOL> table . subject . represent = represent <EOL> table . from_address . represent = represent <EOL> return True <EOL> s3 . prep = prep <EOL> def postp ( r , output ) : <EOL> if r . interactive and r . record and not r . component : <EOL> authorised = auth . s3_has_permission ( "<STR_LIT>" , "<STR_LIT>" ) <EOL> if authorised : <EOL> s3 . rfooter = s3base . S3CRUD . crud_button ( <EOL> T ( "<STR_LIT>" ) , <EOL> _href = URL ( f = "<STR_LIT>" , <EOL> args = [ r . id , "<STR_LIT>" ] , <EOL> ) , <EOL> _class = "<STR_LIT>" , <EOL> ) <EOL> return output <EOL> s3 . postp = postp <EOL> return s3_rest_controller ( "<STR_LIT>" , "<STR_LIT:email>" ) <EOL> def email_channel ( ) : <EOL> """<STR_LIT>""" <EOL> def prep ( r ) : <EOL> table = r . table <EOL> tablename = "<STR_LIT>" <EOL> s3db . configure ( tablename , <EOL> deletable = False , <EOL> ) <EOL> if not r . id : <EOL> query = ( table . deleted == False ) & ( table . enabled == True ) <EOL> organisation_id = auth . user . organisation_id <EOL> if organisation_id : <EOL> query &= ( ( table . organisation_id == organisation_id ) | ( table . organisation_id == None ) ) <EOL> channels = db ( query ) . select ( table . id , <EOL> table . organisation_id , <EOL> ) <EOL> if organisation_id and len ( channels ) > <NUM_LIT:1> : <EOL> _channels = channels . find ( lambda row : row . organisation_id == organisation_id ) <EOL> if not _channels : <EOL> _channels = channels . find ( lambda row : row . organisation_id == None ) <EOL> record = _channels . first ( ) <EOL> else : <EOL> record = channels . first ( ) <EOL> if record : <EOL> r . id = record . id <EOL> r . method = "<STR_LIT>" <EOL> else : <EOL> r . method = "<STR_LIT>" <EOL> if r . interactive : <EOL> table . server . label = T ( "<STR_LIT>" ) <EOL> table . protocol . label = T ( "<STR_LIT>" ) <EOL> table . use_ssl . label = "<STR_LIT>" <EOL> table . port . label = T ( "<STR_LIT>" ) <EOL> table . username . label = T ( "<STR_LIT>" ) <EOL> table . password . label = T ( "<STR_LIT>" ) <EOL> table . delete_from_server . label = T ( "<STR_LIT>" ) <EOL> table . port . comment = DIV ( _class = "<STR_LIT>" , <EOL> _title = "<STR_LIT>" % ( T ( "<STR_LIT>" ) , <EOL> T ( "<STR_LIT>" ) ) ) <EOL> table . delete_from_server . comment = DIV ( _class = "<STR_LIT>" , <EOL> _title = "<STR_LIT>" % ( T ( "<STR_LIT>" ) , <EOL> T ( "<STR_LIT>" ) ) ) <EOL> ADD_EMAIL_ACCOUNT = T ( "<STR_LIT>" ) <EOL> s3 . crud_strings [ tablename ] = Storage ( <EOL> title_display = T ( "<STR_LIT>" ) , <EOL> title_list = T ( "<STR_LIT>" ) , <EOL> label_create = ADD_EMAIL_ACCOUNT , <EOL> title_update = T ( "<STR_LIT>" ) , <EOL> label_list_button = T ( "<STR_LIT>" ) , <EOL> msg_record_created = T ( "<STR_LIT>" ) , <EOL> msg_record_deleted = T ( "<STR_LIT>" ) , <EOL> msg_list_empty = T ( "<STR_LIT>" ) , <EOL> msg_record_modified = T ( "<STR_LIT>" ) <EOL> ) <EOL> return True <EOL> s3 . prep = prep <EOL> def postp ( r , output ) : <EOL> if r . interactive and isinstance ( output , dict ) and not s3task . _is_alive ( ) : <EOL> poll_btn = A ( T ( "<STR_LIT>" ) , <EOL> _class = "<STR_LIT>" , <EOL> _href = URL ( args = [ r . id , "<STR_LIT>" ] ) <EOL> ) <EOL> output [ "<STR_LIT>" ] = poll_btn <EOL> return output <EOL> s3 . postp = postp <EOL> return s3_rest_controller ( "<STR_LIT>" ) <EOL> def alert_recipient ( ) : <EOL> """<STR_LIT>""" <EOL> s3 . prep = lambda r : r . method == "<STR_LIT>" and r . representation == "<STR_LIT>" <EOL> return s3_rest_controller ( ) <EOL> def compose ( ) : <EOL> """<STR_LIT>""" <EOL> return s3db . hrm_compose ( ) </s>
