diff options
-rw-r--r-- | app/controllers/matches_controller.rb | 31 | ||||
-rw-r--r-- | app/controllers/tournaments_controller.rb | 7 | ||||
-rw-r--r-- | app/models/tournament.rb | 42 | ||||
-rw-r--r-- | app/views/tournaments/index.html.erb | 100 |
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" %> |