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

View file

@ -1,3 +1,4 @@
<?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" ?>

View file

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