From 1178dea355bf88213f5b36fae8914af6385b341a Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Thu, 6 Mar 2014 15:06:19 -0500 Subject: tournaments: fix game selection --- app/controllers/tournaments_controller.rb | 4 ++-- app/views/tournaments/new.html.erb | 17 +++++++---------- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/app/controllers/tournaments_controller.rb b/app/controllers/tournaments_controller.rb index 1d17205..915c072 100644 --- a/app/controllers/tournaments_controller.rb +++ b/app/controllers/tournaments_controller.rb @@ -15,8 +15,8 @@ class TournamentsController < ApplicationController # GET /tournaments/new def new - @game_names = Game.all.collect - @game = params[:game] + @games = Game.all + @game = Game.find_by_id(params[:game]) @tournament = Tournament.new end diff --git a/app/views/tournaments/new.html.erb b/app/views/tournaments/new.html.erb index 428487a..6c3fefc 100644 --- a/app/views/tournaments/new.html.erb +++ b/app/views/tournaments/new.html.erb @@ -1,19 +1,16 @@ -<%= javascript_include_tag :defaults %> -

New Tournament

-<%= select_tag 'tournament_id', options_for_select(["Select a Game Type"] + Game.all.collect {|game| game.name}), :onchange => 'populate()' %> <%= link_to 'Select', 'new?game=1', :class => "btn btn-warning btn-lg" %> - +<%= form_tag(new_tournament_path, method: "get") do %> + <%= select_tag('game', + options_from_collection_for_select(@games, 'id', 'name', @game.nil? || @game.id), + :prompt => "Select a Game Type") %> + <%= submit_tag("Select", :class => "btn-warning btn-lg") %> +<% end %> - -
- <% if not @game.nil? %> + <% unless @game.nil? %> <%= render 'selected' %> <% end %>
-

- -<%= link_to 'Select', 'selected', :class => "btn btn-warning btn-lg" %> <%= link_to 'Back', tournaments_path %> -- cgit v1.2.3-2-g168b From b173c81942050940c99108f1eddd1e93dc3d8134 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Thu, 6 Mar 2014 15:06:26 -0500 Subject: add a stop.sh script --- stop.sh | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 stop.sh diff --git a/stop.sh b/stop.sh new file mode 100644 index 0000000..719ed94 --- /dev/null +++ b/stop.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +kill $( Date: Thu, 6 Mar 2014 15:23:30 -0500 Subject: add a user_tournament_pair --- app/models/user_tournament_pair.rb | 4 ++++ db/migrate/20140306024707_create_servers.rb | 8 -------- db/migrate/20140306024709_create_tournaments.rb | 9 --------- db/migrate/20140306024711_create_matches.rb | 10 ---------- db/migrate/20140306024713_create_teams.rb | 8 -------- db/migrate/20140306024715_create_alerts.rb | 10 ---------- db/migrate/20140306024718_create_pms.rb | 11 ----------- db/migrate/20140306024720_create_games.rb | 13 ------------- db/migrate/20140306024722_create_users.rb | 13 ------------- db/migrate/20140306024724_create_sessions.rb | 9 --------- db/migrate/20140306024727_create_game_attributes.rb | 11 ----------- db/migrate/20140306024729_create_server_settings.rb | 8 -------- db/migrate/20140306024731_create_user_team_pairs.rb | 10 ---------- db/migrate/20140306024733_create_team_match_pairs.rb | 10 ---------- db/migrate/20140306024735_create_tournament_options.rb | 8 -------- db/migrate/20140306024744_add_hidden_attrs_to_user.rb | 8 -------- db/migrate/20140306202154_create_servers.rb | 8 ++++++++ db/migrate/20140306202156_create_tournaments.rb | 9 +++++++++ db/migrate/20140306202158_create_matches.rb | 10 ++++++++++ db/migrate/20140306202200_create_teams.rb | 8 ++++++++ db/migrate/20140306202202_create_alerts.rb | 10 ++++++++++ db/migrate/20140306202204_create_pms.rb | 11 +++++++++++ db/migrate/20140306202207_create_games.rb | 13 +++++++++++++ db/migrate/20140306202209_create_users.rb | 13 +++++++++++++ db/migrate/20140306202211_create_sessions.rb | 9 +++++++++ db/migrate/20140306202213_create_game_attributes.rb | 11 +++++++++++ db/migrate/20140306202215_create_server_settings.rb | 8 ++++++++ db/migrate/20140306202217_create_tournament_options.rb | 8 ++++++++ db/migrate/20140306202219_create_user_team_pairs.rb | 10 ++++++++++ db/migrate/20140306202222_create_user_tournament_pairs.rb | 10 ++++++++++ db/migrate/20140306202224_create_team_match_pairs.rb | 10 ++++++++++ db/migrate/20140306202232_add_hidden_attrs_to_user.rb | 8 ++++++++ db/schema.rb | 12 +++++++++++- generate.sh | 4 +++- test/fixtures/user_tournament_pairs.yml | 9 +++++++++ test/models/user_tournament_pair_test.rb | 7 +++++++ 36 files changed, 190 insertions(+), 148 deletions(-) create mode 100644 app/models/user_tournament_pair.rb delete mode 100644 db/migrate/20140306024707_create_servers.rb delete mode 100644 db/migrate/20140306024709_create_tournaments.rb delete mode 100644 db/migrate/20140306024711_create_matches.rb delete mode 100644 db/migrate/20140306024713_create_teams.rb delete mode 100644 db/migrate/20140306024715_create_alerts.rb delete mode 100644 db/migrate/20140306024718_create_pms.rb delete mode 100644 db/migrate/20140306024720_create_games.rb delete mode 100644 db/migrate/20140306024722_create_users.rb delete mode 100644 db/migrate/20140306024724_create_sessions.rb delete mode 100644 db/migrate/20140306024727_create_game_attributes.rb delete mode 100644 db/migrate/20140306024729_create_server_settings.rb delete mode 100644 db/migrate/20140306024731_create_user_team_pairs.rb delete mode 100644 db/migrate/20140306024733_create_team_match_pairs.rb delete mode 100644 db/migrate/20140306024735_create_tournament_options.rb delete mode 100644 db/migrate/20140306024744_add_hidden_attrs_to_user.rb create mode 100644 db/migrate/20140306202154_create_servers.rb create mode 100644 db/migrate/20140306202156_create_tournaments.rb create mode 100644 db/migrate/20140306202158_create_matches.rb create mode 100644 db/migrate/20140306202200_create_teams.rb create mode 100644 db/migrate/20140306202202_create_alerts.rb create mode 100644 db/migrate/20140306202204_create_pms.rb create mode 100644 db/migrate/20140306202207_create_games.rb create mode 100644 db/migrate/20140306202209_create_users.rb create mode 100644 db/migrate/20140306202211_create_sessions.rb create mode 100644 db/migrate/20140306202213_create_game_attributes.rb create mode 100644 db/migrate/20140306202215_create_server_settings.rb create mode 100644 db/migrate/20140306202217_create_tournament_options.rb create mode 100644 db/migrate/20140306202219_create_user_team_pairs.rb create mode 100644 db/migrate/20140306202222_create_user_tournament_pairs.rb create mode 100644 db/migrate/20140306202224_create_team_match_pairs.rb create mode 100644 db/migrate/20140306202232_add_hidden_attrs_to_user.rb create mode 100644 test/fixtures/user_tournament_pairs.yml create mode 100644 test/models/user_tournament_pair_test.rb diff --git a/app/models/user_tournament_pair.rb b/app/models/user_tournament_pair.rb new file mode 100644 index 0000000..b2676e5 --- /dev/null +++ b/app/models/user_tournament_pair.rb @@ -0,0 +1,4 @@ +class UserTournamentPair < ActiveRecord::Base + belongs_to :user + belongs_to :tournament +end diff --git a/db/migrate/20140306024707_create_servers.rb b/db/migrate/20140306024707_create_servers.rb deleted file mode 100644 index f33241a..0000000 --- a/db/migrate/20140306024707_create_servers.rb +++ /dev/null @@ -1,8 +0,0 @@ -class CreateServers < ActiveRecord::Migration - def change - create_table :servers do |t| - - t.timestamps - end - end -end diff --git a/db/migrate/20140306024709_create_tournaments.rb b/db/migrate/20140306024709_create_tournaments.rb deleted file mode 100644 index 36fcf7e..0000000 --- a/db/migrate/20140306024709_create_tournaments.rb +++ /dev/null @@ -1,9 +0,0 @@ -class CreateTournaments < ActiveRecord::Migration - def change - create_table :tournaments do |t| - t.references :game, index: true - - t.timestamps - end - end -end diff --git a/db/migrate/20140306024711_create_matches.rb b/db/migrate/20140306024711_create_matches.rb deleted file mode 100644 index 325863d..0000000 --- a/db/migrate/20140306024711_create_matches.rb +++ /dev/null @@ -1,10 +0,0 @@ -class CreateMatches < ActiveRecord::Migration - def change - create_table :matches do |t| - t.references :tournament, index: true - t.string :name - - t.timestamps - end - end -end diff --git a/db/migrate/20140306024713_create_teams.rb b/db/migrate/20140306024713_create_teams.rb deleted file mode 100644 index dd8397d..0000000 --- a/db/migrate/20140306024713_create_teams.rb +++ /dev/null @@ -1,8 +0,0 @@ -class CreateTeams < ActiveRecord::Migration - def change - create_table :teams do |t| - - t.timestamps - end - end -end diff --git a/db/migrate/20140306024715_create_alerts.rb b/db/migrate/20140306024715_create_alerts.rb deleted file mode 100644 index 68a8e10..0000000 --- a/db/migrate/20140306024715_create_alerts.rb +++ /dev/null @@ -1,10 +0,0 @@ -class CreateAlerts < ActiveRecord::Migration - def change - create_table :alerts do |t| - t.references :author, index: true - t.text :message - - t.timestamps - end - end -end diff --git a/db/migrate/20140306024718_create_pms.rb b/db/migrate/20140306024718_create_pms.rb deleted file mode 100644 index 93bb5c6..0000000 --- a/db/migrate/20140306024718_create_pms.rb +++ /dev/null @@ -1,11 +0,0 @@ -class CreatePms < ActiveRecord::Migration - def change - create_table :pms do |t| - t.references :author, index: true - t.references :recipient, index: true - t.text :message - - t.timestamps - end - end -end diff --git a/db/migrate/20140306024720_create_games.rb b/db/migrate/20140306024720_create_games.rb deleted file mode 100644 index 59d4ef0..0000000 --- a/db/migrate/20140306024720_create_games.rb +++ /dev/null @@ -1,13 +0,0 @@ -class CreateGames < ActiveRecord::Migration - def change - create_table :games do |t| - t.text :name - t.integer :players_per_team - t.integer :teams_per_match - t.integer :set_rounds - t.integer :randomized_teams - - t.timestamps - end - end -end diff --git a/db/migrate/20140306024722_create_users.rb b/db/migrate/20140306024722_create_users.rb deleted file mode 100644 index 8032870..0000000 --- a/db/migrate/20140306024722_create_users.rb +++ /dev/null @@ -1,13 +0,0 @@ -class CreateUsers < ActiveRecord::Migration - def change - create_table :users do |t| - t.string :name - t.string :email - t.string :user_name - - t.timestamps - end - add_index :users, :email, unique: true - add_index :users, :user_name, unique: true - end -end diff --git a/db/migrate/20140306024724_create_sessions.rb b/db/migrate/20140306024724_create_sessions.rb deleted file mode 100644 index fe25bf2..0000000 --- a/db/migrate/20140306024724_create_sessions.rb +++ /dev/null @@ -1,9 +0,0 @@ -class CreateSessions < ActiveRecord::Migration - def change - create_table :sessions do |t| - t.references :user, index: true - - t.timestamps - end - end -end diff --git a/db/migrate/20140306024727_create_game_attributes.rb b/db/migrate/20140306024727_create_game_attributes.rb deleted file mode 100644 index b63f134..0000000 --- a/db/migrate/20140306024727_create_game_attributes.rb +++ /dev/null @@ -1,11 +0,0 @@ -class CreateGameAttributes < ActiveRecord::Migration - def change - create_table :game_attributes do |t| - t.references :game, index: true - t.text :key - t.integer :type - - t.timestamps - end - end -end diff --git a/db/migrate/20140306024729_create_server_settings.rb b/db/migrate/20140306024729_create_server_settings.rb deleted file mode 100644 index dfdd91b..0000000 --- a/db/migrate/20140306024729_create_server_settings.rb +++ /dev/null @@ -1,8 +0,0 @@ -class CreateServerSettings < ActiveRecord::Migration - def change - create_table :server_settings do |t| - - t.timestamps - end - end -end diff --git a/db/migrate/20140306024731_create_user_team_pairs.rb b/db/migrate/20140306024731_create_user_team_pairs.rb deleted file mode 100644 index 2c492ac..0000000 --- a/db/migrate/20140306024731_create_user_team_pairs.rb +++ /dev/null @@ -1,10 +0,0 @@ -class CreateUserTeamPairs < ActiveRecord::Migration - def change - create_table :user_team_pairs do |t| - t.references :user, index: true - t.references :team, index: true - - t.timestamps - end - end -end diff --git a/db/migrate/20140306024733_create_team_match_pairs.rb b/db/migrate/20140306024733_create_team_match_pairs.rb deleted file mode 100644 index 8fac07e..0000000 --- a/db/migrate/20140306024733_create_team_match_pairs.rb +++ /dev/null @@ -1,10 +0,0 @@ -class CreateTeamMatchPairs < ActiveRecord::Migration - def change - create_table :team_match_pairs do |t| - t.references :team, index: true - t.references :match, index: true - - t.timestamps - end - end -end diff --git a/db/migrate/20140306024735_create_tournament_options.rb b/db/migrate/20140306024735_create_tournament_options.rb deleted file mode 100644 index d2df22e..0000000 --- a/db/migrate/20140306024735_create_tournament_options.rb +++ /dev/null @@ -1,8 +0,0 @@ -class CreateTournamentOptions < ActiveRecord::Migration - def change - create_table :tournament_options do |t| - - t.timestamps - end - end -end diff --git a/db/migrate/20140306024744_add_hidden_attrs_to_user.rb b/db/migrate/20140306024744_add_hidden_attrs_to_user.rb deleted file mode 100644 index 2f1b0b2..0000000 --- a/db/migrate/20140306024744_add_hidden_attrs_to_user.rb +++ /dev/null @@ -1,8 +0,0 @@ -class AddHiddenAttrsToUser < ActiveRecord::Migration - def change - add_column :users, :password_digest, :string - add_column :users, :remember_token, :string - add_index :users, :remember_token, unique: true - add_column :users, :groups, :integer - end -end diff --git a/db/migrate/20140306202154_create_servers.rb b/db/migrate/20140306202154_create_servers.rb new file mode 100644 index 0000000..f33241a --- /dev/null +++ b/db/migrate/20140306202154_create_servers.rb @@ -0,0 +1,8 @@ +class CreateServers < ActiveRecord::Migration + def change + create_table :servers do |t| + + t.timestamps + end + end +end diff --git a/db/migrate/20140306202156_create_tournaments.rb b/db/migrate/20140306202156_create_tournaments.rb new file mode 100644 index 0000000..36fcf7e --- /dev/null +++ b/db/migrate/20140306202156_create_tournaments.rb @@ -0,0 +1,9 @@ +class CreateTournaments < ActiveRecord::Migration + def change + create_table :tournaments do |t| + t.references :game, index: true + + t.timestamps + end + end +end diff --git a/db/migrate/20140306202158_create_matches.rb b/db/migrate/20140306202158_create_matches.rb new file mode 100644 index 0000000..325863d --- /dev/null +++ b/db/migrate/20140306202158_create_matches.rb @@ -0,0 +1,10 @@ +class CreateMatches < ActiveRecord::Migration + def change + create_table :matches do |t| + t.references :tournament, index: true + t.string :name + + t.timestamps + end + end +end diff --git a/db/migrate/20140306202200_create_teams.rb b/db/migrate/20140306202200_create_teams.rb new file mode 100644 index 0000000..dd8397d --- /dev/null +++ b/db/migrate/20140306202200_create_teams.rb @@ -0,0 +1,8 @@ +class CreateTeams < ActiveRecord::Migration + def change + create_table :teams do |t| + + t.timestamps + end + end +end diff --git a/db/migrate/20140306202202_create_alerts.rb b/db/migrate/20140306202202_create_alerts.rb new file mode 100644 index 0000000..68a8e10 --- /dev/null +++ b/db/migrate/20140306202202_create_alerts.rb @@ -0,0 +1,10 @@ +class CreateAlerts < ActiveRecord::Migration + def change + create_table :alerts do |t| + t.references :author, index: true + t.text :message + + t.timestamps + end + end +end diff --git a/db/migrate/20140306202204_create_pms.rb b/db/migrate/20140306202204_create_pms.rb new file mode 100644 index 0000000..93bb5c6 --- /dev/null +++ b/db/migrate/20140306202204_create_pms.rb @@ -0,0 +1,11 @@ +class CreatePms < ActiveRecord::Migration + def change + create_table :pms do |t| + t.references :author, index: true + t.references :recipient, index: true + t.text :message + + t.timestamps + end + end +end diff --git a/db/migrate/20140306202207_create_games.rb b/db/migrate/20140306202207_create_games.rb new file mode 100644 index 0000000..59d4ef0 --- /dev/null +++ b/db/migrate/20140306202207_create_games.rb @@ -0,0 +1,13 @@ +class CreateGames < ActiveRecord::Migration + def change + create_table :games do |t| + t.text :name + t.integer :players_per_team + t.integer :teams_per_match + t.integer :set_rounds + t.integer :randomized_teams + + t.timestamps + end + end +end diff --git a/db/migrate/20140306202209_create_users.rb b/db/migrate/20140306202209_create_users.rb new file mode 100644 index 0000000..8032870 --- /dev/null +++ b/db/migrate/20140306202209_create_users.rb @@ -0,0 +1,13 @@ +class CreateUsers < ActiveRecord::Migration + def change + create_table :users do |t| + t.string :name + t.string :email + t.string :user_name + + t.timestamps + end + add_index :users, :email, unique: true + add_index :users, :user_name, unique: true + end +end diff --git a/db/migrate/20140306202211_create_sessions.rb b/db/migrate/20140306202211_create_sessions.rb new file mode 100644 index 0000000..fe25bf2 --- /dev/null +++ b/db/migrate/20140306202211_create_sessions.rb @@ -0,0 +1,9 @@ +class CreateSessions < ActiveRecord::Migration + def change + create_table :sessions do |t| + t.references :user, index: true + + t.timestamps + end + end +end diff --git a/db/migrate/20140306202213_create_game_attributes.rb b/db/migrate/20140306202213_create_game_attributes.rb new file mode 100644 index 0000000..b63f134 --- /dev/null +++ b/db/migrate/20140306202213_create_game_attributes.rb @@ -0,0 +1,11 @@ +class CreateGameAttributes < ActiveRecord::Migration + def change + create_table :game_attributes do |t| + t.references :game, index: true + t.text :key + t.integer :type + + t.timestamps + end + end +end diff --git a/db/migrate/20140306202215_create_server_settings.rb b/db/migrate/20140306202215_create_server_settings.rb new file mode 100644 index 0000000..dfdd91b --- /dev/null +++ b/db/migrate/20140306202215_create_server_settings.rb @@ -0,0 +1,8 @@ +class CreateServerSettings < ActiveRecord::Migration + def change + create_table :server_settings do |t| + + t.timestamps + end + end +end diff --git a/db/migrate/20140306202217_create_tournament_options.rb b/db/migrate/20140306202217_create_tournament_options.rb new file mode 100644 index 0000000..d2df22e --- /dev/null +++ b/db/migrate/20140306202217_create_tournament_options.rb @@ -0,0 +1,8 @@ +class CreateTournamentOptions < ActiveRecord::Migration + def change + create_table :tournament_options do |t| + + t.timestamps + end + end +end diff --git a/db/migrate/20140306202219_create_user_team_pairs.rb b/db/migrate/20140306202219_create_user_team_pairs.rb new file mode 100644 index 0000000..2c492ac --- /dev/null +++ b/db/migrate/20140306202219_create_user_team_pairs.rb @@ -0,0 +1,10 @@ +class CreateUserTeamPairs < ActiveRecord::Migration + def change + create_table :user_team_pairs do |t| + t.references :user, index: true + t.references :team, index: true + + t.timestamps + end + end +end diff --git a/db/migrate/20140306202222_create_user_tournament_pairs.rb b/db/migrate/20140306202222_create_user_tournament_pairs.rb new file mode 100644 index 0000000..9885b20 --- /dev/null +++ b/db/migrate/20140306202222_create_user_tournament_pairs.rb @@ -0,0 +1,10 @@ +class CreateUserTournamentPairs < ActiveRecord::Migration + def change + create_table :user_tournament_pairs do |t| + t.references :user, index: true + t.references :tournament, index: true + + t.timestamps + end + end +end diff --git a/db/migrate/20140306202224_create_team_match_pairs.rb b/db/migrate/20140306202224_create_team_match_pairs.rb new file mode 100644 index 0000000..8fac07e --- /dev/null +++ b/db/migrate/20140306202224_create_team_match_pairs.rb @@ -0,0 +1,10 @@ +class CreateTeamMatchPairs < ActiveRecord::Migration + def change + create_table :team_match_pairs do |t| + t.references :team, index: true + t.references :match, index: true + + t.timestamps + end + end +end diff --git a/db/migrate/20140306202232_add_hidden_attrs_to_user.rb b/db/migrate/20140306202232_add_hidden_attrs_to_user.rb new file mode 100644 index 0000000..2f1b0b2 --- /dev/null +++ b/db/migrate/20140306202232_add_hidden_attrs_to_user.rb @@ -0,0 +1,8 @@ +class AddHiddenAttrsToUser < ActiveRecord::Migration + def change + add_column :users, :password_digest, :string + add_column :users, :remember_token, :string + add_index :users, :remember_token, unique: true + add_column :users, :groups, :integer + end +end diff --git a/db/schema.rb b/db/schema.rb index b0d0766..3a0ce17 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20140306024744) do +ActiveRecord::Schema.define(version: 20140306202232) do create_table "alerts", force: true do |t| t.integer "author_id" @@ -118,6 +118,16 @@ ActiveRecord::Schema.define(version: 20140306024744) do add_index "user_team_pairs", ["team_id"], name: "index_user_team_pairs_on_team_id" add_index "user_team_pairs", ["user_id"], name: "index_user_team_pairs_on_user_id" + create_table "user_tournament_pairs", force: true do |t| + t.integer "user_id" + t.integer "tournament_id" + t.datetime "created_at" + t.datetime "updated_at" + end + + add_index "user_tournament_pairs", ["tournament_id"], name: "index_user_tournament_pairs_on_tournament_id" + add_index "user_tournament_pairs", ["user_id"], name: "index_user_tournament_pairs_on_user_id" + create_table "users", force: true do |t| t.string "name" t.string "email" diff --git a/generate.sh b/generate.sh index fcd962f..aca13bb 100755 --- a/generate.sh +++ b/generate.sh @@ -30,9 +30,11 @@ bundle exec rails generate scaffold session user:references # Just models bundle exec rails generate model game_attribute game:references key:text type:integer $NOTEST bundle exec rails generate model server_settings $NOTEST +bundle exec rails generate model tournament_option $NOTEST + bundle exec rails generate model user_team_pair user:references team:references $NOTEST +bundle exec rails generate model user_tournament_pair user:references tournament:references bundle exec rails generate model team_match_pair team:references match:references $NOTEST -bundle exec rails generate model tournament_option $NOTEST # Just controllers bundle exec rails generate controller search $NOTEST diff --git a/test/fixtures/user_tournament_pairs.yml b/test/fixtures/user_tournament_pairs.yml new file mode 100644 index 0000000..974ee71 --- /dev/null +++ b/test/fixtures/user_tournament_pairs.yml @@ -0,0 +1,9 @@ +# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html + +one: + user_id: + tournament_id: + +two: + user_id: + tournament_id: diff --git a/test/models/user_tournament_pair_test.rb b/test/models/user_tournament_pair_test.rb new file mode 100644 index 0000000..6167ff6 --- /dev/null +++ b/test/models/user_tournament_pair_test.rb @@ -0,0 +1,7 @@ +require 'test_helper' + +class UserTournamentPairTest < ActiveSupport::TestCase + # test "the truth" do + # assert true + # end +end -- cgit v1.2.3-2-g168b From 1788dde36e53c4ef16adc5db2d19f44797325496 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Thu, 6 Mar 2014 18:55:38 -0500 Subject: implement tournament joining --- app/controllers/tournaments_controller.rb | 15 ++++++++++++++- app/models/tournament.rb | 19 +++++++++++++++++- app/models/user.rb | 1 + app/views/tournaments/_selected.html.erb | 32 ++++++++----------------------- app/views/tournaments/new.html.erb | 4 ++-- app/views/tournaments/show.html.erb | 6 ++++++ config/routes.rb | 8 +++++--- 7 files changed, 54 insertions(+), 31 deletions(-) diff --git a/app/controllers/tournaments_controller.rb b/app/controllers/tournaments_controller.rb index 915c072..5e79d7a 100644 --- a/app/controllers/tournaments_controller.rb +++ b/app/controllers/tournaments_controller.rb @@ -1,5 +1,5 @@ class TournamentsController < ApplicationController - before_action :set_tournament, only: [:show, :edit, :update, :destroy] + before_action :set_tournament, only: [:show, :edit, :update, :destroy, :join] before_action :check_perms, only: [:new, :create, :edit, :update, :destroy] # GET /tournaments @@ -64,6 +64,19 @@ class TournamentsController < ApplicationController end end + # POST /tournaments/1/join + # POST /tournaments/1/join.json + def join + respond_to do |format| + if @tournament.join(current_user) + format.html { redirect_to @tournament, notice: 'You have joined this tournament.' } + format.json { head :no_content } + end + format.html { render action: 'permission_denied', status: :forbidden } + format.json { render json: "Permission denied", status: :forbidden } + end + end + private # Use callbacks to share common setup or constraints between actions. def set_tournament diff --git a/app/models/tournament.rb b/app/models/tournament.rb index cc915a0..afdd27e 100644 --- a/app/models/tournament.rb +++ b/app/models/tournament.rb @@ -1,3 +1,20 @@ class Tournament < ActiveRecord::Base - belongs_to :game + belongs_to :game + has_many :users, :through => :user_tournament_pair + + def open? + return true + end + + def joinable_by?(user) + return ((not user.nil?) and user.in_group?(:player) and open?) + end + + def join(user) + unless joinable?(user) + return false + end + pair = new_user_tournament_pair(user: user) + return pair.save + end end diff --git a/app/models/user.rb b/app/models/user.rb index 079b870..976ecf4 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -1,4 +1,5 @@ class User < ActiveRecord::Base + has_many :tournaments, :through => :user_tournament_pair before_save { self.email = email.downcase } before_save { self.user_name = user_name } diff --git a/app/views/tournaments/_selected.html.erb b/app/views/tournaments/_selected.html.erb index 4277d8e..551dc40 100644 --- a/app/views/tournaments/_selected.html.erb +++ b/app/views/tournaments/_selected.html.erb @@ -1,31 +1,15 @@ <%= form_for(@tournament) do |f| %> - <% if @tournament.errors.any? %> -
-

<%= pluralize(@tournament.errors.count, "error") %> prohibited this tournament from being saved:

+ <%= render "common/error_messages", :target => @tournament %> + <%= f.hidden_field(:game_id) %> -
    - <% @tournament.errors.full_messages.each do |msg| %> -
  • <%= msg %>
  • - <% end %> -
-
- <% end %> - - <%# this is the dynamic script to output fields to the form %> - <% @chosen = Game.find(@game) %> - <% @chosen.attributes.each do |name, value| %> - <% if name == "id" %> + <% @tournament.attributes.each do |name, value| %> + <% if (name == "id") or (name =~ /.*_at$/) %> <% next %> <% end %> - <% if name == "created_at" %> - <% break %> - <% end %> -

- -
- value=<%= value %>> -

+

+ <%= f.label name %>
+ <%= f.text_field name %> +

<% end %> - <%= f.submit %> <% end %> diff --git a/app/views/tournaments/new.html.erb b/app/views/tournaments/new.html.erb index 6c3fefc..e007e31 100644 --- a/app/views/tournaments/new.html.erb +++ b/app/views/tournaments/new.html.erb @@ -2,13 +2,13 @@ <%= form_tag(new_tournament_path, method: "get") do %> <%= select_tag('game', - options_from_collection_for_select(@games, 'id', 'name', @game.nil? || @game.id), + options_from_collection_for_select(@games, 'id', 'name', @tournament.game.nil? || @tournament.game.id), :prompt => "Select a Game Type") %> <%= submit_tag("Select", :class => "btn-warning btn-lg") %> <% end %>
- <% unless @game.nil? %> + <% unless @tournament.game.nil? %> <%= render 'selected' %> <% end %>
diff --git a/app/views/tournaments/show.html.erb b/app/views/tournaments/show.html.erb index 0d9dd10..1470d80 100644 --- a/app/views/tournaments/show.html.erb +++ b/app/views/tournaments/show.html.erb @@ -1,3 +1,9 @@ +<% if @tournament.joinable_by?(current_user) %> + <%= form_tag(tournament_page(@tournament)+"/join", method: "get") do %> + <%= submit_tag("Join") %> + <% end %> +<% end %> +

Game: <%= @tournament.game %> diff --git a/config/routes.rb b/config/routes.rb index 2409eb2..fc9d45a 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -15,9 +15,11 @@ Leaguer::Application.routes.draw do resources :matches - resources :tournaments - - #set 'selected' to: 'tournaments#selected' via: 'get' + resources :tournaments do + collection do + post 'join' + end + end resources :servers -- cgit v1.2.3-2-g168b From eebd00ba4692a6a285c9807705331ab924ce225f Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Thu, 6 Mar 2014 18:55:51 -0500 Subject: routes: make server a single resource --- config/routes.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/routes.rb b/config/routes.rb index fc9d45a..580ec72 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -21,7 +21,7 @@ Leaguer::Application.routes.draw do end end - resources :servers + resource :server, only: [:show, :edit, :update] root to: 'static#homepage' -- cgit v1.2.3-2-g168b From 7bcd854443e368806cf1f4ece562c157db723d1a Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Thu, 6 Mar 2014 20:37:53 -0500 Subject: fix joining a tournament --- app/controllers/tournaments_controller.rb | 53 +++++++++++++++++++------------ app/models/tournament.rb | 7 ++-- app/models/user.rb | 3 +- app/views/tournaments/show.html.erb | 3 +- config/routes.rb | 6 +--- 5 files changed, 42 insertions(+), 30 deletions(-) diff --git a/app/controllers/tournaments_controller.rb b/app/controllers/tournaments_controller.rb index 8ed8cc9..6fc3ad6 100644 --- a/app/controllers/tournaments_controller.rb +++ b/app/controllers/tournaments_controller.rb @@ -1,6 +1,6 @@ class TournamentsController < ApplicationController before_action :set_tournament, only: [:show, :edit, :update, :destroy, :join] - before_action :check_perms, only: [:new, :create, :edit, :update, :destroy] + before_action :check_perms, only: [:new, :create, :edit, :destroy] # GET /tournaments # GET /tournaments.json @@ -42,13 +42,39 @@ class TournamentsController < ApplicationController # PATCH/PUT /tournaments/1 # PATCH/PUT /tournaments/1.json def update - respond_to do |format| - if @tournament.update(tournament_params) - format.html { redirect_to @tournament, notice: 'Tournament was successfully updated.' } - format.json { head :no_content } + require 'pp' + pp params + if params[:update_action].nil? + check_perms + respond_to do |format| + if @tournament.update(tournament_params) + format.html { redirect_to @tournament, notice: 'Tournament was successfully updated.' } + format.json { head :no_content } + else + format.html { render action: 'edit' } + format.json { render json: @tournament.errors, status: :unprocessable_entity } + end + end + else + case params[:update_action] + when "join" + respond_to do |format| + if @tournament.join(current_user) + format.html { render action: 'show', notice: 'You have joined this tournament.' } + format.json { head :no_content } + end + format.html { render action: 'permission_denied', status: :forbidden } + format.json { render json: "Permission denied", status: :forbidden } + end + #when "open" + # TODO + #when "close" + # TODO else - format.html { render action: 'edit' } - format.json { render json: @tournament.errors, status: :unprocessable_entity } + respond_to do |format| + format.html { render action: 'show', notice: "Invalid action", status: :unprocessable_entity } + format.json { render json: @tournament.errors, status: :unprocessable_entity } + end end end end @@ -63,19 +89,6 @@ class TournamentsController < ApplicationController end end - # POST /tournaments/1/join - # POST /tournaments/1/join.json - def join - respond_to do |format| - if @tournament.join(current_user) - format.html { redirect_to @tournament, notice: 'You have joined this tournament.' } - format.json { head :no_content } - end - format.html { render action: 'permission_denied', status: :forbidden } - format.json { render json: "Permission denied", status: :forbidden } - end - end - private # Use callbacks to share common setup or constraints between actions. def set_tournament diff --git a/app/models/tournament.rb b/app/models/tournament.rb index ca7fade..26dec72 100644 --- a/app/models/tournament.rb +++ b/app/models/tournament.rb @@ -1,7 +1,8 @@ class Tournament < ActiveRecord::Base belongs_to :game has_many :matches - has_many :users, :through => :user_tournament_pair + has_many :user_tournament_pairs + has_many :users, :through => :user_tournament_pairs def open? return true @@ -12,10 +13,10 @@ class Tournament < ActiveRecord::Base end def join(user) - unless joinable?(user) + unless joinable_by?(user) return false end - pair = new_user_tournament_pair(user: user) + pair = UserTournamentPair.new(tournament: self, user: user) return pair.save end end diff --git a/app/models/user.rb b/app/models/user.rb index 6405c8e..bad7f7b 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -1,5 +1,6 @@ class User < ActiveRecord::Base - has_many :tournaments, :through => :user_tournament_pair + has_many :user_tournament_pairs + has_many :tournaments, :through => :user_tournament_pairs before_save { self.email = email.downcase } before_save { self.user_name = user_name } diff --git a/app/views/tournaments/show.html.erb b/app/views/tournaments/show.html.erb index 85ed026..91c1961 100644 --- a/app/views/tournaments/show.html.erb +++ b/app/views/tournaments/show.html.erb @@ -1,5 +1,6 @@ <% if @tournament.joinable_by?(current_user) %> - <%= form_tag(tournament_page(@tournament)+"/join", method: "get") do %> + <%= form_tag(tournament_path(@tournament), method: "put") do %> + <%= submit_tag("Join") %> <% end %> <% end %> diff --git a/config/routes.rb b/config/routes.rb index 4563a9a..6e11f31 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -9,11 +9,7 @@ Leaguer::Application.routes.draw do resources :matches - resources :tournaments do - collection do - post 'join' - end - end + resources :tournaments resource :server, only: [:show, :edit, :update] -- cgit v1.2.3-2-g168b