from mod_python import * import helper,login,database def display_game_creation_form(req,form): """ prints a html form with multiple drop-down lists for choosing players, goban size and so on. gets a mod_python request, prints to req.write. """ username = form["username"] sessionid = form["sessionid"] data = helper.header() p1data = create_user_dropdown_list("player1",username) p2data = create_user_dropdown_list("player2") gobansize = create_goban_size_dropdown_list("gobansize") #start form #choose player one (black),choose player two (white),choose goban size #'hidden' session id and username data += """
""" % (p1data,p2data,gobansize,sessionid,username) data+=helper.footer(req,form) req.write(data) def process_creation_form(req,form): """ validates and processes the game creation form. If everything was ok, a game will be created. TODO: change this function, so that the original database state canbe restored, if for example one of the users does not have a free game slot. """ player1 = form["player1"] player2 = form["player2"] username = form["username"] try: description = form["description"] except: description = "" helper.debug(req,form,"game creation: will use '%s' as description." % description) #check if at least one of the players is the current user if (player1 == username) or (player2 == username): #create game mygame = database.GobanTable(player1=player1,player2=player2,size=int(form["gobansize"]),description = description) gamename = mygame.name #update entries for player one and player two for player in [player1,player2]: myplayer = database.Users.byUsername(player) if myplayer.free_slot_left: myplayer.add_game(gamename) else:#should not happen: no free game slot. #print error msg req.write("Error: No free game slots for player "+player+"!") #display form again display_game_creation_form(req,form["sessionid"],username) #TODO:game created, now display game overview form login.game_overview_form(req,form) else: #give error message req.write("Sorry, you must be one of the players!