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:
parent
d02ae4360a
commit
917a83c787
avalon/avalon_game
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Reference in New Issue
Block a user