parent
e8c21182b1
commit
6740b8e3fc
avalon/avalon_game
|
@ -31,10 +31,13 @@
|
|||
<button type="submit" formaction="{% url 'retract_team' access_code=access_code player_secret=player_secret round_num=round_num vote_num=vote_num %}" class="button-cancel">Change team</button>
|
||||
</div>
|
||||
{% endif %}
|
||||
</form>
|
||||
|
||||
{% if player_vote %}
|
||||
<p>You are voting: {{ player_vote }}</p>
|
||||
<div class="button-container">
|
||||
<button type="submit" formaction="{% url 'vote' access_code=access_code player_secret=player_secret round_num=round_num vote_num=vote_num vote='cancel' %}" class="button-cancel-vote">Retract vote</button>
|
||||
</div>
|
||||
</form>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
|
|
|
@ -17,7 +17,7 @@ urlpatterns = [
|
|||
url(r'^ready/$', views.ready, name='ready'),
|
||||
url(r'^cancel_game/$', views.cancel_game, name='cancel_game'),
|
||||
url(r'^(?P<round_num>[1-5])/(?P<vote_num>[1-5])/', include([
|
||||
url(r'^vote/(?P<vote>(approve|reject))/$', views.vote, name='vote'),
|
||||
url(r'^vote/(?P<vote>(approve|reject|cancel))/$', views.vote, name='vote'),
|
||||
url(r'^choose/(?P<who>[0-9])/$', views.choose, name='choose'),
|
||||
url(r'^unchoose/(?P<who>[0-9])/$', views.unchoose, name='unchoose'),
|
||||
url(r'^finalize_team/$', views.finalize_team, name='finalize_team'),
|
||||
|
|
|
@ -483,28 +483,34 @@ def vote(request, game, player, round_num, vote_num, vote):
|
|||
if vote_round.vote_status == VoteRound.VOTE_STATUS_VOTING\
|
||||
and vote_round.game_round.round_num == round_num\
|
||||
and vote_round.vote_num == vote_num:
|
||||
accept = vote == "approve"
|
||||
vote_round.playervote_set\
|
||||
.update_or_create(defaults={'accept': accept},
|
||||
player=player)
|
||||
team_approved = vote_round.team_approved()
|
||||
if team_approved is not None:
|
||||
# All players voted, voting round is over.
|
||||
vote_round.vote_status = VoteRound.VOTE_STATUS_VOTED
|
||||
vote_round.save()
|
||||
if team_approved:
|
||||
# Team was approved
|
||||
game.game_phase = Game.GAME_PHASE_MISSION
|
||||
else:
|
||||
# Team was rejected
|
||||
if vote_round.is_final_vote():
|
||||
game.game_phase = Game.GAME_PHASE_END
|
||||
if vote == "cancel":
|
||||
try:
|
||||
vote_round.playervote_set.get(player=player).delete()
|
||||
except PlayerVote.DoesNotExist:
|
||||
pass
|
||||
else:
|
||||
accept = vote == "approve"
|
||||
vote_round.playervote_set\
|
||||
.update_or_create(defaults={'accept': accept},
|
||||
player=player)
|
||||
team_approved = vote_round.team_approved()
|
||||
if team_approved is not None:
|
||||
# All players voted, voting round is over.
|
||||
vote_round.vote_status = VoteRound.VOTE_STATUS_VOTED
|
||||
vote_round.save()
|
||||
if team_approved:
|
||||
# Team was approved
|
||||
game.game_phase = Game.GAME_PHASE_MISSION
|
||||
else:
|
||||
game.game_phase = Game.GAME_PHASE_PICK
|
||||
VoteRound.objects\
|
||||
.create(game_round=vote_round.game_round,
|
||||
vote_num=vote_round.vote_num+1,
|
||||
leader=vote_round.next_leader())
|
||||
# Team was rejected
|
||||
if vote_round.is_final_vote():
|
||||
game.game_phase = Game.GAME_PHASE_END
|
||||
else:
|
||||
game.game_phase = Game.GAME_PHASE_PICK
|
||||
VoteRound.objects\
|
||||
.create(game_round=vote_round.game_round,
|
||||
vote_num=vote_round.vote_num+1,
|
||||
leader=vote_round.next_leader())
|
||||
game.save()
|
||||
|
||||
return redirect('game', access_code=game.access_code,
|
||||
|
|
Loading…
Reference in New Issue
Block a user