summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/models/game.rb1
-rw-r--r--app/models/tournament.rb5
-rw-r--r--app/models/user.rb1
-rw-r--r--app/views/tournaments/_selected.html.erb33
-rw-r--r--db/seeds.rb5
-rwxr-xr-xgenerate.sh2
6 files changed, 35 insertions, 12 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 56c78b4..64dd7ed 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -14,6 +14,7 @@ class User < ActiveRecord::Base
end
def can?(action)
+ return true
case action
when :create_tournament
return true
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