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
|