From 42d6e3b1cc05ef5172081682b53675e4827254d3 Mon Sep 17 00:00:00 2001 From: tkimia Date: Tue, 29 Apr 2014 16:41:35 -0400 Subject: elimination works SOMETIMES... other times it just can't put down a damned winner --- app/controllers/matches_controller.rb | 2 +- app/models/match.rb | 9 ++++++++- app/models/statistic.rb | 2 +- app/views/brackets/show.html.erb | 1 + app/views/matches/index.html.erb | 9 +++++---- 5 files changed, 16 insertions(+), 7 deletions(-) (limited to 'app') diff --git a/app/controllers/matches_controller.rb b/app/controllers/matches_controller.rb index dbd3e68..f24b95d 100644 --- a/app/controllers/matches_controller.rb +++ b/app/controllers/matches_controller.rb @@ -39,7 +39,7 @@ class MatchesController < ApplicationController end when 2 # Started, waiting to finish - @match.handle_sampling(@current_user, params) + @match.handle_sampling(current_user, params) # The @match.status will be updated by Statistic's after_save hook if @match.status == 3 notice = 'Match has finished' diff --git a/app/models/match.rb b/app/models/match.rb index 7b36777..65e2047 100644 --- a/app/models/match.rb +++ b/app/models/match.rb @@ -20,7 +20,9 @@ class Match < ActiveRecord::Base def finished? ok = true tournament_stage.scoring.stats_needed.each do |stat| - ok &= !statistics.where(match: self, name: stat).nil? + self.users.each do |user| + ok &= statistics.where(match: self, user: user, name: stat) + end end ok end @@ -46,6 +48,11 @@ class Match < ActiveRecord::Base # Delagates PUT/PATCH HTTP params to the appropriate sampling # methods. def handle_sampling(user, params) + require 'pp' + puts('>'*80) + pp user + pp params + puts('<'*80) method_classes.each do |klass| klass.new(self).handle_user_interaction(user, params) end diff --git a/app/models/statistic.rb b/app/models/statistic.rb index d62d413..8abf1f4 100644 --- a/app/models/statistic.rb +++ b/app/models/statistic.rb @@ -23,8 +23,8 @@ class Statistic < ActiveRecord::Base self.match.winner = self.match.teams.find{|t| t.users.include? self.user} end if (self.match.status == 2) and (self.match.finished?) - #self.match.tournament_stage.scoring.score(self.match) self.match.status = 3 + self.match.tournament_stage.scheduling.finish_match(self.match) end self.match.save! end diff --git a/app/views/brackets/show.html.erb b/app/views/brackets/show.html.erb index 96eb0ec..1eabcaf 100644 --- a/app/views/brackets/show.html.erb +++ b/app/views/brackets/show.html.erb @@ -103,4 +103,5 @@ <% end %> <%= submit_tag("Submit Prediction", disabled: true, id: "bracket-submit") %> <% end %> + <%= link_to 'Back', tournaments_path %> diff --git a/app/views/matches/index.html.erb b/app/views/matches/index.html.erb index 784d7db..e0e69b5 100644 --- a/app/views/matches/index.html.erb +++ b/app/views/matches/index.html.erb @@ -18,12 +18,13 @@ <%= "Match #{match.id}" %> <%= match.status %> <%= (match.winner.nil? ? "-" : "Team #{match.winner.id}") %> - <%= link_to "Show", tournament_match_path(@tournament, match) %> - <%# If user is the host, let them start the tournment %> - <% if @tournament.hosts.include?(current_user) %> + <%= link_to "See Match", tournament_match_path(@tournament, match) %> + + <%# NOTE: - fix this permission, if split up by match, this does not work %> + <% if @tournament.check_permission(current_user, :edit) %> <%= form_tag(tournament_match_path(@tournament, match), method: "put") do %> - <% @startable = (match.status == 0) and (match.teams.count >= @tournament.min_teams_per_match) %> + <% @startable = (match.status == 1) and (match.teams.count >= @tournament.min_teams_per_match) %> <%= submit_tag("Start Match", :disabled => ! @startable) %> <% end %> <% end %> -- cgit v1.2.3