From acd5c28bb136eef547cef472b7c08ae6bfada3c5 Mon Sep 17 00:00:00 2001 From: cxt <853663049@qq.com> Date: Sat, 19 Oct 2019 16:28:17 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admins/competitions_controller.rb | 1 + app/helpers/application_helper.rb | 8 ++++++++ app/models/module_setting.rb | 2 ++ .../admins/competition_settings/show.html.erb | 7 +++++++ app/views/admins/competitions/index.html.erb | 19 +++++++++++++++++++ .../admins/competitions/shared/_td.html.erb | 2 +- .../20191019075105_create_module_settings.rb | 12 ++++++++++++ spec/models/module_setting_spec.rb | 5 +++++ 8 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 app/models/module_setting.rb create mode 100644 db/migrate/20191019075105_create_module_settings.rb create mode 100644 spec/models/module_setting_spec.rb diff --git a/app/controllers/admins/competitions_controller.rb b/app/controllers/admins/competitions_controller.rb index 3b9b63243..f501564ab 100644 --- a/app/controllers/admins/competitions_controller.rb +++ b/app/controllers/admins/competitions_controller.rb @@ -11,6 +11,7 @@ class Admins::CompetitionsController < Admins::BaseController ids = @competitions.map(&:id) @member_count_map = TeamMember.where(competition_id: ids).group(:competition_id).count + @competition_hot = ModuleSetting.exists?(module_type: "Competition", property: "hot") respond_to do |format| format.js format.html diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index dbdcaea40..1d684350c 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -142,6 +142,14 @@ module ApplicationHelper end end + # 主页banner图 + def banner_img(source_type) + if File.exist?(disk_filename(source_type, "banner")) + ctime = File.ctime(disk_filename(source_type, "banner")).to_i + File.join("images/avatars", ["#{source_type}", "banner"]) + "?t=#{ctime}" + end + end + def disk_filename(source_type,source_id,image_file=nil) File.join(storage_path, "#{source_type}", "#{source_id}") end diff --git a/app/models/module_setting.rb b/app/models/module_setting.rb new file mode 100644 index 000000000..36fc45e6f --- /dev/null +++ b/app/models/module_setting.rb @@ -0,0 +1,2 @@ +class ModuleSetting < ApplicationRecord +end diff --git a/app/views/admins/competition_settings/show.html.erb b/app/views/admins/competition_settings/show.html.erb index 8249f2737..6272687e4 100644 --- a/app/views/admins/competition_settings/show.html.erb +++ b/app/views/admins/competition_settings/show.html.erb @@ -5,5 +5,12 @@ end %> +
+
+ 基础设置 +
+
+
+
diff --git a/app/views/admins/competitions/index.html.erb b/app/views/admins/competitions/index.html.erb index b97e26f94..736f0514e 100644 --- a/app/views/admins/competitions/index.html.erb +++ b/app/views/admins/competitions/index.html.erb @@ -2,6 +2,25 @@ <% add_admin_breadcrumb('竞赛列表', admins_competitions_path) %> <% end %> +
+
+
+ <% imageExists = File.exist?(disk_filename("Competition", "banner")) %> + <% imageUrl = imageExists ? '/' + banner_img("Competition") + "?#{Time.now.to_i}" : '' %> + 竞赛主页banner + <%= image_tag(imageUrl, width: 150, height: 50, class: "preview-image competition-image-banner mr-1", data: { toggle: 'tooltip', title: '点击预览' }) %> + <%= javascript_void_link imageExists ? '重新上传' : '上传图片', class: 'action upload-competition-image-action', data: { source_id: "banner", source_type: 'Competition', toggle: 'modal', target: '.admin-upload-file-modal' } %> +
+ +
+ +
+
+
+
<%= render partial: 'admins/competitions/shared/list', locals: { competitions: @competitions } %>
diff --git a/app/views/admins/competitions/shared/_td.html.erb b/app/views/admins/competitions/shared/_td.html.erb index d05974c86..09dcf48b3 100644 --- a/app/views/admins/competitions/shared/_td.html.erb +++ b/app/views/admins/competitions/shared/_td.html.erb @@ -7,7 +7,7 @@ <%= @member_count_map&.fetch(competition.id, 0) || competition.team_members.count %> <%= competition.teacher_staff_num %> <%= competition.member_staff_num %> - + <% imageExists = File.exist?(disk_filename("Competition", competition.id)) %> <% imageUrl = imageExists ? '/' + url_to_avatar(competition) + "?#{Time.now.to_i}" : '' %> <%= image_tag(imageUrl, width: 60, height: 40, class: "preview-image competition-image-#{competition.id}", data: { toggle: 'tooltip', title: '点击预览' }, style: imageExists ? '' : 'display:none') %> diff --git a/db/migrate/20191019075105_create_module_settings.rb b/db/migrate/20191019075105_create_module_settings.rb new file mode 100644 index 000000000..85e3ddb9f --- /dev/null +++ b/db/migrate/20191019075105_create_module_settings.rb @@ -0,0 +1,12 @@ +class CreateModuleSettings < ActiveRecord::Migration[5.2] + def change + create_table :module_settings do |t| + t.string :module_type + t.string :property + + t.timestamps + end + + add_index :module_settings, :module_type + end +end diff --git a/spec/models/module_setting_spec.rb b/spec/models/module_setting_spec.rb new file mode 100644 index 000000000..ede893338 --- /dev/null +++ b/spec/models/module_setting_spec.rb @@ -0,0 +1,5 @@ +require 'rails_helper' + +RSpec.describe ModuleSetting, type: :model do + pending "add some examples to (or delete) #{__FILE__}" +end