diff options
Diffstat (limited to 'app')
-rw-r--r-- | app/controllers/matches_controller.rb | 37 | ||||
-rw-r--r-- | app/views/matches/show.html.erb | 20 |
2 files changed, 34 insertions, 23 deletions
diff --git a/app/controllers/matches_controller.rb b/app/controllers/matches_controller.rb index b1b283b..6709a53 100644 --- a/app/controllers/matches_controller.rb +++ b/app/controllers/matches_controller.rb @@ -168,6 +168,10 @@ class MatchesController < ApplicationController def update case params[:update_action] when "start" + # + # Redirect to the current match page for this tournament with the correct sampling view rendered + # + @match.status = 1 respond_to do |format| if @match.save @@ -180,15 +184,30 @@ class MatchesController < ApplicationController end when "finish" + # + # Get the winner and blowout status from the params given by the correct sampling view + # + + + #in general + #provide contribution + #if all contributions are in, update statistics + + #make this use the statistics interface for scoring and ScoringAlgorithms @match.winner = @match.teams.find_by_id(params['winner']) - @match.blowout = false + @match.statistics.create(name: "blowout", user: nil, value: 0) - @match.statistics['Score'] = @tournament.settings['ScoringMethod'].constantize.score(@match, @match.statistics) -=begin + #How to access the blowout statistic of a match: + @match.statistics.where(:name => "blowout").first.value + + + #@match.statistics.create(name: 'score', value: @tournament.settings.where(:name => 'Scoring Method').value.constantize.score(@match, @match.statistics) + +=begin # Individual scores #scores = params["scores"] #scores.each do |user_name, score| @@ -233,6 +252,10 @@ class MatchesController < ApplicationController end end when "peer" + # + # Update user scores via scoring method + # + order = params[:review_action] base_score = 2 next_score = 3 @@ -262,10 +285,14 @@ class MatchesController < ApplicationController end end when "reset" - @match.status = 0 + # + # Reset Match Status to 1 in case something needs to be replayed. + # + + @match.status = 1 respond_to do |format| if @match.save - format.html { redirect_to tournament_match_path(@tournament, @match), notice: 'Match Status Reset to 0' } + format.html { redirect_to tournament_match_path(@tournament, @match), notice: 'Match Status Reset to 1' } format.json { head :no_content } else format.html { redirect_to @tournament, notice: "You don't have permission to start this match." } diff --git a/app/views/matches/show.html.erb b/app/views/matches/show.html.erb index 7a82527..8344a7a 100644 --- a/app/views/matches/show.html.erb +++ b/app/views/matches/show.html.erb @@ -78,24 +78,8 @@ function score_peers() { <!-- Started, waiting to finish --> <!-- This will depend on the Sampling Method Eventually instead of always being Manual --> - <% case @tournament.sampling_method %> - <% when "Manual" %> - <% if @tournament.hosts.include? current_user %> - <input type="hidden" name="update_action" value="finish"> - <% @match.teams.each do |team| %> - <%= tag :input, {"type" => "radio", "name" => "winner", "value" => "#{team.id}" } %> - <%= "Team #{team.id} Won" %> - <% end %> - <%= submit_tag("Finish match") %> - <%= @tournament.settings['ScoringMethod'] %> - <% else %> - <p>The match is running; the host has yet to post the scores of the match.</p> - <% end %> - <% when "Double Blind" %> - <p>Double Blind isn't implemented yet.</p> - <% when "RiotAPI" %> - <p>Riot API is being called for Statistics. Results will appear shortly.</p> - <% end %> + <%= raw @match.tournament_stage.tournament.sampling_method.camelcase.constantize.render_user_interaction(@match, current_user) %> + <% when 2 %> <!-- Finished, waiting for peer reviews --> <input type="hidden" name="update_action" value="peer"> |