Insane Problem
Victor Subervi
victorsubervi at gmail.com
Thu Dec 3 11:07:14 EST 2009
On Thu, Dec 3, 2009 at 10:53 AM, Carsten Haese <carsten.haese at gmail.com>wrote:
> Victor Subervi wrote:
> > In order to help you diagnose the problem, we need to see the *exact*
> > code you're running, we need to see the *exact* inputs going into it,
> > and we need to see the *exact* output coming out of it.
> >
> >
> > Let's see your answers and see if you're right that the above output
> > helps you arrive at the correct conclusion.
>
> No, it doesn't, because you've only provided one third of what I asked
> for. I also asked for the code and the inputs that go into it.
>
I provided those earlier. To be sure I don't miss anything that may be
important, here is the entire code for chooseOptions.py, the referrer. What
I consider to be the important code is between the <SNIPPETS>:
#!/usr/bin/python
import cgitb; cgitb.enable()
import MySQLdb
import cgi
import sys,os
sys.path.append(os.getcwd())
from login import login
import string
import options
from particulars import optionsTables, addStore
def chooseOptions():
print '''Content-Type: text/html\r\n
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<form action='chooseOptions2.py' method='post'>
'''
storesTables = []
junkStores = string.join(addStore(), ', ')
for table in optionsTables():
if table not in ('particulars', junkStores):
storesTables.append(table)
bgcolors = ['F2F6D3', 'F2DDD3', 'D7DDD3']
myOptions = []
myMeanings = []
<SNIPPET>
for table in storesTables:
try:
fn = getattr(options, table)
opts, means = fn('names')
myOptions.append(opts)
myMeanings.append(means)
except:
pass
</SNIPPET>
i = 0
print "<font size='4'><b>Please select which of the option groups below
you would like to associate with each store. On the next page, you will have
the opportunity to select which options within each option group you would
like to have in your selection for each store.</b></font><br /><br />"
<SNIPPET>
for table in storesTables:
print "<table align='center' bgcolor='#%s' border='1'>\n <tr>\n <td
colspan='3'>\n" % bgcolors[i]
print "<h1 align='center'>%s</h1>\n </td>\n </tr>\n" %
(table[0].upper() + table[1:])
print " <tr>\n <td align='center'><b>Option</b></td>\n <td
align='center'><b>Definition</b></td>\n <td
align='center'><b>Check</b></td>\n </tr>\n"
j = 0
while j < len(myOptions[0]):
print " <tr>\n <td>%s</td>\n <td>%s</td>\n <td
align='center'><input type='checkbox' name='%s' /></td>\n </tr>\n" %
(myOptions[0][j], myMeanings[0][j], table + '-' + myOptions[0][j])
j += 1
print "</table><br /><br />\n"
i += 1
<SNIPPET>
print '''
<div align='center'>
<input type='submit' value=' Send ' />
</div>
</form>
</body>
</html>'''
chooseOptions()
Here is the pared-down code (to the "products") from options.py:
def products(which='', specificTables=[]):
code = []
names = []
meanings = []
code.append(['Extra-small', 'Small', 'Medium', 'Large', 'XLarge',
'XXLarge', 'XXXLarge'])
meanings.append('The standard sizes.')
names.append('sizes')
if which == 'names':
for name in colors('products', 'names'):
names.append(name)
for meaning in colors('products', 'meanings'):
meanings.append(meaning)
return names, meanings
elif which == 'specificTables':
whichTablesToReturn = []
colorsTables, colorsNames = colors('products', 'specificTables',
specificTables)
for name in colorsNames:
names.append(name)
for table in colorsTables:
code.append(table)
i = 0
while i < len(names): # We utilize the name of the table to determine
where it is in the code tuple
for table in specificTables:
if names[i] == table:
whichTablesToReturn.append(i)
i += 1
returnTheseTables = []
for table in whichTablesToReturn:
returnTheseTables.append(code[table])
returnTheseNames = []
for table in whichTablesToReturn:
returnTheseNames.append(names[table])
i = 0
all = ''
table = ''
while i < len(returnTheseNames):
table += "<table border='1'>\n <tr>\n <td colspan='16'
align='center'><b>%s</b></td>\n </tr>" % returnTheseNames[i]
j = 0
for elt in code[i]:
if (j + 8) % 8 == 0:
table += ' <tr>\n'
table += ' <td>%s</td>\n' % code[i][j]
table += " <td><input type='checkbox' name='%s' value='%s' /></td>"
% (returnTheseNames[i], returnTheseTables[i][j])
if (j + 1) % 8 == 0:
table += ' </tr>\n'
j += 1
if table[-6:] != '</tr>\n':
table += ' </tr>\n'
table += '</table>\n'
all += table + '<br /><br />'
i += 1
print all
else:
i = 0
all = ''
if which != '': # I place a dummy value in here to get what I want
ourCode = []
ourMeanings = []
ourNames = specificTables
i = 0
for name in names:
for check in ourNames:
if name == check:
ourCode.append(code[i])
ourMeanings.append(meanings[i])
i += 1
else:
ourCode = code
ourMeanings = meanings
ourNames = names
ourColors = []
i = 0
while i < len(ourNames):
if ourNames[i] in names:
table = '<i>%s</i>\n' % ourMeanings[i]
table += "<table border='1'>\n <tr>\n <td colspan='16'
align='center'><b>%s</b></td>\n </tr>" % ourNames[i]
j = 0
for elt in ourCode[i]:
if (j + 8) % 8 == 0:
table += ' <tr>\n'
table += ' <td>%s</td>\n' % ourCode[i][j]
table += " <td><input type='checkbox' name='%s' value='%s'
/></td>" % (ourNames[i], ourCode[i][j])
if (j + 1) % 8 == 0:
table += ' </tr>\n'
j += 1
if table[-6:] != '</tr>\n':
table += ' </tr>\n'
table += '</table>\n'
all += table + '<br /><br />'
else: # This must be a color option
ourColors.append(ourNames[i])
i += 1
all += colors('products', 'junk', ourColors)
return all
Here is the chooseOptions2.py, with <SNIPPET>:
#! /usr/bin/python
import cgitb; cgitb.enable()
import cgi
import sys,os
sys.path.append(os.getcwd())
from login import login
import string
import options
from particulars import optionsTables, addStore
def optionsPrintout(table):
form = cgi.FieldStorage()
fn = getattr(options, table)
ourOptionsNames = []
optionsNames, doNotUse = fn('names')
<SNIPPET>
for name in optionsNames:
check = form.getfirst(table + '-' + name, '')
if check != '':
ourOptionsNames.append(name)
try:
return fn('junk', ourOptionsNames)
except:
pass
<SNIPPET>
def chooseOptions2():
print '''Content-Type: text/html\r\n
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<form action='chooseOptions3.py' method='post'>
'''
print '<h2>Which options shall we associate with the items in each
shop?</h2><br />'
storesTables = []
junkStores = string.join(addStore(), ', ')
for table in optionsTables():
if table not in ('particulars', junkStores):
storesTables.append(table)
bgcolors = ['F2F6D3', 'F2DDD3', 'D7DDD3']
i = 0
for table in storesTables:
try:
fn = getattr(options, table) # This is only here to trigger the try
statement
print "<table border='1' bgcolor='#%s'>\n <tr>\n <td>\n" %
bgcolors[i]
print '<h1 align="center">%s</h1>' % (table[0].upper() + table[1:])
print optionsPrintout(table)
print " </td>\n </tr>\n</table><br /><br />\n"
except:
# All tables must have the products options in them by defualt
print "<table border='1' bgcolor='#%s'>\n <tr>\n <td>\n" %
bgcolors[i]
print '<h1 align="center">%s</h1>' % (table[0].upper() + table[1:])
# print optionsPrintout('products')
print " </td>\n </tr>\n</table><br /><br />\n"
i += 1
print '''
</td></tr></table><br /><br />
<div align='center'>
<input type='submit' value=' Send ' />
</div>
</body>
</html>'''
chooseOptions2()
TIA,
V
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20091203/912617d2/attachment-0001.html>
More information about the Python-list
mailing list