game creation with clearsilver should work now.
This commit is contained in:
parent
6abbcee533
commit
6a461c441e
3 changed files with 27 additions and 47 deletions
|
@ -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
|
|
@ -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" ?>
|
|
@ -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" ?>
|
Loading…
Add table
Reference in a new issue