From 9642c478bb491bf652340e5270dfeda9be2d7b4e Mon Sep 17 00:00:00 2001 From: jamal Date: Mon, 8 Dec 2014 09:35:13 -0500 Subject: [PATCH] Revert "Fix some logic errors with captains" Revert "Change Gather style to volunteer captains" This reverts commits fb7d361, d8134ca, and ebd60d1. --- app/controllers/gathers_controller.rb | 16 ----------- app/helpers/gathers_helper.rb | 8 ++---- app/models/gather.rb | 24 +++------------- app/models/gatherer.rb | 11 ++----- app/models/shoutmsg.rb | 1 + app/views/gathers/_running.html.erb | 7 ----- app/views/gathers/_status.html.erb | 19 ++---------- app/views/gathers/show.html.erb | 40 ++++++-------------------- config/locales/en.yml | 1 - public/sounds/gather-alert.mp3 | Bin 8747 -> 0 bytes 10 files changed, 21 insertions(+), 106 deletions(-) delete mode 100644 public/sounds/gather-alert.mp3 diff --git a/app/controllers/gathers_controller.rb b/app/controllers/gathers_controller.rb index 3f7d949..d8f4a87 100644 --- a/app/controllers/gathers_controller.rb +++ b/app/controllers/gathers_controller.rb @@ -63,22 +63,6 @@ class GathersController < ApplicationController redirect_to @gather end - def captain - raise AccessError unless @gatherer - - if @gather.captain1.nil? and @gather.captain2 != @gatherer - @gather.update_attribute :captain1, @gatherer - elsif @gather.captain2.nil? and @gather.captain1 != @gatherer - @gather.update_attribute :captain2, @gatherer - elsif @gatherer == @gather.captain1 - @gather.update_attribute :captain1, nil - elsif @gatherer == @gather.captain2 - @gather.update_attribute :captain2, nil - end - - redirect_to @gather - end - private def get_gather diff --git a/app/helpers/gathers_helper.rb b/app/helpers/gathers_helper.rb index 44274de..90dbaee 100644 --- a/app/helpers/gathers_helper.rb +++ b/app/helpers/gathers_helper.rb @@ -1,12 +1,8 @@ module GathersHelper def render_gather if @gather.status == Gather::STATE_RUNNING - if @gather.is_full? and !@gather.is_ready? and @gather.captain1 != @gatherer and @gather.captain2 != @gatherer - headers['Gather'] = 'full' - else - headers['Gather'] = 'running' - end - + headers['Gather'] = 'running' + render partial: 'running', layout: false elsif @gather.status == Gather::STATE_VOTING if @gatherer and @gather.gatherer_votes.first(conditions: { user_id: cuser.id }) diff --git a/app/models/gather.rb b/app/models/gather.rb index e00ca80..21507a2 100644 --- a/app/models/gather.rb +++ b/app/models/gather.rb @@ -89,17 +89,6 @@ class Gather < ActiveRecord::Base 5 end - def is_full? - return gatherers.count == Gather::FULL - end - - def is_ready? - if is_full? and !captain1.nil? and !captain2.nil? - return true - end - false - end - def first Gather.where(:category_id => category_id).order("id ASC").first end @@ -131,10 +120,12 @@ class Gather < ActiveRecord::Base end def check_status - if status_changed? and status == STATE_PICKING + if status_changed? and status == STATE_PICKING and !self.captain1 g = Gather.new g.category = self.category g.save + self.captain1 = self.gatherers.most_voted[1] + self.captain2 = self.gatherers.most_voted[0] if self.gather_maps.count > 1 self.map1 = self.gather_maps.ordered[0] self.map2 = self.gather_maps.ordered[1] @@ -148,7 +139,7 @@ class Gather < ActiveRecord::Base end def check_captains - if status == STATE_RUNNING or status == STATE_VOTING and is_ready? or admin + if captain1_id_changed? or captain2_id_changed? or admin self.turn = 1 self.status = STATE_PICKING gatherers.each do |gatherer| @@ -160,13 +151,6 @@ class Gather < ActiveRecord::Base gatherer.update_attributes(:team => nil, :skip_callbacks => true) end end - - # Create a new shout msgs when the gather is full - Shoutmsg.new({ - :shoutable_type => self.class.to_s, - :shoutable_id => self.id, - :text => I18n.t(:gather_start_shout) - }).save end end diff --git a/app/models/gatherer.rb b/app/models/gatherer.rb index cd43687..0b49f1b 100644 --- a/app/models/gatherer.rb +++ b/app/models/gatherer.rb @@ -70,7 +70,7 @@ class Gatherer < ActiveRecord::Base validates :confirm, :acceptance => true, :unless => Proc.new {|gatherer| gatherer.user.gatherers.count >= 5} validate :validate_username - after_create :start_gather, :if => Proc.new {|gatherer| gatherer.gather.is_ready?} + after_create :start_gather, :if => Proc.new {|gatherer| gatherer.gather.gatherers.count == Gather::FULL} after_create :notify_gatherers, :if => Proc.new {|gatherer| gatherer.gather.gatherers.count == Gather::NOTIFY} after_update :change_turn, :unless => Proc.new {|gatherer| gatherer.skip_callbacks == true} after_destroy :cleanup_votes @@ -118,12 +118,6 @@ class Gatherer < ActiveRecord::Base end def cleanup_votes - if gather.captain1_id == id - gather.update_attribute :captain1, nil - elsif gather.captain2_id == id - gather.update_attribute :captain2, nil - end - gather.map_votes.all(:conditions => {:user_id => user_id}).each { |g| g.destroy } gather.server_votes.all(:conditions => {:user_id => user_id}).each { |g| g.destroy } gather.gatherer_votes.all(:conditions => {:user_id => user_id}).each { |g| g.destroy } @@ -161,8 +155,7 @@ class Gatherer < ActiveRecord::Base end end return false unless team.nil? \ - and ((gather.captain1 != nil and gather.captain1.user == cuser and gather.turn == 1) \ - or (gather.captain2 != nil and gather.captain2.user == cuser and gather.turn == 2)) + and ((gather.captain1.user == cuser and gather.turn == 1) or (gather.captain2.user == cuser and gather.turn == 2)) return false if gather.turn == 1 and gather.gatherers.team(1).count == 2 and gather.gatherers.team(2).count < 3 return false if gather.turn == 2 and gather.gatherers.team(1).count < 4 and gather.gatherers.team(2).count == 3 return false if gather.turn == 1 and gather.gatherers.team(1).count == 4 and gather.gatherers.team(2).count < 5 diff --git a/app/models/shoutmsg.rb b/app/models/shoutmsg.rb index 45d7a47..60e0d59 100644 --- a/app/models/shoutmsg.rb +++ b/app/models/shoutmsg.rb @@ -17,6 +17,7 @@ class Shoutmsg < ActiveRecord::Base attr_protected :id, :created_at, :updated_at, :user_id validates_length_of :text, :in => 1..100 + validates_presence_of :user scope :recent, :include => :user, diff --git a/app/views/gathers/_running.html.erb b/app/views/gathers/_running.html.erb index 3971c18..de2d68f 100644 --- a/app/views/gathers/_running.html.erb +++ b/app/views/gathers/_running.html.erb @@ -9,13 +9,6 @@ 0 %> class="away"<% end %>> <%= flag gatherer.user.country %> <%= namelink gatherer.user %> - - <% if gatherer == @gather.captain1 or gatherer == @gather.captain2 %> - - <%= icon('star') %> - - <% end %> - <% if cuser and cuser.admin? %> <%= link_to gatherer, method: :delete, class: 'delete' do %> <%= icon 'times' %> diff --git a/app/views/gathers/_status.html.erb b/app/views/gathers/_status.html.erb index a47078f..50a508d 100644 --- a/app/views/gathers/_status.html.erb +++ b/app/views/gathers/_status.html.erb @@ -2,28 +2,15 @@ <% if @gather.status == Gather::STATE_RUNNING %> <% if @gatherer and @gatherer.can_destroy? cuser %> - <% if Gather::FULL == @gather.gatherers.length %> -

Gather is full but we are waiting on commanders. If you would like to command, please use the button below.

- <% else %> -

Gather running, <%= Gather::FULL - @gather.gatherers.length %> more needed.

- <% end %> - - <%= form_tag "/gathers/captain/#{@gather.id}" do %> - <%= submit_tag (@gather.captain1 == @gatherer or @gather.captain2 == @gatherer) ? 'Stop Commanding' : 'Command a Team', class: 'button tiny leave-gather' %> - <% end %> - - <%= link_to 'Leave Gather', @gatherer, confirm: 'Are you sure?', method: :delete, class: 'button tiny leave-gather' %> +

Gather running, <%= Gather::FULL - @gather.gatherers.length %> more needed.

+ <%= link_to 'Leave Gather', @gatherer, confirm: 'Are you sure?', method: :delete, class: 'button tiny' %> <% elsif (g = Gatherer.new(gather: @gather, user: cuser)).can_create?(cuser) %> <%= form_for g do |f| %> <%= f.hidden_field :gather_id %> <%= f.hidden_field :user_id %> - <% if Gather::FULL == @gather.gatherers.length %> -

Gather is full but we are waiting on commanders. If you would like to command, please use the button below.

- <% else %> -

Gather running, <%= Gather::FULL - @gather.gatherers.length %> more needed.

- <% end %> +

Gather running, <%= Gather::FULL - @gather.gatherers.length %> more needed.

You can download custom maps via the <%= link_to "Steam Workshop", "http://steamcommunity.com/workshop/browse?searchtext=&childpublishedfileid=0§ion=items&appid=4920&browsesort=trend&requiredtags%5B%5D=level" %>. diff --git a/app/views/gathers/show.html.erb b/app/views/gathers/show.html.erb index d0aa8c2..5a8d9a1 100644 --- a/app/views/gathers/show.html.erb +++ b/app/views/gathers/show.html.erb @@ -1,6 +1,5 @@