Updated New Game and Join Game pages/forms so observe button requires name to be blank and joining as a player requires name to be non-blank.

This commit is contained in:
Daniel Perelman 2017-05-07 14:35:08 -07:00
parent d02ae4360a
commit 917a83c787
2 changed files with 23 additions and 3 deletions
avalon/avalon_game

View File

@ -3,12 +3,23 @@ from django import forms
from .models import Game, Player
class NewGameForm(forms.Form):
name = forms.CharField(label='Name', max_length=80)
name = forms.CharField(label='Name', max_length=80, required=False)
def clean(self):
cleaned_data = super(NewGameForm, self).clean()
name = cleaned_data.get("name")
observer = 'observe' in self.data
if observer and (name is None or len(name) > 0):
self.add_error('name', "Only fill in 'Name' field if you will be playing (not observing) using this device.")
elif not observer and len(name) == 0:
self.add_error('name', "Player name must be non-empty (did you mean to click 'Create as observer'?).")
class JoinGameForm(forms.Form):
game = forms.CharField(label='Access code',
max_length=Game.ACCESS_CODE_LENGTH)
player = forms.CharField(label='Name', max_length=80)
player = forms.CharField(label='Name', max_length=80, required=False)
def clean_game(self):
data = self.cleaned_data['game']
@ -26,6 +37,12 @@ class JoinGameForm(forms.Form):
observer = 'observe' in self.data
cleaned_data["observer"] = observer
if observer and (name is None or len(name) > 0):
self.add_error('player', "Leave 'Name' field blank if observing or use 'Join' button to join as a player.")
elif not observer and len(name) == 0:
self.add_error('player', "Player name must be non-empty (did you mean to click 'Observe'?).")
return
if game is None or name is None or observer:
cleaned_data["player"] = None
return

View File

@ -9,7 +9,10 @@
{{ form.as_table }}
</table>
<div class="button-container">
<input type="submit" class="button button-create" value="Create"></input>
<input type="submit" class="button button-create" value="Create as player"></input>
<input type="submit" class="button button-observe" name="observe" value="Create as observer"></input>
</div>
<div class="button-container">
<a href="{% url 'index' %}" class="button button-main-menu">Back</a>
</div>
</form>