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>
|
<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>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</form>
|
|
||||||
|
|
||||||
{% if player_vote %}
|
{% if player_vote %}
|
||||||
<p>You are voting: {{ player_vote }}</p>
|
<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 %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ urlpatterns = [
|
||||||
url(r'^ready/$', views.ready, name='ready'),
|
url(r'^ready/$', views.ready, name='ready'),
|
||||||
url(r'^cancel_game/$', views.cancel_game, name='cancel_game'),
|
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'^(?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'^choose/(?P<who>[0-9])/$', views.choose, name='choose'),
|
||||||
url(r'^unchoose/(?P<who>[0-9])/$', views.unchoose, name='unchoose'),
|
url(r'^unchoose/(?P<who>[0-9])/$', views.unchoose, name='unchoose'),
|
||||||
url(r'^finalize_team/$', views.finalize_team, name='finalize_team'),
|
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\
|
if vote_round.vote_status == VoteRound.VOTE_STATUS_VOTING\
|
||||||
and vote_round.game_round.round_num == round_num\
|
and vote_round.game_round.round_num == round_num\
|
||||||
and vote_round.vote_num == vote_num:
|
and vote_round.vote_num == vote_num:
|
||||||
accept = vote == "approve"
|
if vote == "cancel":
|
||||||
vote_round.playervote_set\
|
try:
|
||||||
.update_or_create(defaults={'accept': accept},
|
vote_round.playervote_set.get(player=player).delete()
|
||||||
player=player)
|
except PlayerVote.DoesNotExist:
|
||||||
team_approved = vote_round.team_approved()
|
pass
|
||||||
if team_approved is not None:
|
else:
|
||||||
# All players voted, voting round is over.
|
accept = vote == "approve"
|
||||||
vote_round.vote_status = VoteRound.VOTE_STATUS_VOTED
|
vote_round.playervote_set\
|
||||||
vote_round.save()
|
.update_or_create(defaults={'accept': accept},
|
||||||
if team_approved:
|
player=player)
|
||||||
# Team was approved
|
team_approved = vote_round.team_approved()
|
||||||
game.game_phase = Game.GAME_PHASE_MISSION
|
if team_approved is not None:
|
||||||
else:
|
# All players voted, voting round is over.
|
||||||
# Team was rejected
|
vote_round.vote_status = VoteRound.VOTE_STATUS_VOTED
|
||||||
if vote_round.is_final_vote():
|
vote_round.save()
|
||||||
game.game_phase = Game.GAME_PHASE_END
|
if team_approved:
|
||||||
|
# Team was approved
|
||||||
|
game.game_phase = Game.GAME_PHASE_MISSION
|
||||||
else:
|
else:
|
||||||
game.game_phase = Game.GAME_PHASE_PICK
|
# Team was rejected
|
||||||
VoteRound.objects\
|
if vote_round.is_final_vote():
|
||||||
.create(game_round=vote_round.game_round,
|
game.game_phase = Game.GAME_PHASE_END
|
||||||
vote_num=vote_round.vote_num+1,
|
else:
|
||||||
leader=vote_round.next_leader())
|
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()
|
game.save()
|
||||||
|
|
||||||
return redirect('game', access_code=game.access_code,
|
return redirect('game', access_code=game.access_code,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user