diff options
author | Luke Shumaker <shumakl@purdue.edu> | 2014-04-05 21:49:01 -0400 |
---|---|---|
committer | Luke Shumaker <shumakl@purdue.edu> | 2014-04-05 21:49:01 -0400 |
commit | f25e9db11971e073d386f4d977f277939678f025 (patch) | |
tree | 68bfd5a61adff032a43ab08bba475386933bb268 | |
parent | 18d76defd43cb747824a355b2d320c5cf2c55d6a (diff) | |
parent | 94d5a5012910b531aaeb040ed01f821dde45961e (diff) |
Merge branch 'master' of github.com:LukeShu/leaguer
-rw-r--r-- | app/models/game.rb | 1 | ||||
-rw-r--r-- | app/models/tournament.rb | 5 | ||||
-rw-r--r-- | app/models/user.rb | 4 | ||||
-rw-r--r-- | app/views/matches/index.html.erb | 1 | ||||
-rw-r--r-- | app/views/matches/show.html.erb | 31 | ||||
-rw-r--r-- | app/views/tournaments/_selected.html.erb | 33 | ||||
-rw-r--r-- | db/seeds.rb | 5 | ||||
-rwxr-xr-x | generate.sh | 2 |
8 files changed, 69 insertions, 13 deletions
diff --git a/app/models/game.rb b/app/models/game.rb index a181c26..ec865d8 100644 --- a/app/models/game.rb +++ b/app/models/game.rb @@ -1,2 +1,3 @@ class Game < ActiveRecord::Base + has_many :settings, class_name: "GameSetting" end diff --git a/app/models/tournament.rb b/app/models/tournament.rb index 22711b1..e408cfe 100644 --- a/app/models/tournament.rb +++ b/app/models/tournament.rb @@ -25,7 +25,7 @@ class Tournament < ActiveRecord::Base end end - def setup() + def setup num_teams = (self.players.count/self.min_players_per_team).floor num_matches = num_teams - 1 for i in 1..num_matches @@ -33,8 +33,11 @@ class Tournament < ActiveRecord::Base end match_num = 0 team_num = 0 + #for each grouping of min_players_per_team self.players.each_slice(min_players_per_team) do |players| + #create a new team in the current match self.matches[match_num].teams.push(Team.create(users: players)) + #if the match is full, move to the next match, otherwise move to the next team if (team_num != 0 and team_num % max_teams_per_match == 0) match_num += 1 team_num = 0 diff --git a/app/models/user.rb b/app/models/user.rb index d1698bd..64dd7ed 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -14,10 +14,14 @@ class User < ActiveRecord::Base end def can?(action) + return true case action when :create_tournament + return true when :edit_tournament + return true when :join_tournament + return true when :delete_tournament when :create_game diff --git a/app/views/matches/index.html.erb b/app/views/matches/index.html.erb index d4ddb0e..219507d 100644 --- a/app/views/matches/index.html.erb +++ b/app/views/matches/index.html.erb @@ -18,6 +18,7 @@ <td><%= match.id%></td> <td><%= match.name %></td> <td><%= link_to "Show", tournament_match_path(@tournament, match) %> + <td><%= submit_tag("Start Match") %> </tr> <% end %> </tbody> diff --git a/app/views/matches/show.html.erb b/app/views/matches/show.html.erb index 4973dc3..6fb4042 100644 --- a/app/views/matches/show.html.erb +++ b/app/views/matches/show.html.erb @@ -38,11 +38,40 @@ <%= team.users.collect{|u| u.user_name}.join(", ") %></label></li> <% end %> </ul> - <%= f.submit("Select winner") %> + <%= f.submit("Select Winner") %> <% end %> <% end %> +<!-- + This is what the Players and the Hosts of the tournament will view when the Match Status is 0 +--> +<% if (@match.status==0) %> + <% if (@tournament.players.include?(current_user) || @tournament.hosts.include?(current_user)) %> + <% @match.teams.each do |team| %> + <ul> + <% team.users.collect{|u| u.user_name}.each do |k| %> + <li><label><%= k %></label></li> + <% end %> + </ul> + <% end %> + <% end %> +<% end %> +<!-- + Players see the Peer Review Page + Host see the Game Status +--> +<% if (@match.status==0) %> + <% if (@tournament.players.include?(current_user) %> + <% @match.teams.each do |team| %> + <ul> + <% team.users.collect{|u| u.user_name}.each do |k| %> + <li><label><%= k %></label></li> + <% end %> + </ul> + <% end %> + <% end %> +<% end %> <% unless @match.winner.nil? %> <p> diff --git a/app/views/tournaments/_selected.html.erb b/app/views/tournaments/_selected.html.erb index 8a704b5..3661077 100644 --- a/app/views/tournaments/_selected.html.erb +++ b/app/views/tournaments/_selected.html.erb @@ -2,18 +2,37 @@ <%= render "common/error_messages", :target => @tournament %> <%= f.hidden_field(:game_id) %> - <% @chosen = Game.find_by(params[:game]) %> + <% @game = Game.find_by(params[:game]) %> <% @tournament.attributes.each do |name, value| %> <% if (name == "id") or (name =~ /.*_at$/) or (name == "game_id") or (name == "status") or (name == "set_rounds") %> <% next %> <% end %> <p> - <%= f.label name %><br> - <% if !@chosen.attributes[name].nil? %> - <%= f.text_field(name, :value => @chosen.attributes[name] ) %> - <% else %> - <%= f.text_field name %> - <% end %> + <%= f.label name %><br> + <% if !@game.attributes[name].nil? %> + <%= f.text_field(name, :value => @game.attributes[name] ) %> + <% else %> + <%= f.text_field name %> + <% end %> + </p> + <% end %> + + <% @settings = GameSetting.find_by(params[:game_id]) %> + <% unless @settings %> + <br> + <br> + <br> + <br> + <br> + <br> + <br> + <br> + <% end %> + <% @settings.each do |setting| %> + <p> + <%= f.label setting.name %><br> + <% #eventually display by non-generic input method %> + <%= f.select :setting options_from_collection_for_select([setting.description, ""].append setting.type_opt.split(',')) %> </p> <% end %> diff --git a/db/seeds.rb b/db/seeds.rb index c6fa386..986256c 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -10,9 +10,8 @@ Game.create(name: "League of Legends",min_players_per_team: 5, max_players_per_ Game.create(name: "Chess", min_players_per_team: 1, max_players_per_team: 1, min_teams_per_match: 2, max_teams_per_match: 2, set_rounds: nil, randomized_teams: true) Game.create(name: "Hearthstone", min_players_per_team: 1, max_players_per_team: 1, min_teams_per_match: 2, max_teams_per_match: 2, set_rounds: 1, randomized_teams: false) - -GameSetting.create(game_id: 0, name: "Map", default: "Summoners Rift,Twisted Treeline,Crystal Scar,Haunted Abyss", description: "Select a map to play on.", type_opt: "Select", display_order: 1) -GameSetting.create(game_id: 0, name: "Pick Type", default: "Blind Pick,Draft", description: "Select a pick type.", type_opt: "Select", display_order: 2) +Game.find_by_name("League of Legends").settings.create(name: "Map", default: "Summoners Rift", type_opt: "Summoners Rift,Twisted Treeline,Crystal Scar,Haunted Abyss", description: "Select a map to play on.", stype: 5, display_order: 1) +Game.find_by_name("League of Legends").settings.create(name: "Pick Type", type_opt: "Blind Pick,Draft", description: "Select a pick type.", stype: 5, display_order: 2) #Game_setting.create(game_id: , type: , name: , default: , description: , type_opt: , display_order: , created_at: , updated_at: ) diff --git a/generate.sh b/generate.sh index 33943ec..1e15106 100755 --- a/generate.sh +++ b/generate.sh @@ -34,7 +34,7 @@ bundle exec rails generate scaffold session user:references token:string:uniq # Just models bundle exec rails generate model server_setting $NOTEST -bundle exec rails generate model game_setting game:references type:integer name:string default:text description:text type_opt:text display_order:integer $NOTEST +bundle exec rails generate model game_setting game:references stype:integer name:string default:text description:text type_opt:text display_order:integer $NOTEST bundle exec rails generate model tournament_preference tournament:references vartype:integer name:string value:text $NOTEST bundle exec rails generate model score user:references match:references value:integer $NOTEST bundle exec rails generate model remote_username game:references user:references json_value:text |