@auth.s3_requires_membership(1)
def tropo_channel():

    tablename = "msg_tropo_channel"
    table = s3db[tablename]

    table.token_messaging.label = T("Tropo Messaging Token")
    table.token_messaging.comment = DIV(DIV(_class="stickytip",
                                            _title="%s|%s" % (T("Tropo Messaging Token"),
                                                              T("The token associated with this application on") + " <a href='https://www.tropo.com/docs/scripting/troposessionapi.htm' target=_blank>Tropo.com</a>")))
    #table.token_voice.label = T("Tropo Voice Token")
    #table.token_voice.comment = DIV(DIV(_class="stickytip",_title=T("Tropo Voice Token") + "|" + T("The token associated with this application on") + " <a href='https://www.tropo.com/docs/scripting/troposessionapi.htm' target=_blank>Tropo.com</a>"))
    # CRUD Strings
    s3.crud_strings[tablename] = Storage(
        label_create=T("Create Tropo Channel"),
        title_display=T("Tropo Channel Details"),
        title_list=T("Tropo Channels"),
        title_update=T("Edit Tropo Channel"),
        label_list_button=T("List Tropo Channels"),
        label_delete_button=T("Delete Tropo Channel"),
        msg_record_created=T("Tropo Channel added"),
        msg_record_modified=T("Tropo Channel updated"),
        msg_record_deleted=T("Tropo Channel deleted"),
        msg_list_empty=T("No Tropo Channels currently registered"))

    return s3_rest_controller()

# -----------------------------------------------------------------------------
Retrieve a single chunk of results from a completed BigQuery job.
dataset/ETHPy150Open sahana/eden/controllers/msg.py/tropo_channel--crossover with--dataset/ETHPy150Open m-lab/telescope/telescope/external.py/BigQueryJobResultCollector._wait_for_results_chunk