def ErrorPage(self, pagename, title, errortext): self.PrintHeader('The Conversatron - %s' % pagename) self.StartErrorBox(title) print errortext self.EndBox() self.PrintFooter() web.quit()
def HandleBrowseView(): "Show just the picture for the browse thing." if not form.getvalue('id'): print 'Content-type: text/html\n' print "<html><body>Select an askee to view images.</body></html>" web.quit() try: id = int(form["id"].value) askee = db.loadRow('askee', id)#db.loadObject('select * from askee where id='+str(id)) if askee == None: raise Exception except: web.quit() global formtarget formid = formtarget shortname = askee.shortname print 'Content-type: text/html\n' print """ <html> <head> <title>Askee Browser</title> <script> function SelectAskee(emotion) { theform = top.opener.document.reply theform.shortname%(formid)s.value='%(shortname)s' theform.askee%(formid)s.selectedIndex=0 theform.emotion%(formid)s.selectedIndex=emotion top.window.close() } </script> </head> <body> """ % locals() print '<table><tr><td>Normal</td><td>Happy</td><td>Angry</td><td>Sad</td></tr><tr>' print '''<td><a href="#" onclick="SelectAskee(0);return void(0)"><img src="/askees/''' + askee.normpic +'''" width=80 height=100></a></td>''' print '''<td><a href="#" onclick="SelectAskee(1);return void(0)"><img src="/askees/''' + askee.happypic +'''" width=80 height=100></a></td>''' print '''<td><a href="#" onclick="SelectAskee(2);return void(0)"><img src="/askees/''' + askee.angrypic +'''" width=80 height=100></a></td>''' print '''<td><a href="#" onclick="SelectAskee(3);return void(0)"><img src="/askees/''' + askee.sadpic +'''" width=80 height=100></a></td>''' print '</tr></table>' print '</body></html>'
def PrintError(error): "Print an error box with the specified text." theme.PrintHeader('Login Manager') theme.StartErrorBox('Input error') print error theme.EndErrorBox() theme.PrintFooter() web.quit()
def HandleAdd(): "Add an askee from form data." askee = SuperHash() try: askee.name = form["name"].value askee.shortname = form["shortname"].value if form.getvalue('radiocat','') == 'existing': askee.category = form["category"].value else: askee.category = form["newcategory"].value askee.normpic = string.strip(form["normpic"].value) askee.happypic = string.strip(form["happypic"].value) askee.angrypic = string.strip(form["angrypic"].value) askee.sadpic = string.strip(form["sadpic"].value) except: theme.PrintHeader('The Conversatron - Askee manager') theme.StartErrorBox("Input Error") print "Don't leave any fields blank, chump!<br>" theme.EndBox() theme.PrintFooter() web.quit() try: askee.url = form["url"].value except: pass id = ConvDB.AskeeShortcutToID(askee.shortname) if id: theme.PrintHeader('The Conversatron - Askee manager') theme.StartErrorBox("Namespace error") print "That shortcut is already taken. Choose another." theme.EndErrorBox() theme.PrintFooter() web.quit() db.storeObject('askee', askee) num = ConvDB.AskeeShortcutToID(askee.shortname) web.RedirectInFolder('?op=display&id='+str(num))
def HandleRetire(): "Toggle retired status of an askee." try: id = int(form["id"].value) askee = db.loadObject('select * from askee where id='+str(id)) if askee == None: raise Exception except: theme.PrintHeader('The Conversatron - Retired Askees') theme.StartErrorBox("Askee Unknown") print '<br><a href="">Back to Askee Manager</a>' theme.EndErrorBox() theme.PrintFooter() web.quit() if askee.retired == 'n': askee.retired = 'y' else: askee.retired = 'n' db.updateObject('askee', askee, 'id='+str(askee.id)) web.RedirectInFolder('?op=display&id='+str(id))
def HandleEditForm(): "Bring up the edit slogan form" try: id = int(form["id"].value) slogan = db.loadObject("select * from slogan where id=" + str(id)) except: web.RedirectInFolder("/sloganman.py") web.quit() theme.PrintHeader("The Conversatron - Slogan Manager") theme.PrintNavBanner("Slogan Manager") slogtext = string.replace(str(slogan.slogan), '"', """) print '<form action="sloganman.py" method="post">' print '<input type="hidden" name="op" value="editit">' print '<input type="hidden" name="id" value="' + str(slogan.id) + '">' print 'Edit the sucker: <input name="slogan" type="text" size=70 maxlength=255 value="' + slogtext + '"> ' print 'Theme: <input name="theme" type="text" value="' + slogan.theme + '">' print '<input type="submit" value="Edit it"><br>' theme.PrintFooter()
def HandleSearch(): search = form.getvalue("search", "") if search == "": web.RedirectInFolder("/users.py") users = db.loadObjects("select name from user where user.name like '%" + search + "%' order by name") if len(users) == 1 and users[0].name.lower() == search.lower(): web.RedirectInFolder("/mans/users.py?op=lookup&name=" + users[0].name) web.quit() theme.PrintHeader("The Conversatron - User manager") theme.PrintNavBanner("User Manager") PrintUserSearchForm() if len(users) > 0: MakeUserTable(users) else: print "No users found with that string." print '<br><a href="users.py">Back to user manager</a>' theme.PrintFooter()
def HandleChange(): "Change the details of an askee based on the form." try: id = int(form["id"].value) askee = db.loadObject('select * from askee where id='+str(id)) if askee == None: raise Exception except: theme.PrintHeader('The Conversatron - Askee manager') theme.StartErrorBox("Askee Unknown") print '<br><a href="askeeman.py">Back to Askee Manager</a>' theme.EndErrorBox() theme.PrintFooter() web.quit() oldcut = askee.shortname try: askee.name = form["name"].value askee.shortname = form["shortname"].value if form.getvalue('radiocat','') == 'existing': askee.category = form["category"].value else: askee.category = form["newcategory"].value askee.normpic = form["normpic"].value askee.happypic = form["happypic"].value askee.angrypic = form["angrypic"].value askee.sadpic = form["sadpic"].value except: theme.PrintHeader('The Conversatron - Askee manager') theme.StartErrorBox("Whoa there guy!") print "Don't leave any fields blank, chump!" theme.EndErrorBox() theme.PrintFooter() web.quit() askee.url = '' try: askee.url = form["url"].value except: pass if oldcut != askee.shortname: cid = ConvDB.AskeeShortcutToID(askee.shortname) if cid: theme.PrintHeader('The Conversatron - Askee manager') theme.StartErrorBox('Namespace error!') print "That shortcut is already taken. Choose another." theme.EndErrorBox() theme.PrintFooter() web.quit() db.updateObject('askee', askee, 'id='+str(askee.id)) web.RedirectInFolder('/askeeman2.py?op=display&id='+str(id))
def HandleDisplay(): "Show an askee and bring up editing forms." theme.PrintHeader('The Conversatron - Askee manager') theme.PrintNavBanner('Askee Manager') categories = ConvDB.GetAskeeCategories() try: id = int(form["id"].value) askee = db.loadObject('select * from askee where id='+str(id)) if askee == None: raise Exception except: print "Askee Unknown<br>" print '<a href="askeeman2.py">Back to Askee Manager</a>' theme.PrintFooter() web.quit() theme.StartBox('Info on '+askee.name, "#666699") if user.usertype >= 3: print '<form method="post" action="askeeman2.py" name="askee">' print '<input type="hidden" name="op" value="change">' print '<input type="hidden" name="id" value="'+str(askee.id)+'">' name = askee.name.replace('"', '"') # string.replace(str(askee.name), '"', '"') print '<table>' print '<tr><td>Name :</td><td><input name="name" type="text" maxlength=255 value="'+name+'"></td></tr>' print '<tr><td>Shortcut :</td><td><input name="shortname" type="text" maxlength=12 value="'+str(askee.shortname)+'"></td></tr>' print '<tr><td>Category :</td><td><input type="radio" name="radiocat" value="existing" checked> <select name="category" onchange="document.askee.radiocat[0].checked=true">' for category in categories: web.HtmlOption(category.category,category.category, askee.category==category.category ) print '</select></td></tr>' print '<tr><td></td><td><input type="radio" name="radiocat" value="new"> <input name="newcategory" type="text" maxlength=32 value="'+str(askee.category)+'" onfocus="document.askee.radiocat[1].checked=true"></td></tr>' print '<tr><td></td><td>[<a href="'+ ExpandCategoryURL(askee) +'">view cateogry</a>]</td></tr>' print '</table><br>' print '*Do <b>NOT</b> leave with any broken images here!!<br>' print '<table border><tr><td> NormPic : <input name="normpic" type="text" maxlength=255 value="'+str(askee.normpic)+'"><br>' print '<img src="/askees/' + askee.normpic +'" width=80 height=100></td>' print '<td>HappyPic : <input name="happypic" type="text" maxlength=255 value="'+str(askee.happypic)+'"><br>' print '<img src="/askees/' + askee.happypic +'" width=80 height=100></td><tr>' print '<td>AngryPic : <input name="angrypic" type="text" maxlength=255 value="'+str(askee.angrypic)+'"><br>' print '<img src="/askees/' + askee.angrypic +'" width=80 height=100></td>' print '<td>SadPic : <input name="sadpic" type="text" maxlength=255 value="'+str(askee.sadpic)+'"><br>' print '<img src="/askees/' + askee.sadpic +'" width=80 height=100></td></tr></table>' if askee.url == None or askee.url == "": print '<br>URL : <input name="url" type="text" size=64 maxlength=255><br>' else: print '<br>URL : <input name="url" type="text" value="'+str(askee.url)+'" size=64 maxlength=255><br>' if user.usertype >= 3: print '<br><input type="submit" value="Change"></form><br>' print '<br><a href="askeeman2.py?op=retire&id='+str(askee.id)+'">' if askee.retired == 'n': print 'Retire this askee</a><br>' else: print 'Unretire this askee</a><br>' print '<br><a href="fileman.html" target="_blank">Open file browser</a><br>' print '<br><a href="askeeman2.py">Back to Askee Manager</a>' theme.EndBox() theme.PrintFooter()
#!/usr/bin/env python from StandardVars import * import web # class NameResult(object); # __slots__ = ['status','message'] # # def __init__(self, status,message): # self.status=status # self.message=message name = form.getvalue("name") if not name: print "[-1, 'Illegal name']"; web.quit() exists = db.loadValue("select name from user where name=%s", name) if exists: print "[0, 'Name in use']"; else: print "[1, 'Name available']";