def _register(request): """ Register a new user & player, or render the registration form """ form = RegistrationForm(request.POST) if form.is_valid(): username = form.cleaned_data['username'] user = User.objects.create_user( username=username, password=form.cleaned_data['password1'], ) # Create a new player object for user player = Player() player.user = user player.save() # render the form (on login tab) with username filled in, and display a success message loginform = LoginForm({'username': username}) return render(request, 'login_and_register.html', { 'registerform': form, 'loginform': loginform, 'tab': 'login', 'success': True }) loginform = LoginForm() return render(request, 'login_and_register.html', { 'registerform': form, 'loginform': loginform, 'tab': 'register' })
def _dashboard(request): """ Return game UI if player has existing game, otherwise create a new game then return game UI """ # Get the player for this user, if they don't have one (maybe a superuser?) create one for them try: player = Player.objects.get(pk=request.user) except Player.DoesNotExist: player = Player() player.user = request.user player.save() # Check for an existing game for the player try: gamestate = player.gamestate return _terminal(request, gamestate) except GameState.DoesNotExist: return _create_game(request, player)