game creation with clearsilver should work now.

This commit is contained in:
phear 2005-12-13 19:44:07 +00:00
parent 6abbcee533
commit 6a461c441e
3 changed files with 27 additions and 47 deletions

View file

@ -22,19 +22,6 @@ def create_user_dropdown_list(listname,selected = ""):
data += '</select>' data += '</select>'
return data return data
def create_goban_size_dropdown_list(listname):
"""
gets a name, returns a string with a html form for selecting the goban size.
"""
data = """
<select name="%s">
<option> 9 </option>
<option> 13 </option>
<option> 19 </option>
</select>
""" % listname
return data
class GameCreation: class GameCreation:
""" """
manages the creation of games. manages the creation of games.
@ -50,36 +37,34 @@ class GameCreation:
return self.display_game_creation_form() return self.display_game_creation_form()
else: else:
httptools.redirect("/login") return helper.cs_render("templates/not_logged_in.cs")
def display_game_creation_form(self): def display_game_creation_form(self, message = ""):
""" """
prints a html form with multiple drop-down lists for choosing players, prints a html form with multiple drop-down lists for choosing players,
goban size and so on. goban size and so on.
TODO: authentication?
""" """
username = cpg.request.sessionMap["username"] username = cpg.request.sessionMap["username"]
myuser = database.Users.byUsername(username) myuser = database.Users.byUsername(username)
sessionid = cpg.request.sessionMap["_sessionId"] sessionid = cpg.request.sessionMap["_sessionId"]
data = helper.header()
p1data = create_user_dropdown_list("player1",username) #p1data = create_user_dropdown_list("player1",username)
p2data = create_user_dropdown_list("player2") #p2data = create_user_dropdown_list("player2")
gobansize = create_goban_size_dropdown_list("gobansize")
#start form settings = {}
#choose player one (black),choose player two (white),choose goban size settings["Data.Message"] = message
data += """ userlist = database.get_users_with_free_game_slots()
<form method="post"> i = 0
<p>Player One (Black): %s </p> for item in userlist:
<p>Player Two (White): %s </p> settings["Data.Userlist.%d" % i] = item
<p>Goban Size: %s fields </p> i += 1
<p>Optional name for game: <input type="text" name="description" size="20" class="text"></p>
<input type="submit" class="submit" value="create game"> settings["Data.Username"] = username
</form>
""" % (p1data,p2data,gobansize) return helper.cs_render("templates/gamecreation.cs",settings)
data += helper.footer()
return data
def process_creation_form(self,player1,player2,gobansize,description=None): def process_creation_form(self,player1,player2,gobansize,description=None):
""" """
@ -92,7 +77,6 @@ class GameCreation:
myuser = database.Users.byUsername(username) myuser = database.Users.byUsername(username)
sessionid = cpg.request.sessionMap["_sessionId"] sessionid = cpg.request.sessionMap["_sessionId"]
data = helper.header()
#check if at least one of the players is the current user #check if at least one of the players is the current user
if (player1 == username) or (player2 == username): if (player1 == username) or (player2 == username):
#create game #create game
@ -104,18 +88,11 @@ class GameCreation:
if myplayer.free_slot_left: if myplayer.free_slot_left:
myplayer.add_game(gamename) myplayer.add_game(gamename)
else:#should not happen: no free game slot. else:#should not happen: no free game slot.
#print error msg #display form with error msg
data += "Error: No free game slots for player %s!<br>" % player return self.display_game_creation_form("Error: No free game slots for player %s!<br>" % player)
#display form again
return self.display_game_creation_form()
httptools.redirect("/overview") httptools.redirect("/overview")
else: else:#display form with error msg
#give error message return self.display_game_creation_form("Sorry, but you must be one of the players!<br>")
data += "Sorry, you must be one of the players!<br>"
#display form again
return self.display_game_creation_form()
data+=helper.footer(req,form)
return data
index.exposed = True index.exposed = True

View file

@ -1,3 +1,4 @@
<?cs include:"templates/header.cs" ?> <?cs include:"templates/header.cs" ?>
You must be logged in to access this page. You must be logged in to access this page.
Click <a href="/login/">here</a> to login.
<?cs include:Settings.TemplateDir +"footer.cs" ?> <?cs include:Settings.TemplateDir +"footer.cs" ?>

View file

@ -24,6 +24,8 @@
</table> </table>
<?cs else ?>
You don't have any running games.
<?cs /if ?> <?cs /if ?>
@ -32,7 +34,7 @@
You have <?cs var:Data.Counter ?> free game slots.<br> You have <?cs var:Data.Counter ?> free game slots.<br>
<a href="/gamecreation"> Start a new game</a><br> <a href="/gamecreation"> Start a new game</a><br>
<?cs else ?> <?cs else ?>
"Sorry, all your game slots are in use." Sorry, all your game slots are in use.
<?cs /if ?> <?cs /if ?>
<?cs include:Settings.TemplateDir +"footer.cs" ?> <?cs include:Settings.TemplateDir +"footer.cs" ?>