def doView(): status, table_data, db = pageInit('View', formJS=1) if status != 'success': message = "Could not connect to db.\n%s" % (status) exit(message) # Get user data from db sqlStatement = pmt_utils.selectAllColumnsSqlStatement( table_data, 'project_members', form["key_id"].value) dbResult = pmt_utils.executeSQL(db, sqlStatement) if dbResult['status'] != 'success': message = "Unable to get member data from db.\n" + dbResult['message'] exit(message) # Display user data result = dbResult['result'] table_data = pmt_utils.dbToTableData(table_data, 'project_members', result[0]) table_data['project_members']['member_username']['display'] = 'read-only' table_data['project_members']['member_role']['display'] = 'read-only' table_data['project_members']['member_password']['display'] = 'Hidden' pmt_utils.display_form(table_data, 'project_members', editable=0) # Add buttons, and company info url = '/%s-cgi-bin/contact_list.pyc?performDbQuery=1' % db_name pmt_utils.viewFunctionButtons(url, '/%s/html/contactsum.html' % (db_name)) pageEnd(table_data, db)
def doView(): status, table_data, db = pageInit("View", formJS=1) if status != 'success': message = "Could not connect to db.\n" + dbResult['message'] exit(message) status, details = db_authentication.password_valid(db, crypt_salt=db_name, username=username, password=password) if status != 'success': exit(details) sqlStatement = pmt_utils.selectAllColumnsSqlStatement( table_data, 'pai', form["key_id"].value) dbResult = pmt_utils.executeSQL(db, sqlStatement) if dbResult['status'] != 'success': message = "Unable to get action item.\n" + dbResult['message'] exit(message) result = dbResult['result'] table_data = pmt_utils.dbToTableData(table_data, 'pai', result[0]) pmt_utils.display_form(table_data, 'pai', 0) listing_url = '/%s-cgi-bin/pai_admin.pyc?performDbQuery=1' % (db_name) help_url = '/%s/html/paisum.html' % (db_name) emailButton(username, form['key_id'].value, listing_url, help_url) pageEnd(table_data, db)
def doView(): status,table_data,db=pageInit('View',formJS=1) if status != 'success': message="Could not connect to db.\n%s" % status exit(message) sqlStatement = pmt_utils.selectAllColumnsSqlStatement(table_data, 'project_members', form["key_id"].value) dbResult = pmt_utils.executeSQL(db, sqlStatement) if dbResult['status'] != 'success': message="Unable to get project member data.\n%s" % dbResult['message'] exit(message,table_data,db) # Display user data result = dbResult['result'] table_data=pmt_utils.dbToTableData(table_data,'project_members',result[0]) pmt_utils.display_form(table_data, 'project_members', 0) # Add buttons and hidden fields listing_url='/%s-cgi-bin/project_members_admin.pyc?performDbQuery=1' % (db_name) help_url='/%s/html/contactsum.html' % db_name pmt_utils.viewFunctionButtons(listing_url, help_url) pageEnd(table_data,db)
def doSave(): saveDueToCreate = 0 status, table_data, db = pageInit('Save', formJS=1) if status != 'success': message = "Could not connect to db.\n" + status exit(message) status, details = db_authentication.password_valid(db, crypt_salt=db_name, username=username, password=password) if status != 'success': exit(details) if form["key_id"].value == 'create': saveDueToCreate = 1 queryResult = pmt_utils.executeSQL(db, "SELECT NEXTVAL('pai_id_seq')") form["key_id"].value = ` queryResult['result'][0]['nextval'] ` dbResult = pmt_utils.saveForm(table_data, db, form['key_id'].value, "pai", " WHERE id = '%s'" % form["key_id"].value, form) if dbResult['status'] != 'success': message = "Action item could not be saved.\n" + dbResult['message'] exit(message) if saveDueToCreate: subject = 'New PAI #%s has been generated' % (form['key_id'].value) msg = "PAI #%s has been generated.\n\n" % form["key_id"].value msg = msg + "Assigned to: %s\n" % form['assigned_to'].value msg = msg + "Problem Description:\n%s" % form['action_required'].value msg = msg + "\n\nLog into the Project Action Item tracking tool at " msg = msg + "http://www.isrparc.org for further info.\n\n" msg = msg + "If you do not wish to be on this mailing list please " msg = msg + "send an email requesting removal to [email protected].\n" pmt_utils.emailList(db, 'localhost', 'pai_list', subject, msg) table_data = pmt_utils.formToTableData(table_data, 'pai', form, form['key_id'].value) pmt_utils.display_form(table_data, 'pai', 1, 'useValues', 1, db) pmt_utils.alertsArea(form, "Action item successfully saved") # generate function button row listing_url = '/%s-cgi-bin/pai_admin.pyc?performDbQuery=1' % (db_name) help_url = '/%s/html/paisum.html' % (db_name) editFunctionButtons(form["key_id"].value, listing_url, help_url) # generate hidden fields for form pmt_utils.textbox(None, 'key_id', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'action', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'item_no', '', '8', '8', None, None, 'hidden') pageEnd(table_data, db)
def doEdit(): status,table_data,db = pageInit('Edit',formJS=1) if status!='success': message="Could not connect to db.\n%s" % status exit(message) status, details = db_authentication.password_valid(db, crypt_salt=db_name, username=username, password=password) if status != 'success': exit(details) sqlStatement = pmt_utils.selectAllColumnsSqlStatement(table_data, 'project_members', form["key_id"].value) dbResult = pmt_utils.executeSQL(db, sqlStatement) if dbResult['status'] != 'success': message="Could not get project member data.\n%s" % dbResult['message'] exit(message) result = dbResult['result'] table_data=pmt_utils.dbToTableData(table_data,'project_members',result[0]) pmt_utils.display_form(table_data,'project_members', 1,'useValues', 1, db) # get user privileges and display them sqlStatement = "select * from priviledges where " +\ "member_username='******'" % (result[0]['member_username']) dbResult = pmt_utils.executeSQL(db, sqlStatement) if dbResult['status'] != 'success': message="Could not get privileges from db.\n%s" % dbResult['message'] exit(message,table_data,db) result = dbResult['result'] table_data = pmt_utils.dbToTableData(table_data,'priviledges', result[0]) displayPriviledges(result[0], table_data) pmt_utils.alertsArea(form,"Project member data retrieved successfully") listing_url= '/%s-cgi-bin/project_members_admin.pyc?performDbQuery=1' % (db_name) help_url='/%s/html/contactsum.html' % db_name pmt_utils.editFunctionButtons(form["key_id"].value,listing_url,help_url) pmt_utils.textbox(None, 'key_id', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'action', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'item_no', '', '8', '8', None, None, 'hidden') pageEnd(table_data,db)
def doSave(): status, table_data, db = pageInit('Save', formJS=0) if status != 'success': message = "Could not connect to db.\n" + status exit(message) status, details = db_authentication.password_valid(db, crypt_salt=db_name, username=username, password=password) if status != 'success': exit(details) # save the Form dbResult = pmt_utils.saveForm(table_data, db, form['key_id'].value, "project_members", " WHERE id = '%s'" % form["key_id"].value, form) if dbResult['status'] != 'success': message = "Save error.\n" + dbResult['message'] exit(message) table_data = pmt_utils.formToTableData(table_data, 'project_members', form, form['key_id'].value) table_data['project_members']['member_username']['display'] = 'read-only' table_data['project_members']['member_role']['display'] = 'read-only' table_data['project_members']['member_password']['display'] = 'Hidden' pmt_utils.display_form(table_data, 'project_members', 1, 'useValues', 1, db) pmt_utils.alertsArea(form, "Member data successfully saved") # generate function button row listing_url = '/%s-cgi-bin/contact_list.pyc?performDbQuery=1' % db_name help_url = '/%s/html/contactsum.html' % (db_name) editFunctionButtons(form["key_id"].value, listing_url, help_url) pmt_utils.textbox(None, 'key_id', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'action', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'item_no', '', '8', '8', None, None, 'hidden') pageEnd(table_data, db)
def doEdit(): status, table_data, db = pageInit('Edit', formJS=0) if status != 'success': message = "Could not connect to db.\n%s" % status exit(message) status, details = db_authentication.password_valid(db, crypt_salt=db_name, username=username, password=password) if status != 'success': exit(details) sqlStatement = pmt_utils.selectAllColumnsSqlStatement( table_data, 'project_members', form["key_id"].value) dbResult = pmt_utils.executeSQL(db, sqlStatement) if dbResult['status'] != 'success': message = "Unable to get member data from db.\n" + dbResult['message'] exit(message) result = dbResult['result'] table_data = pmt_utils.dbToTableData(table_data, 'project_members', result[0]) table_data['project_members']['member_username']['display'] = 'read-only' table_data['project_members']['member_password']['display'] = 'Hidden' table_data['project_members']['member_role']['display'] = 'read-only' pmt_utils.display_form(table_data, 'project_members', 1, 'useValues', 1, db) pmt_utils.alertsArea(form, "Member data retrieved successfully") listing_url = '/%s-cgi-bin/contact_list.pyc?performDbQuery=1' % db_name help_url = '/%s/html/contactsum.html' % (db_name) editFunctionButtons(form['key_id'].value, listing_url, help_url) pmt_utils.textbox(None, 'key_id', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'action', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'item_no', '', '8', '8', None, None, 'hidden') pageEnd(table_data, db)
def doCreate(): status,table_data,db=pageInit('Create',formJS=1) if status != 'success': message="Could not connect to db.\n%s" % status exit(message) pmt_utils.display_form(table_data, 'project_members', 1,'useValues',1,db) displayPriviledges({}, table_data) message="Enter information on form and depress Create button" pmt_utils.alertsArea(form,message) # Add buttons and hidden fields listing_url='/%s-cgi-bin/project_members_admin.pyc?performDbQuery=1' % (db_name) help_url='/%s/html/contactsum.html' % db_name pmt_utils.createFunctionButtons('create',listing_url, help_url) pmt_utils.textbox(None, 'key_id', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'action', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'item_no', '', '8', '8', None, None, 'hidden') pageEnd(table_data,db)
def doEdit(): status, table_data, db = pageInit('Edit', formJS=1) if status != 'success': message = "Could not connect to the database.\n" + status exit(message) status, details = db_authentication.password_valid(db, crypt_salt=db_name, username=username, password=password) if status != 'success': exit(details) sqlStatement = pmt_utils.selectAllColumnsSqlStatement( table_data, 'pai', form["key_id"].value) dbResult = pmt_utils.executeSQL(db, sqlStatement) if dbResult['status'] != 'success': message = "Could not retrieve action item to edit.\n" + dbResult[ 'message'] exit(message) result = dbResult['result'] table_data = pmt_utils.dbToTableData(table_data, 'pai', result[0]) pmt_utils.display_form(table_data, 'pai', 1, 'useValues', 1, db) pmt_utils.alertsArea(form, "Action item data retrieved successfully") listing_url = '/%s-cgi-bin/pai_admin.pyc?performDbQuery=1' % (db_name) help_url = '/%s/html/pai_intro.html' % (db_name) del_priv = pmt_utils.hasPriv(db, username, 'del_pai') editFunctionButtons(form["key_id"].value, listing_url, help_url, del_priv) pmt_utils.textbox(None, 'key_id', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'action', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'item_no', '', '8', '8', None, None, 'hidden') pageEnd(table_data, db)
def doCreate(): status, table_data, db = pageInit('Create', formJS=1) if status != 'success': message = "Could not connect to db.\n%s" % status exit(message) # initialize form data values to zero or blank table_data = pmt_utils.init_table_data(table_data, 'pai') now = time_pkg.current_time_MM_DD_YYYY() table_data['pai']['date_created']['value'] = now status, details = db_authentication.password_valid(db, crypt_salt=db_name, username=username, password=password) if status != 'success': exit(details) table_data['pai']['id']['display'] = 'hidden' pmt_utils.display_form(table_data, 'pai', 1, 'useValues', 1, db) message = "Enter information on form and depress Create button" pmt_utils.alertsArea(form, message) # create functions button row listing_url = '/%s-cgi-bin/pai_admin.pyc?performDbQuery=1' % (db_name) help_url = '/%s/html/pai_intro.html' % (db_name) pmt_utils.createFunctionButtons('create', listing_url, help_url) pmt_utils.textbox(None, 'key_id', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'action', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'item_no', '', '8', '8', None, None, 'hidden') pageEnd(table_data, db)
def doSave(): status,table_data,db=pageInit('Save',formJS=1) if status != 'success': message="Could not connect to db.\n%s" % status exit(message) create='false' if form["key_id"].value == 'create': create='true' # check for duplicate username sql="select id from project_members " sql=sql+"where member_username='******'" % form['member_username'].value dupResult=pmt_utils.executeSQL(db,sql) if len(dupResult['result'])!=0: msg="The specified username '%s' "% form['member_username'].value msg=msg+'is already in use.' exit(msg) # update the member id sql="SELECT NEXTVAL('project_members_id_seq')" queryResult = pmt_utils.executeSQL(db, sql) if queryResult['status']!='success': message="Unable to retrieve project member id" exit(message,table_data,db) form["key_id"].value = `queryResult['result'][0]['nextval']` form['id'].value=form['key_id'].value # save member data to project_members table in db dbResult = pmt_utils.saveForm(table_data, db, form['key_id'].value, "project_members", " WHERE id = '%s'" % form["key_id"].value, form) if dbResult['status'] != 'success': message="Project member could not be saved.\n" + dbResult['message'] exit(message,table_data,db) # save privileges to privileges table in db whereStr=" WHERE member_username='******'" % form["member_username"].value dbResult = pmt_utils.saveForm(table_data, db, form['member_username'].value, "priviledges", whereStr, form) if dbResult['status'] != 'success': message="Unable to save member privileges.\n%s" % dbResult['message'] exit(message,table_data,db) # Display the user information table_data = pmt_utils.formToTableData(table_data, 'project_members', form, form['key_id'].value) pmt_utils.display_form(table_data,'project_members',1,'useValues',1,db) # Display the user's privileges sql = "select * from priviledges " sql=sql+"where member_username='******'" % (form['member_username'].value) dbResult = pmt_utils.executeSQL(db, sql) if dbResult['status'] != 'success': message="Could not get member privileges.\n%s" % dbResult['message'] exit(message) result = dbResult['result'] table_data = pmt_utils.dbToTableData(table_data, 'priviledges', result[0]) displayPriviledges(result[0], table_data) pmt_utils.alertsArea(form,"Project member successfully saved") # if create=='true': # Add the username and password to the .passwd file or htaccess command='/usr/bin/htpasswd -b ' command=command+'/var/www/admin/%s.passwd ' % db_name #NOTE : Use the form data here since an admin's cookie is logged in command=command+'%s ' % form['member_username'].value command=command+'%s' % form['member_password'].value status, output = commands.getstatusoutput(command) if create=='true': # Send an email to the new user db_label=string.upper(db_name) if db_label=='SAVE': db_label="IFCS" if db_label=="BUAV": db_label="FCST" if db_label=="CUAV": db_label="PADV" msg="A new user account has been created for you " msg=msg+"on the %s site at www.isrparc.org.\n\n"%string.upper(db_label) #NOTE : Use the form data here since an admin's cookie is logged in msg=msg+"Username: %s\n" % form['member_username'].value msg=msg+"Password: %s" % form['member_password'].value pmt_utils.send_email('localhost', '*****@*****.**', [form['email'].value], "New User Account", msg) # Add buttons and hidden fields listing_url='/%s-cgi-bin/project_members_admin.pyc?performDbQuery=1' % (db_name) help_url='/%s/html/contactsum.html' % db_name pmt_utils.editFunctionButtons(form["key_id"].value,listing_url, help_url) pmt_utils.textbox(None, 'key_id', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'action', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'item_no', '', '8', '8', None, None, 'hidden') pageEnd(table_data,db)
def edit_project_info(performDbQuery=0, onLoad=None, queryFields=None): table_data = declarations.define_tables() print "<HTML>" print "<HEAD>" pmt_utils.javaScript("project_admin") pmt_utils.title("Project Administration") print "</HEAD>" pmt_utils.bodySetup(onLoad) pmt_utils.mainHeading('Project Administration') pmt_utils.subHeading('Project Info') pmt_utils.formSetup("project_admin", db_name, "project_admin", "return submitForm(document.project_admin)") if username == None: pmt_utils.usernamePasswordDisplay() project_adminButtons(button_name='edit') pmt_utils.textbox(None, 'key_id', '1', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'action', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'item_no', '', '8', '8', None, None, 'hidden') print "</FORM>" try: pmt_utils.trailer(table_data, db) db.close() except NameError: pass print "</BODY>" print "</HTML>" return dbResult = pmt_utils.connectDB(declarations.pmt_info['browser_username'], declarations.pmt_info['browser_password'], declarations.pmt_info['db_name']) # could not connect to db if dbResult['status'] != 'success': pmt_utils.alertsArea( form, "Can not connect to database,\n" + dbResult['message']) project_adminButtons() print "</FORM>" try: pmt_utils.trailer(table_data, db) db.close() except NameError: pass print "</BODY>" print "</HTML>" return db = dbResult['result'] status, details = db_authentication.password_valid(db, crypt_salt=db_name, username=username, password=password) if status != 'success': print '<form method=post action=/%s-cgi-bin/project_admin.pyc>' % db_name pmt_utils.usernamePasswordDisplay(username) pmt_utils.alertsArea(form, 'Can not verify you as a valid user') print '<hr><input name=reload type=submit value="Query">' print '<input name=action value=edit type=hidden>' print '</form>' sys.exit() if pmt_utils.hasPriv(db, username, 'project_data') != 1: print '<form method=post action=/%s-cgi-bin/project_admin.pyc>' % db_name pmt_utils.usernamePasswordDisplay(username) msg = 'User %s does not have project admin privileges>' % username pmt_utils.alertsArea(form, msg) print '<hr><input name=reload type=submit value="Query">' print '<input name=action value=edit type=hidden>' print '</form>' sys.exit() if form.has_key('key_id'): key_id = form['key_id'].value else: key_id = '1' sqlStatement = pmt_utils.selectAllColumnsSqlStatement( table_data, 'project_info', key_id) dbResult = pmt_utils.executeSQL(db, sqlStatement) if dbResult['status'] != 'success': msg = "Could not retrieve project information\n" + dbResult['message'] pmt_utils.alertsArea(form, msg) else: result = dbResult['result'] table_data = pmt_utils.dbToTableData(table_data, 'project_info', result[0]) table_data['project_info']['id']['value'] = '1' pmt_utils.display_form(table_data, 'project_info', 1, 'useValues', 1, db) pmt_utils.alertsArea(form, "Project Information retrieved successfully") project_adminButtons(button_name='save') pmt_utils.textbox(None, 'key_id', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'action', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'item_no', '', '8', '8', None, None, 'hidden') print "</FORM>" try: pmt_utils.trailer(table_data, db) db.close() except NameError: pass print "</BODY>" print "</HTML>"
def doEdit(): table_data = declarations.define_tables() print "<HTML>" print "<HEAD>" pmt_utils.generate_form_javascript(table_data, 'project_info', 'project_admin', 0) pmt_utils.title("Project Info Administration") print "</HEAD>" pmt_utils.bodySetup() pmt_utils.mainHeading('Project Info Administration') pmt_utils.subHeading('Edit Project Info') pmt_utils.formSetup("project_admin", db_name, "project_admin", "return submitForm(document.project_admin)") dbResult = pmt_utils.connectDB(declarations.pmt_info['browser_username'], declarations.pmt_info['browser_password'], declarations.pmt_info['db_name']) if dbResult['status'] != 'success': msg = "Could not connect to the database\n" pmt_utils.alertsArea(form, msg + dbResult['message']) sys.exit() db = dbResult['result'] status, details = db_authentication.password_valid(db, crypt_salt=db_name, username=username, password=password) if status != 'success': print '<form method=post action=/%s-cgi-bin/project_admin.pyc>' % db_name pmt_utils.usernamePasswordDisplay(username) pmt_utils.alertsArea(form, 'Can not verify you as a valid user') print '<hr><input name=reload type=submit value="Query">' print '<input name=action value=edit type=hidden>' print '</form>' sys.exit() if pmt_utils.hasPriv(db, username, 'project_data') != 1: print '<form method=post action=/%s-cgi-bin/project_admin.pyc>' % db_name pmt_utils.usernamePasswordDisplay(username) msg = 'User %s does not have project admin privileges' % username pmt_utils.alertsArea(form, msg) print '<hr><input name=reload type=submit value="Query">' print '<input name=action value=edit type=hidden>' print '</form>' sys.exit() sqlStatement = pmt_utils.selectAllColumnsSqlStatement( table_data, 'project_info', '1') dbResult = pmt_utils.executeSQL(db, sqlStatement) if dbResult['status'] != 'success': msg = "Could not retrieve project info to edit\n" pmt_utils.alertsArea(form, msg + dbResult['message']) else: result = dbResult['result'] table_data = pmt_utils.dbToTableData(table_data, 'project_info', result[0]) table_data['project_info']['id']['value'] = '1' pmt_utils.display_form(table_data, 'project_info', 1, 'useValues', 1, db) pmt_utils.alertsArea(form, "Project Info retrieved successfully") project_adminButtons('save') pmt_utils.textbox(None, 'key_id', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'action', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'item_no', '', '8', '8', None, None, 'hidden') print "</FORM>" pmt_utils.trailer(table_data, db) db.close() print "</BODY>" print "</HTML>"
def doSave(): table_data = declarations.define_tables() print "<HTML>" print "<HEAD>" pmt_utils.generate_form_javascript(table_data, 'project_info', 'project_admin', 0) pmt_utils.title("Project Info Administration") print "</HEAD>" pmt_utils.bodySetup() pmt_utils.mainHeading('Project Info Administration') pmt_utils.subHeading('Edit Project Info') pmt_utils.formSetup("project_admin", db_name, "project_admin", "return submitForm(document.project_admin)") dbResult = pmt_utils.connectDB(declarations.pmt_info['browser_username'], declarations.pmt_info['browser_password'], declarations.pmt_info['db_name']) if dbResult['status'] != 'success': msg = "Project Info could not be saved, could not connect to db\n" pmt_utils.alertsArea(form, msg + dbResult['message']) # generate function button row project_adminButtons('save') # generate hidden fields for form pmt_utils.textbox(None, 'key_id', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'action', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'item_no', '', '8', '8', None, None, 'hidden') print "</FORM>" pmt_utils.trailer(table_data, db) db.close() print "</BODY>" print "</HTML>" return db = dbResult['result'] # save the Form dbResult = pmt_utils.saveForm(table_data, db, None, "project_info", " WHERE id = '1'", form) # if the form was not successfully saved if dbResult['status'] != 'success': msg = "Project Info could not be saved due to an error during save,\n" pmt_utils.alertsArea(form, msg + dbResult['message']) else: table_data = declarations.define_tables() table_data = pmt_utils.formToTableData(table_data, 'project_info', form) table_data['project_info']['id']['value'] = '1' pmt_utils.display_form(table_data, 'project_info', 1, 'useValues', 1, db) pmt_utils.alertsArea(form, "Project Info successfully saved") # generate function button row project_adminButtons('save') # generate hidden fields for form pmt_utils.textbox(None, 'key_id', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'action', '', '10', '10', None, None, 'hidden') pmt_utils.textbox(None, 'item_no', '', '8', '8', None, None, 'hidden') print "</FORM>" pmt_utils.trailer(table_data, db) db.close() print "</BODY>" print "</HTML>"