|
|
@ -2,33 +2,44 @@
|
|
|
|
# class BidsController < ApplicationController
|
|
|
|
# class BidsController < ApplicationController
|
|
|
|
class ContestsController < ApplicationController
|
|
|
|
class ContestsController < ApplicationController
|
|
|
|
layout "contest_base"
|
|
|
|
layout "contest_base"
|
|
|
|
|
|
|
|
|
|
|
|
menu_item :respond
|
|
|
|
menu_item :respond
|
|
|
|
menu_item :project, :only => :show_project
|
|
|
|
menu_item :project, :only => :show_project
|
|
|
|
menu_item :application, :only => :show_softapplication
|
|
|
|
menu_item :application, :only => :show_softapplication
|
|
|
|
menu_item :attendingcontests, :only => :show_attendingcontest
|
|
|
|
menu_item :attendingcontests, :only => :show_attendingcontest
|
|
|
|
menu_item :contestnotifications, :only => :index
|
|
|
|
menu_item :contestnotifications, :only => :index
|
|
|
|
|
|
|
|
|
|
|
|
before_filter :can_show_contest,except: []
|
|
|
|
before_filter :can_show_contest, :except => [] # modified by alan
|
|
|
|
before_filter :find_contest, :only => [:show_contest, :show_project, :show_softapplication, :show_attendingcontest, :index, :set_reward_project, :set_reward_softapplication, :create,:destroy,:more,:back,:add,:add_softapplication,:new,:show_results, :set_reward,
|
|
|
|
|
|
|
|
:show_contest_project, :show_contest_user, :join_in_contest, :unjoin_in_contest, :new_join,:show_participator, :settings]
|
|
|
|
# modified by longjun
|
|
|
|
|
|
|
|
before_filter :find_contest, :only => [
|
|
|
|
|
|
|
|
:show_contest, :show_project, :show_softapplication,
|
|
|
|
|
|
|
|
:show_attendingcontest, :index, :set_reward_project,
|
|
|
|
|
|
|
|
:set_reward_softapplication, :create, :destroy, :more,
|
|
|
|
|
|
|
|
:back, :add, :add_softapplication, :new,:show_results,
|
|
|
|
|
|
|
|
:set_reward, :show_contest_project, :show_contest_user,
|
|
|
|
|
|
|
|
:join_in_contest, :unjoin_in_contest, :new_join, :show_participator, :settings
|
|
|
|
|
|
|
|
]
|
|
|
|
|
|
|
|
# end longjun
|
|
|
|
|
|
|
|
|
|
|
|
# added by fq
|
|
|
|
# added by fq
|
|
|
|
before_filter :require_login, :only => [:join_in_contest, :unjoin_in_contest]
|
|
|
|
before_filter :require_login, :only => [:join_in_contest, :unjoin_in_contest]
|
|
|
|
# end
|
|
|
|
# end
|
|
|
|
before_filter :require_login,:only => [:set_reward, :destroy, :add, :new, ]
|
|
|
|
before_filter :require_login,:only => [:set_reward, :destroy, :add, :new ]
|
|
|
|
|
|
|
|
|
|
|
|
helper :watchers
|
|
|
|
helper :watchers
|
|
|
|
helper :attachments
|
|
|
|
helper :attachments
|
|
|
|
include AttachmentsHelper
|
|
|
|
|
|
|
|
include ApplicationHelper
|
|
|
|
|
|
|
|
helper :projects
|
|
|
|
helper :projects
|
|
|
|
helper :words
|
|
|
|
helper :words
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
include AttachmentsHelper
|
|
|
|
|
|
|
|
include ApplicationHelper
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def index
|
|
|
|
def index
|
|
|
|
# @contests = Contest.visible
|
|
|
|
# @contests = Contest.visible
|
|
|
|
# @contests ||= []
|
|
|
|
# @contests ||= []
|
|
|
|
@offset, @limit = api_offset_and_limit({:limit => 10})
|
|
|
|
@offset, @limit = api_offset_and_limit(:limit => 10)
|
|
|
|
#@contests = Contest.visible
|
|
|
|
#@contests = Contest.visible
|
|
|
|
#@contests = @contests.like(params[:name]) if params[:name].present?
|
|
|
|
#@contests = @contests.like(params[:name]) if params[:name].present?
|
|
|
|
@contests = Contest.visible.where("name like '%#{params[:name]}%'")
|
|
|
|
@contests = Contest.visible.where("name like '%#{params[:name]}%'")
|
|
|
@ -42,7 +53,10 @@ class ContestsController < ApplicationController
|
|
|
|
if params[:contest_sort_type].present?
|
|
|
|
if params[:contest_sort_type].present?
|
|
|
|
case params[:contest_sort_type]
|
|
|
|
case params[:contest_sort_type]
|
|
|
|
when '0'
|
|
|
|
when '0'
|
|
|
|
unless @offset == 0
|
|
|
|
# modified by longjun
|
|
|
|
|
|
|
|
# never use unless and else
|
|
|
|
|
|
|
|
# unless @offset == 0
|
|
|
|
|
|
|
|
if @offset != 0
|
|
|
|
@contests = @contests.reorder('contests.commit').offset(@offset).limit(@limit).all.reverse
|
|
|
|
@contests = @contests.reorder('contests.commit').offset(@offset).limit(@limit).all.reverse
|
|
|
|
else
|
|
|
|
else
|
|
|
|
limit = @contest_count % @limit
|
|
|
|
limit = @contest_count % @limit
|
|
|
@ -51,7 +65,10 @@ class ContestsController < ApplicationController
|
|
|
|
end
|
|
|
|
end
|
|
|
|
@s_state = 0
|
|
|
|
@s_state = 0
|
|
|
|
when '1'
|
|
|
|
when '1'
|
|
|
|
unless @offset == 0
|
|
|
|
# modified by longjun
|
|
|
|
|
|
|
|
# never use unless and else
|
|
|
|
|
|
|
|
# unless @offset == 0
|
|
|
|
|
|
|
|
if @offset != 0
|
|
|
|
@contests = @contests.reorder('contests.created_on').offset(@offset).limit(@limit).all.reverse
|
|
|
|
@contests = @contests.reorder('contests.created_on').offset(@offset).limit(@limit).all.reverse
|
|
|
|
else
|
|
|
|
else
|
|
|
|
limit = @contest_count % @limit
|
|
|
|
limit = @contest_count % @limit
|
|
|
@ -60,7 +77,10 @@ class ContestsController < ApplicationController
|
|
|
|
end
|
|
|
|
end
|
|
|
|
@s_state = 1
|
|
|
|
@s_state = 1
|
|
|
|
when '2'
|
|
|
|
when '2'
|
|
|
|
unless @offset == 0
|
|
|
|
# modified by longjun
|
|
|
|
|
|
|
|
# never use unless and else
|
|
|
|
|
|
|
|
# unless @offset == 0
|
|
|
|
|
|
|
|
if @offset != 0
|
|
|
|
@contests = @contests.offset(@offset).limit(@limit).all.reverse
|
|
|
|
@contests = @contests.offset(@offset).limit(@limit).all.reverse
|
|
|
|
else
|
|
|
|
else
|
|
|
|
limit = @contest_count % @limit
|
|
|
|
limit = @contest_count % @limit
|
|
|
@ -70,7 +90,10 @@ class ContestsController < ApplicationController
|
|
|
|
@s_state = 0
|
|
|
|
@s_state = 0
|
|
|
|
end
|
|
|
|
end
|
|
|
|
else
|
|
|
|
else
|
|
|
|
unless @offset == 0
|
|
|
|
# modified by longjun
|
|
|
|
|
|
|
|
# never use unless and else
|
|
|
|
|
|
|
|
# unless @offset == 0
|
|
|
|
|
|
|
|
if @offset != 0
|
|
|
|
@contests = @contests.reorder('contests.created_on').offset(@offset).limit(@limit).all.reverse
|
|
|
|
@contests = @contests.reorder('contests.created_on').offset(@offset).limit(@limit).all.reverse
|
|
|
|
else
|
|
|
|
else
|
|
|
|
limit = @contest_count % @limit
|
|
|
|
limit = @contest_count % @limit
|
|
|
@ -93,7 +116,10 @@ class ContestsController < ApplicationController
|
|
|
|
@bid_pages = Paginator.new @bid_count, @limit, params['page']
|
|
|
|
@bid_pages = Paginator.new @bid_count, @limit, params['page']
|
|
|
|
|
|
|
|
|
|
|
|
@offset ||= @bid_pages.reverse_offset
|
|
|
|
@offset ||= @bid_pages.reverse_offset
|
|
|
|
unless @offset == 0
|
|
|
|
# modified by longjun
|
|
|
|
|
|
|
|
# never use unless and else
|
|
|
|
|
|
|
|
# unless @offset == 0
|
|
|
|
|
|
|
|
if @offset != 0
|
|
|
|
@bids = @bids.offset(@offset).limit(@limit).all.reverse
|
|
|
|
@bids = @bids.offset(@offset).limit(@limit).all.reverse
|
|
|
|
else
|
|
|
|
else
|
|
|
|
limit = @bid_count % @limit
|
|
|
|
limit = @bid_count % @limit
|
|
|
@ -149,10 +175,7 @@ class ContestsController < ApplicationController
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
def new_join
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def show_participator
|
|
|
|
def show_participator
|
|
|
|
render :layout => 'base_newcontest'
|
|
|
|
render :layout => 'base_newcontest'
|
|
|
@ -186,26 +209,43 @@ class ContestsController < ApplicationController
|
|
|
|
def show_contest_project
|
|
|
|
def show_contest_project
|
|
|
|
contests = Contest.where('parent_id = ?', @contest.id)
|
|
|
|
contests = Contest.where('parent_id = ?', @contest.id)
|
|
|
|
@projects = []
|
|
|
|
@projects = []
|
|
|
|
for contest in contests
|
|
|
|
|
|
|
|
|
|
|
|
# Modified by longjun
|
|
|
|
|
|
|
|
# 用 arr.each 替换 for [ according to the style guide ]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# for contest in contests
|
|
|
|
|
|
|
|
# @projects += contest.contesting_projects
|
|
|
|
|
|
|
|
# end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
contests.each do |contest|
|
|
|
|
@projects += contest.contesting_projects
|
|
|
|
@projects += contest.contesting_projects
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# end
|
|
|
|
|
|
|
|
|
|
|
|
respond_to do |format|
|
|
|
|
respond_to do |format|
|
|
|
|
format.html {
|
|
|
|
format.html {
|
|
|
|
render :layout => 'base_newcontest'
|
|
|
|
render :layout => 'base_newcontest'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
format.api
|
|
|
|
format.api
|
|
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
def show_contest_softapplication
|
|
|
|
def show_contest_softapplication
|
|
|
|
contests = Contest.where('parent_id = ?', @contest.id)
|
|
|
|
contests = Contest.where('parent_id = ?', @contest.id)
|
|
|
|
@softapplications = []
|
|
|
|
@softapplications = []
|
|
|
|
for contest in contests
|
|
|
|
|
|
|
|
|
|
|
|
# Modified by Longjun
|
|
|
|
|
|
|
|
# for contest in contests
|
|
|
|
|
|
|
|
# @softapplications += contest.contesting_softapplications
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
contests.each do |contest|
|
|
|
|
@softapplications += contest.contesting_softapplications
|
|
|
|
@softapplications += contest.contesting_softapplications
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# end
|
|
|
|
|
|
|
|
|
|
|
|
respond_to do |format|
|
|
|
|
respond_to do |format|
|
|
|
|
format.html {
|
|
|
|
format.html {
|
|
|
|
render :layout => 'base_newcontest'
|
|
|
|
render :layout => 'base_newcontest'
|
|
|
@ -218,11 +258,20 @@ class ContestsController < ApplicationController
|
|
|
|
def show_contest_user
|
|
|
|
def show_contest_user
|
|
|
|
contests = Contest.find(:all)
|
|
|
|
contests = Contest.find(:all)
|
|
|
|
@users = []
|
|
|
|
@users = []
|
|
|
|
for contest in contests
|
|
|
|
|
|
|
|
for project in contest.projects
|
|
|
|
# Modified by Longjun
|
|
|
|
@users += project.users
|
|
|
|
# for contest in contests
|
|
|
|
|
|
|
|
# for project in contest.projects
|
|
|
|
|
|
|
|
# @users += project.users
|
|
|
|
|
|
|
|
# end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
contests.each do |contest|
|
|
|
|
|
|
|
|
contest.projects.each do |project|
|
|
|
|
|
|
|
|
@uers += project.users
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
# end
|
|
|
|
|
|
|
|
|
|
|
|
respond_to do |format|
|
|
|
|
respond_to do |format|
|
|
|
|
format.html {
|
|
|
|
format.html {
|
|
|
@ -239,11 +288,20 @@ class ContestsController < ApplicationController
|
|
|
|
# @contesting_project_count = @contesting_project_all.count
|
|
|
|
# @contesting_project_count = @contesting_project_all.count
|
|
|
|
# @contesting_project_pages = Paginator.new @contesting_project_count, per_page_option, params['page']
|
|
|
|
# @contesting_project_pages = Paginator.new @contesting_project_count, per_page_option, params['page']
|
|
|
|
@membership.each do |membership|
|
|
|
|
@membership.each do |membership|
|
|
|
|
unless(membership.project.project_type==1)
|
|
|
|
|
|
|
|
if User.current.allowed_to?(:quote_project, membership.project)
|
|
|
|
# Modified by Longjun
|
|
|
|
|
|
|
|
# 将两个判断语句合并
|
|
|
|
|
|
|
|
# unless membership.project.project_type==1
|
|
|
|
|
|
|
|
# if User.current.allowed_to?(:quote_project, membership.project)
|
|
|
|
|
|
|
|
# @option << membership.project
|
|
|
|
|
|
|
|
# end
|
|
|
|
|
|
|
|
# end
|
|
|
|
|
|
|
|
if membership.project.project_type != 1 && User.current.allowed_to?(:quote_project, membership.project)
|
|
|
|
@option << membership.project
|
|
|
|
@option << membership.project
|
|
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
# end
|
|
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
end
|
|
|
|
@user = @contest.author
|
|
|
|
@user = @contest.author
|
|
|
|
@contesting_project = @contest.contesting_projects.all
|
|
|
|
@contesting_project = @contest.contesting_projects.all
|
|
|
@ -262,16 +320,19 @@ class ContestsController < ApplicationController
|
|
|
|
|
|
|
|
|
|
|
|
@temp = []
|
|
|
|
@temp = []
|
|
|
|
@contesting_project.each do |pro|
|
|
|
|
@contesting_project.each do |pro|
|
|
|
|
if pro.project && pro.project.project_status
|
|
|
|
# modified by longjun
|
|
|
|
@temp << pro
|
|
|
|
# if pro.project && pro.project.project_status
|
|
|
|
end
|
|
|
|
# @temp << pro
|
|
|
|
|
|
|
|
# end
|
|
|
|
|
|
|
|
@temp << pro if pro.project && pro.project.project_status
|
|
|
|
|
|
|
|
# end longjun
|
|
|
|
@temp
|
|
|
|
@temp
|
|
|
|
end
|
|
|
|
end
|
|
|
|
if @temp.size > 0
|
|
|
|
if @temp.size > 0
|
|
|
|
@contesting_project = @temp.sort {|a,b| b.project.project_status.grade <=> a.project.project_status.grade}
|
|
|
|
@contesting_project = @temp.sort {|a,b| b.project.project_status.grade <=> a.project.project_status.grade}
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
@contesting_project = paginateHelper @contesting_project
|
|
|
|
@contesting_project = paginateHelper(@contesting_project)
|
|
|
|
respond_to do |format|
|
|
|
|
respond_to do |format|
|
|
|
|
format.html {
|
|
|
|
format.html {
|
|
|
|
render :layout => 'base_newcontest'
|
|
|
|
render :layout => 'base_newcontest'
|
|
|
@ -290,7 +351,7 @@ class ContestsController < ApplicationController
|
|
|
|
@softapplication = Softapplication.all
|
|
|
|
@softapplication = Softapplication.all
|
|
|
|
@contesting_softapplication = @contest.contesting_softapplications
|
|
|
|
@contesting_softapplication = @contest.contesting_softapplications
|
|
|
|
|
|
|
|
|
|
|
|
@contesting_softapplication = paginateHelper @contesting_softapplication, 10
|
|
|
|
@contesting_softapplication = paginateHelper(@contesting_softapplication, 10)
|
|
|
|
|
|
|
|
|
|
|
|
# @temp = []
|
|
|
|
# @temp = []
|
|
|
|
# @softapplicationt.each do |pro|
|
|
|
|
# @softapplicationt.each do |pro|
|
|
|
@ -328,7 +389,7 @@ class ContestsController < ApplicationController
|
|
|
|
# @contesting_project_count = @contesting_project_all.count
|
|
|
|
# @contesting_project_count = @contesting_project_all.count
|
|
|
|
# @contesting_project_pages = Paginator.new @contesting_project_count, per_page_option, params['page']
|
|
|
|
# @contesting_project_pages = Paginator.new @contesting_project_count, per_page_option, params['page']
|
|
|
|
@membership.each do |membership|
|
|
|
|
@membership.each do |membership|
|
|
|
|
unless(membership.project.project_type==1)
|
|
|
|
unless membership.project.project_type==1
|
|
|
|
#拥有编辑项目权限的可将该项目参赛
|
|
|
|
#拥有编辑项目权限的可将该项目参赛
|
|
|
|
if User.current.allowed_to?(:quote_project, membership.project)
|
|
|
|
if User.current.allowed_to?(:quote_project, membership.project)
|
|
|
|
@option << membership.project
|
|
|
|
@option << membership.project
|
|
|
@ -352,27 +413,31 @@ class ContestsController < ApplicationController
|
|
|
|
|
|
|
|
|
|
|
|
@temp = []
|
|
|
|
@temp = []
|
|
|
|
@contesting_project.each do |pro|
|
|
|
|
@contesting_project.each do |pro|
|
|
|
|
if pro.project && pro.project.project_status
|
|
|
|
# modified by longjun
|
|
|
|
@temp << pro
|
|
|
|
# if pro.project && pro.project.project_status
|
|
|
|
end
|
|
|
|
# @temp << pro
|
|
|
|
|
|
|
|
# end
|
|
|
|
|
|
|
|
@temp << pro if pro.project && pro.project.project_status
|
|
|
|
|
|
|
|
# end longjun
|
|
|
|
@temp
|
|
|
|
@temp
|
|
|
|
end
|
|
|
|
end
|
|
|
|
if @temp.size > 0
|
|
|
|
if @temp.size > 0
|
|
|
|
@contesting_project = @temp.sort {|a,b| b.project.project_status.grade <=> a.project.project_status.grade}
|
|
|
|
@contesting_project = @temp.sort {|a,b| b.project.project_status.grade <=> a.project.project_status.grade}
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
##取出参赛应用 --应用列表
|
|
|
|
# 取出参赛应用 --应用列表
|
|
|
|
@softapplication = Softapplication.all
|
|
|
|
@softapplication = Softapplication.all
|
|
|
|
@contesting_softapplication = @contest.contesting_softapplications.
|
|
|
|
@contesting_softapplication = @contest.contesting_softapplications.
|
|
|
|
joins("LEFT JOIN softapplications ON contesting_softapplications.softapplication_id=softapplications.id").
|
|
|
|
joins("LEFT JOIN softapplications ON contesting_softapplications.softapplication_id=softapplications.id").
|
|
|
|
joins("LEFT JOIN (
|
|
|
|
joins("LEFT JOIN (
|
|
|
|
SELECT * FROM seems_rateable_cached_ratings WHERE cacheable_type='Softapplication' AND DIMENSION = 'quality') AS cached
|
|
|
|
SELECT * FROM seems_rateable_cached_ratings
|
|
|
|
|
|
|
|
WHERE cacheable_type='Softapplication' AND DIMENSION = 'quality') AS cached
|
|
|
|
ON cached.cacheable_id=softapplications.id").
|
|
|
|
ON cached.cacheable_id=softapplications.id").
|
|
|
|
order("cached.avg").reverse_order
|
|
|
|
order("cached.avg").reverse_order
|
|
|
|
@contesting_softapplication = paginateHelper @contesting_softapplication, 10
|
|
|
|
@contesting_softapplication = paginateHelper @contesting_softapplication, 10
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
##引用base_newcontest整体样式
|
|
|
|
#引用base_newcontest整体样式
|
|
|
|
@contest = Contest.find_by_id(params[:id])
|
|
|
|
@contest = Contest.find_by_id(params[:id])
|
|
|
|
respond_to do |format|
|
|
|
|
respond_to do |format|
|
|
|
|
format.html {
|
|
|
|
format.html {
|
|
|
@ -384,7 +449,7 @@ class ContestsController < ApplicationController
|
|
|
|
|
|
|
|
|
|
|
|
###end
|
|
|
|
###end
|
|
|
|
|
|
|
|
|
|
|
|
def show_notification
|
|
|
|
def show_notification
|
|
|
|
@contest = Contest.find_by_id(params[:id])
|
|
|
|
@contest = Contest.find_by_id(params[:id])
|
|
|
|
respond_to do |format|
|
|
|
|
respond_to do |format|
|
|
|
|
format.html {
|
|
|
|
format.html {
|
|
|
@ -392,7 +457,7 @@ def show_notification
|
|
|
|
}
|
|
|
|
}
|
|
|
|
format.api
|
|
|
|
format.api
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def set_reward_project
|
|
|
|
def set_reward_project
|
|
|
@ -437,7 +502,11 @@ end
|
|
|
|
project = Project.find(params[:contest])
|
|
|
|
project = Project.find(params[:contest])
|
|
|
|
contest_message = params[:contest_for_save][:contest_message]
|
|
|
|
contest_message = params[:contest_for_save][:contest_message]
|
|
|
|
if ContestingProject.where("project_id = ? and contest_id = ?", project.id, @contest.id).size == 0
|
|
|
|
if ContestingProject.where("project_id = ? and contest_id = ?", project.id, @contest.id).size == 0
|
|
|
|
if ContestingProject.cerate_contesting(@contest.id, project.id, contest_message)
|
|
|
|
# modified by longjun, create 写错了
|
|
|
|
|
|
|
|
# if ContestingProject.cerate_contesting(@contest.id, project.id, contest_message)
|
|
|
|
|
|
|
|
if ContestingProject.create_contesting(@contest.id, project.id, contest_message)
|
|
|
|
|
|
|
|
# end longjun
|
|
|
|
|
|
|
|
|
|
|
|
flash.now[:notice] = l(:label_bidding_contest_succeed)
|
|
|
|
flash.now[:notice] = l(:label_bidding_contest_succeed)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
else
|
|
|
|
else
|
|
|
@ -633,9 +702,7 @@ end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def manage
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private
|
|
|
|
private
|
|
|
|
|
|
|
|
|
|
|
|