summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorguntasgrewal <guntasgrewal@gmail.com>2014-04-27 20:47:42 -0400
committerguntasgrewal <guntasgrewal@gmail.com>2014-04-27 20:47:42 -0400
commit4d47e5e7b5d838173dd3ab68c293c03e03811392 (patch)
tree594659a4fbc6cbc1afd188f94f8196e203cabe31 /app
parentdf1cda1faab97f4c424efdcf8b6822f98b73adb8 (diff)
parent9d0be853cef35412c0bfe92c80502fd9da7947f1 (diff)
Merge branch 'master' of https://github.com/LukeShu/leaguer
Diffstat (limited to 'app')
-rw-r--r--app/assets/images/chess.png (renamed from app/assets/images/chess_icon.png)bin893 -> 893 bytes
-rw-r--r--app/assets/images/league_icon.gifbin8207 -> 0 bytes
-rw-r--r--app/assets/images/league_of_legends.pngbin0 -> 10078 bytes
-rw-r--r--app/controllers/matches_controller.rb2
-rw-r--r--app/controllers/tournaments_controller.rb17
-rw-r--r--app/models/game.rb4
-rw-r--r--app/models/game_setting.rb13
-rw-r--r--app/models/tournament.rb24
-rw-r--r--app/models/tournament_setting.rb4
-rw-r--r--app/views/common/_show_tournament.html.erb4
-rw-r--r--app/views/tournaments/_form.html.erb25
-rw-r--r--app/views/users/show.html.erb2
12 files changed, 64 insertions, 31 deletions
diff --git a/app/assets/images/chess_icon.png b/app/assets/images/chess.png
index 6bcffe6..6bcffe6 100644
--- a/app/assets/images/chess_icon.png
+++ b/app/assets/images/chess.png
Binary files differ
diff --git a/app/assets/images/league_icon.gif b/app/assets/images/league_icon.gif
deleted file mode 100644
index 1f0fa43..0000000
--- a/app/assets/images/league_icon.gif
+++ /dev/null
Binary files differ
diff --git a/app/assets/images/league_of_legends.png b/app/assets/images/league_of_legends.png
new file mode 100644
index 0000000..9a78047
--- /dev/null
+++ b/app/assets/images/league_of_legends.png
Binary files differ
diff --git a/app/controllers/matches_controller.rb b/app/controllers/matches_controller.rb
index 4a20df2..8b8e86d 100644
--- a/app/controllers/matches_controller.rb
+++ b/app/controllers/matches_controller.rb
@@ -286,7 +286,7 @@ class MatchesController < ApplicationController
params.require(:match).permit(:status, :tournament_stage_id, :winner_id, :remote_id, :submitted_peer_evaluations, :update_action)
end
- # Turn of check_edit, since our #update is flexible
+ # Turn of check_edit, since our #update is flexible
def check_edit
set_match
end
diff --git a/app/controllers/tournaments_controller.rb b/app/controllers/tournaments_controller.rb
index 9c8ad7a..2e854a2 100644
--- a/app/controllers/tournaments_controller.rb
+++ b/app/controllers/tournaments_controller.rb
@@ -31,6 +31,17 @@ class TournamentsController < ApplicationController
# GET /tournaments/new
def new
@tournament = Tournament.new(tournament_attribute_params)
+ if @tournament.game
+ @tournament.game.settings.each do |game_setting|
+ @tournament.tournament_settings.build(
+ name: game_setting.name,
+ value: game_setting.value,
+ vartype: game_setting.vartype,
+ type_opt: game_setting.type_opt,
+ description: game_setting.description,
+ display_order: game_setting.display_order)
+ end
+ end
end
# GET /tournaments/1/edit
@@ -46,17 +57,17 @@ class TournamentsController < ApplicationController
ok = true
begin
ActiveRecord::Base.transaction do
- ok &= @tournament.save
ok &= @tournament.update(tournament_setting_params)
ok &= @tournament.hosts.push(current_user)
for i in 1..(params[:num_stages].to_i) do
begin
- ok &= @tournament.stages.create(tournament_stage_params(i))
+ ok &= @tournament.stages.build(tournament_stage_params(i))
rescue ActionController::ParameterMissing => e
ok = false
- @tournament.errors.add("stages[#{i}]", "Stage #{i} not set")
+ @tournament.errors.add("stages[#{i}]", "needs to be set")
end
end
+ ok &= @tournament.save
end
rescue ActiveRecord::RecordNotUnique => e
ok = false
diff --git a/app/models/game.rb b/app/models/game.rb
index 5f4c46d..c5cb32a 100644
--- a/app/models/game.rb
+++ b/app/models/game.rb
@@ -1,5 +1,7 @@
class Game < ActiveRecord::Base
belongs_to :parent, class_name: "Game"
has_many :children, class_name: "Game"
- has_many :settings, class_name: "GameSetting"
+ has_many :game_settings
+
+ alias_attribute :settings, :game_settings
end
diff --git a/app/models/game_setting.rb b/app/models/game_setting.rb
index bff8d97..e701cae 100644
--- a/app/models/game_setting.rb
+++ b/app/models/game_setting.rb
@@ -1,3 +1,16 @@
class GameSetting < ActiveRecord::Base
belongs_to :game
+
+ alias_attribute :value, :default
+
+ def self.types
+ return {
+ :text_short => 0,
+ :text_long => 1,
+ :pick_one_radio => 2,
+ :pick_several => 3,
+ :true_false => 4,
+ :pick_one_dropdown => 5,
+ }
+ end
end
diff --git a/app/models/tournament.rb b/app/models/tournament.rb
index 97eee57..a569213 100644
--- a/app/models/tournament.rb
+++ b/app/models/tournament.rb
@@ -1,11 +1,13 @@
class Tournament < ActiveRecord::Base
belongs_to :game
- has_many :stages, class_name: "TournamentStage"
+ has_many :tournament_stages
has_many :brackets
- has_many :settings_raw, class_name: "TournamentSetting"
+ has_many :tournament_settings
has_and_belongs_to_many :players, class_name: "User", association_foreign_key: "player_id", join_table: "players_tournaments"
has_and_belongs_to_many :hosts, class_name: "User", association_foreign_key: "host_id", join_table: "hosts_tournaments"
+ alias_attribute :stages, :tournament_stages
+
# Settings #################################################################
def settings
@@ -25,7 +27,7 @@ class Tournament < ActiveRecord::Base
end
def [](setting_name)
- tournament_setting = @tournament.settings_raw.find_by_name(setting_name)
+ tournament_setting = @tournament.tournament_settings.find{|s|s.name==setting_name}
if tournament_setting.nil?
return nil
else
@@ -34,13 +36,13 @@ class Tournament < ActiveRecord::Base
end
def []=(setting_name, val)
- tournament_setting = @tournament.settings_raw.find_by_name(setting_name)
+ tournament_setting = @tournament.tournament_settings.find{|s|s.name==setting_name}
if tournament_setting.nil?
game_setting = @tournament.game.settings.find_by_name(setting_name)
- @tournament.settings_raw.create(name: setting, value: val,
- vartype: game_setting.vartype,
- type_opt: game_setting.type_opt,
- description: game_setting.description,
+ @tournament.tournament_settings.build(name: setting_name, value: val,
+ vartype: game_setting.vartype,
+ type_opt: game_setting.type_opt,
+ description: game_setting.description,
display_order: game_setting.display_order)
else
tournament_setting.value = val
@@ -48,7 +50,7 @@ class Tournament < ActiveRecord::Base
end
def keys
- @tournament.settings_raw.all.collect { |x| x.name }
+ @tournament.tournament_settings.all.collect { |x| x.name }
end
def empty?() keys.empty? end
@@ -58,9 +60,9 @@ class Tournament < ActiveRecord::Base
def method_missing(name, *args)
if name.to_s.ends_with?('=')
- self[name.to_s.sub(/=$/, '').to_sym] = args.first
+ self[name.to_s.sub(/=$/, '').to_s] = args.first
else
- return self[name.to_sym]
+ return self[name.to_s]
end
end
end
diff --git a/app/models/tournament_setting.rb b/app/models/tournament_setting.rb
index b3e6ace..9efaaea 100644
--- a/app/models/tournament_setting.rb
+++ b/app/models/tournament_setting.rb
@@ -1,3 +1,7 @@
class TournamentSetting < ActiveRecord::Base
belongs_to :tournament
+
+ def self.types
+ GameSetting.types
+ end
end
diff --git a/app/views/common/_show_tournament.html.erb b/app/views/common/_show_tournament.html.erb
index a9569b6..280d59d 100644
--- a/app/views/common/_show_tournament.html.erb
+++ b/app/views/common/_show_tournament.html.erb
@@ -1,5 +1,6 @@
<div class="row tournament-listing">
- <div class="col-md-2 col-sm-3 col-xs-6"><%= image_tag('http://www.gravatar.com/avatar/' + Digest::MD5.hexdigest(target.hosts.first.email) + '?s=100&d=mm', class: "t-image") %>
+ <div class="col-md-2 col-sm-3 col-xs-6">
+ <%= image_tag(target.game.name.downcase.tr(" ", "_") + ".png", class: "t-image") %>
<p class="t-game"> <%= Game.find(target.game_id).name %></p>
</div>
<div class="col-md-8 col-sm-7 col-xs-6">
@@ -8,6 +9,7 @@
<div class="row" style="margin-left:2%;">
<div class="col-md-4 host">
Hosted by: <%= target.hosts.first.name %>
+ <%= image_tag('http://www.gravatar.com/avatar/' + Digest::MD5.hexdigest(target.hosts.first.email) + '?s=45&d=identicon', class: "t-image") %>
</div>
<div class="col-md-4 things">
<p> Players per team: <%= target.min_players_per_team %></p>
diff --git a/app/views/tournaments/_form.html.erb b/app/views/tournaments/_form.html.erb
index 2212515..e322601 100644
--- a/app/views/tournaments/_form.html.erb
+++ b/app/views/tournaments/_form.html.erb
@@ -7,7 +7,7 @@
<p>
<%= f.label :game_id, "Select a game type" %>
<%= f.select(:game_id, Game.all.map{|game| [game.name, game.id]}) %>
- <%= submit_tag("Select", :class => "btn") %>
+ <%= f.submit("Select") %>
</p>
<% if @tournament.game.nil? %>
@@ -60,32 +60,31 @@
<fieldset><legend style="color:rgb(221, 145, 37)">Settings</legend>
<%= f.fields_for :settings do |setting_fields| %>
- <% (@tournament.settings.empty? ? @tournament.game.settings : @tournament.settings).each do |setting| %><p>
- <% name = setting.name.parameterize.underscore %>
- <%= setting_fields.label name %>
+ <% @tournament.tournament_settings.each do |setting| %><p>
+ <%= setting_fields.label setting.name %>
<br>
<% case setting.vartype %>
<% when 0 %>
- <%= setting_fields.text_field( name ) %>
+ <%= setting_fields.text_field( setting.name ) %>
<% when 1 %>
- <%= setting_fields.text_area( name ) %>
+ <%= setting_fields.text_area( setting.name ) %>
<% when 2 %>
<ul>
<% setting.type_opt.split(',').each do |option|%>
- <li><label><%= setting_fields.radio_button( name, option ) %><%= option %></label></li>
+ <li><label><%= setting_fields.radio_button( setting.name, option ) %><%= option.humanize %></label></li>
<% end %>
</ul>
<% when 3 %>
<ul>
<% setting.type_opt.split(',').each do |option|%>
- <li><label><%= check_box_tag(name, value = option, checked = false, options = {}) %><%= option %></label></li>
+ <li><label><%= check_box_tag("tournament[settings][#{setting.name}][]", option, setting.value.split(',').include?(option)) %><%= option.humanize %></label></li>
<% end %>
</ul>
<% when 4 %>
- <%= setting_fields.radio_button( name, "true" ) %> True
- <%= setting_fields.radio_button( name, "false" ) %> False
+ <%= setting_fields.radio_button( setting.name, "true" ) %> True
+ <%= setting_fields.radio_button( setting.name, "false" ) %> False
<% when 5 %>
- <%= setting_fields.select( name, setting.type_opt.split(',') ) %>
+ <%= setting_fields.select( setting.name, setting.type_opt.split(',') ) %>
<% end %>
</p><% end %>
<% end %>
@@ -93,8 +92,8 @@
<%= f.fields_for :stages do |stages_fields| %><fieldset><legend style="color:rgb(221, 145, 37)">Stages</legend>
<label for="num_stages">Number of tournament stages</label>
- <input type="number" name="num_stages" min="1" value="<%= params[:num_stages] ? params[:num_stages].to_i : 1 %>">
- <%# submit_tag("Set Stages", :class => "btn") %>
+ <input type="number" name="num_stages" min="1" value="<%= params[:num_stages].to_i %>">
+ <%# stage_fields.submit("Set Stages") %>
<% for i in 1..(params[:num_stages].to_i) do %>
<p>
<%= stages_fields.fields_for i.to_s do |stage_fields| %><fieldset><legend style="color:rgb(221, 145, 37)">Stage <%= i %></legend>
diff --git a/app/views/users/show.html.erb b/app/views/users/show.html.erb
index a67aed9..b408589 100644
--- a/app/views/users/show.html.erb
+++ b/app/views/users/show.html.erb
@@ -2,7 +2,7 @@
<h1> <%= @user.user_name %>'s Profile </h1>
<p>
- <%= image_tag 'http://www.gravatar.com/avatar/' + Digest::MD5.hexdigest(@user.email) + '?s=100&d=mm' %>
+ <%= image_tag 'http://www.gravatar.com/avatar/' + Digest::MD5.hexdigest(@user.email) + '?s=100&d=identicon' %>
</p>
<p>