From 852f131e3b7e66ac9bbd093fa4af9362ecc7725a Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Wed, 16 Oct 2019 10:40:49 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AB=9E=E8=B5=9B=E7=AE=A1=E7=90=86=E5=91=98?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admins/competition_settings_controller.rb | 20 ++++++++++++ .../admins/competitions_controller.rb | 31 +++++++++++++++++++ app/models/competition.rb | 23 ++++++++++++++ .../admins/competition_settings/show.html.erb | 0 .../admins/competitions/enroll_list.html.erb | 0 app/views/admins/competitions/index.html.erb | 4 ++- .../admins/competitions/online_switch.js.erb | 0 app/views/admins/competitions/publish.js.erb | 0 .../admins/competitions/shared/_list.html.erb | 30 ++++++++++++++++++ .../admins/competitions/shared/_td.html.erb | 27 ++++++++++++++++ .../admins/competitions/unpublish.js.erb | 0 config/routes.rb | 10 +++++- 12 files changed, 143 insertions(+), 2 deletions(-) create mode 100644 app/controllers/admins/competition_settings_controller.rb create mode 100644 app/views/admins/competition_settings/show.html.erb create mode 100644 app/views/admins/competitions/enroll_list.html.erb create mode 100644 app/views/admins/competitions/online_switch.js.erb create mode 100644 app/views/admins/competitions/publish.js.erb create mode 100644 app/views/admins/competitions/shared/_list.html.erb create mode 100644 app/views/admins/competitions/shared/_td.html.erb create mode 100644 app/views/admins/competitions/unpublish.js.erb diff --git a/app/controllers/admins/competition_settings_controller.rb b/app/controllers/admins/competition_settings_controller.rb new file mode 100644 index 000000000..390ad17e8 --- /dev/null +++ b/app/controllers/admins/competition_settings_controller.rb @@ -0,0 +1,20 @@ +class Admins::CompetitionSettingsController < Admins::BaseController + def show + @competition = current_competition + end + + def update + Admins::SaveLaboratorySettingService.call(current_competition, form_params) + render_ok + end + + private + + def current_competition + @_current_competition ||= Competition.find(params[:competition_id]) + end + + def form_params + params.permit(:identifier, :name, :nav_logo, :login_logo, :tab_logo, :footer, navbar: %i[name link hidden]) + end +end \ No newline at end of file diff --git a/app/controllers/admins/competitions_controller.rb b/app/controllers/admins/competitions_controller.rb index 3d6bef819..3b9b63243 100644 --- a/app/controllers/admins/competitions_controller.rb +++ b/app/controllers/admins/competitions_controller.rb @@ -1,4 +1,6 @@ class Admins::CompetitionsController < Admins::BaseController + include CustomSortable + before_action :find_competition, except: [:index] def index params[:sort_by] = params[:sort_by].presence || 'created_on' @@ -6,10 +8,39 @@ class Admins::CompetitionsController < Admins::BaseController @competitions = custom_sort Competition.all, params[:sort_by], params[:sort_direction] @params_page = params[:page] || 1 @competitions = paginate @competitions + ids = @competitions.map(&:id) + @member_count_map = TeamMember.where(competition_id: ids).group(:competition_id).count respond_to do |format| format.js format.html end end + + def publish + @competition.update_attributes!(:published_at, Time.now) + end + + def unpublish + @competition.update_attributes!(:published_at, nil) + end + + def online_switch + if @competition.status + @competition.update_attributes!(status: false) + else + @competition.update_attributes!(status: true, online_time: Time.now) + end + end + + def enroll_list + + end + + private + + def find_competition + @competition = Competition.find_by(id: params[:id]) + end + end \ No newline at end of file diff --git a/app/models/competition.rb b/app/models/competition.rb index 024478ad6..9055adefc 100644 --- a/app/models/competition.rb +++ b/app/models/competition.rb @@ -18,6 +18,29 @@ class Competition < ApplicationRecord after_create :create_competition_modules + def mode_type + case mode + when 1 + "课堂" + when 2 + "实训" + when 3 + "教学" + when 4 + "托管" + else + "--" + end + end + + def teacher_staff_num + teacher_staff ? "#{teacher_staff.minimum}~#{teacher_staff.maximum}" : "--" + end + + def member_staff_num + member_staff ? "#{member_staff.minimum}~#{member_staff.maximum}" : "--" + end + # 是否上架 def published? status? diff --git a/app/views/admins/competition_settings/show.html.erb b/app/views/admins/competition_settings/show.html.erb new file mode 100644 index 000000000..e69de29bb diff --git a/app/views/admins/competitions/enroll_list.html.erb b/app/views/admins/competitions/enroll_list.html.erb new file mode 100644 index 000000000..e69de29bb diff --git a/app/views/admins/competitions/index.html.erb b/app/views/admins/competitions/index.html.erb index 8fa238181..b97e26f94 100644 --- a/app/views/admins/competitions/index.html.erb +++ b/app/views/admins/competitions/index.html.erb @@ -3,5 +3,7 @@ <% end %>
序号 | +竞赛主标题 | +竞赛副标题 | +模式 | +报名人数 | +指导老师 | +参赛者 | +主题图片796*397 | +创建时间 | ++ 操作 + | + + + <% if competitions.present? %> + <% competitions.each_with_index do |competition, index| %> +
---|