summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/controllers/matches_controller.rb31
-rw-r--r--app/controllers/tournaments_controller.rb7
-rw-r--r--app/models/tournament.rb42
-rw-r--r--app/views/tournaments/index.html.erb100
4 files changed, 94 insertions, 86 deletions
diff --git a/app/controllers/matches_controller.rb b/app/controllers/matches_controller.rb
index 69ea23b..b6fde0a 100644
--- a/app/controllers/matches_controller.rb
+++ b/app/controllers/matches_controller.rb
@@ -1,12 +1,12 @@
class MatchesController < ApplicationController
before_action :set_tournament, only: [:index, :update]
- # GET /matches
- # GET /matches.json
require 'httparty'
require 'json'
require 'delayed_job'
+ # GET /tournaments/1/matches
+ # GET /tournaments/1/matches.json
def index
@matches = @tournament.matches
# depth of SVG tree
@@ -22,8 +22,8 @@ class MatchesController < ApplicationController
tournament_matches_path(@tournament)
end
- def get_riot_info
- if signed_in?
+ def get_riot_info
+ if signed_in?
pull = "Kaceytron"
#current user information
@@ -107,7 +107,7 @@ class MatchesController < ApplicationController
purple.merge!("#{place}" => info["games"][0]["stats"])
end
sleep(1)
- end
+ end
if 100 == recent["games"][0]["stats"]["team"]
blue.merge!("#{players[9]}" => recent["games"][0]["stats"])
@@ -118,10 +118,8 @@ class MatchesController < ApplicationController
@purp = purple
@blue = blue
- end #end if
- end #end def
- # GET /matches/1
- # GET /matches/1.json
+ end #end if
+ end #end def
def is_match_over
response = HTTParty.get("https://prod.api.pvp.net/api/lol/na/v1.3/summoner/by-name/#{@first}?api_key=ad539f86-22fd-474d-9279-79a7a296ac38")
@@ -143,6 +141,8 @@ class MatchesController < ApplicationController
end
handle_asynchronously :is_match_over
+ # GET /tournaments/1/matches/1
+ # GET /tournaments/1/matches/1.json
def show
if Tournament.find_by_id(@match.tournament_id).game_id == 1
file_blue = "blue.yaml"
@@ -152,6 +152,8 @@ class MatchesController < ApplicationController
end
end
+ # PATCH/PUT /tournaments/1/matches/1
+ # PATCH/PUT /tournaments/1/matches/1.json
def update
case params[:update_action]
when "start"
@@ -166,8 +168,6 @@ class MatchesController < ApplicationController
end
end
when "finish"
- @match.status = 2
-
# Individual scores
scores = params["scores"]
scores.each do |user_name, score|
@@ -191,6 +191,15 @@ class MatchesController < ApplicationController
@match.winner.matches.push(@tournament.matches_ordered[cur_match_num/2])
end
+ # Skip peer evaluation if there aren't enough players per team
+ peer = false
+ @match.teams.each do |team|
+ if team.users.count > 2
+ peer = true
+ end
+ end
+ @match.status = peer ? 2 : 3
+
respond_to do |format|
if @match.save
format.html { redirect_to tournament_match_path(@tournament, @match), notice: 'Peer evaluation started.' }
diff --git a/app/controllers/tournaments_controller.rb b/app/controllers/tournaments_controller.rb
index 2fc82ed..f572248 100644
--- a/app/controllers/tournaments_controller.rb
+++ b/app/controllers/tournaments_controller.rb
@@ -14,8 +14,11 @@ class TournamentsController < ApplicationController
case @tournament.status
when 0
render action: 'show'
- when 1..2
- redirect_to "/tournaments/" + @tournament.id.to_s + "/matches" #tournament_matches_page(@tournament)
+ when 1
+ #redirect_to tournament_matches_page(@tournament)
+ redirect_to "/tournaments/" + @tournament.id.to_s + "/matches"
+ when 2
+ redirect_to tournaments_page
end
}
format.json {
diff --git a/app/models/tournament.rb b/app/models/tournament.rb
index 4cbbf95..d3ef12a 100644
--- a/app/models/tournament.rb
+++ b/app/models/tournament.rb
@@ -34,27 +34,27 @@ class Tournament < ActiveRecord::Base
:range => 4
}
- def initialize(tournament)
- @tournament = tournament
- end
+ def initialize(tournament)
+ @tournament = tournament
+ end
- def [](preference)
- p = @tournament.preferences_raw.find_by_name(preference)
- if p.nil?
- return nil
- else
- return p.value
- end
- end
+ def [](preference)
+ p = @tournament.preferences_raw.find_by_name(preference)
+ if p.nil?
+ return nil
+ else
+ return p.value
+ end
+ end
- def []=(preference, val)
- p = @tournament.preferences_raw.find_by_name(preference)
- if p.nil?
+ def []=(preference, val)
+ p = @tournament.preferences_raw.find_by_name(preference)
+ if p.nil?
TournamentPreference.create( tournament_id: @tournament.id, vartype: get_type(val), name: preference, value: val )
- else
- p.value = val
- end
- end
+ else
+ p.value = val
+ end
+ end
def get_type(val)
case val
@@ -71,9 +71,9 @@ class Tournament < ActiveRecord::Base
end
end
- def keys
- @tournament.preferences_raw.all.collect { |x| x.name }
- end
+ def keys
+ @tournament.preferences_raw.all.collect { |x| x.name }
+ end
def method_missing(name, *args)
if name.to_s.ends_with?('=')
diff --git a/app/views/tournaments/index.html.erb b/app/views/tournaments/index.html.erb
index 72eacba..7957042 100644
--- a/app/views/tournaments/index.html.erb
+++ b/app/views/tournaments/index.html.erb
@@ -1,56 +1,52 @@
<h1>Listing Tournaments</h1>
-<% if @tournaments.length > 0 %>
- <div id="tournament-list">
-
- <%# Each tournament has a div for its listing %>
- <% @tournaments.each do |t| %>
- <div class="row tournament-listing">
- <div class="col-md-2 "><%= image_tag 'http://www.gravatar.com/avatar/' + Digest::MD5.hexdigest(t.hosts.first.email) + '?s=100&d=mm' %></div>
-
+<div id="tournament-list">
+ <% if @tournaments.length > 0 %>
+ <%# Each tournament has a div for its listing %>
+ <% @tournaments.each do |t| %>
+ <div class="row tournament-listing">
+ <div class="col-md-2 "><%= image_tag 'http://www.gravatar.com/avatar/' + Digest::MD5.hexdigest(t.hosts.first.email) + '?s=100&d=mm' %></div>
+ <div class="col-md-8">
+ <%# "header" %>
+ <%= link_to(t) do %><h3><%= t.name %></h3><% end %>
+ <div class="row" style="margin-left:2%;">
+ <div class="col-md-4 host">
+ Hosted by: <%= t.hosts.first.name %>
+ </div>
+ <div class="col-md-4 things">
+ <p> Players per team: <%= t.min_players_per_team %></p>
+ <p> Players signed up: <%= t.players.count %> </p>
+ </div>
+ <div class="col-md-4 things">
+ <p> <%= (t.randomized_teams)? "Teams are Random" : "Teams are Chosen" %></p>
+ <p> Players signed up: <%= t.players.count %> </p>
+ </div>
+ </div>
+ </div>
+ <div class="col-md-2">
+ <% if signed_in? %>
+ <% if !t.players.include?(current_user) %>
+ <%= form_tag(tournament_path(t), method: "put") do %>
+ <input type="hidden" name="update_action" value="join">
+ <%= submit_tag("Join")
+ %>
+ <% end %>
+ <% else %>
+ <p style="margin-top:10px;"> You've signed up for this tournament! </p>
+ <% end %>
+ <% end %>
+ </div>
+ </div>
+ <% end %>
+ <% else %>
+ <p class="no-entries"> No tournaments going on right now...
+ <% if current_user.can?(:create_tournament) %>
+ Why not start your own?
+ <% end %>
+ </p>
+ <% end %>
+</div>
- <div class="col-md-8">
- <%# "header" %>
- <%= link_to(t) do %>
- <h3><%= t.name %></h3>
- <% end %>
-
- <div class="row" style="margin-left:2%;">
- <div class="col-md-4 host">
- Hosted by: <%= t.hosts.first.name %>
- </div>
- <div class="col-md-4 things">
- <p> Players per team: <%= t.min_players_per_team %></p>
- <p> Players signed up: <%= t.players.count %> </p>
- </div>
- <div class="col-md-4 things">
- <p> <%= (t.randomized_teams)? "Teams are Random" : "Teams are Chosen" %></p>
- <p> Players signed up: <%= t.players.count %> </p>
- </div>
- </div>
-
- </div>
-
-
- <div class="col-md-2">
- <%# If this guy is logged in AND not in the tournament %>
- <% if signed_in? && !t.players.include?(current_user) %>
- <%= form_tag(tournament_path(t), method: "put") do %>
- <input type="hidden" name="update_action" value="join">
- <%= submit_tag("Join") %>
- <% end %>
- <% else %>
- <p style="margin-top:10px;"> You've signed up for this tournament! </p>
- <% end %>
- </div>
-
- </div>
- <% end %>
-
- </div>
-<% else %>
- <p class="no-entries"> No tournaments going on right now... Why not start your own? </p>
+<% if current_user.can?(:create_tournament) %>
+ <div><%= link_to 'New Tournament', new_tournament_path, :class => "btn btn-warning btn-lg" %></div>
<% end %>
-<br>
-
-<%= link_to 'New Tournament', new_tournament_path, :class => "btn btn-warning btn-lg" %>