@@ -153,7 +153,7 @@
})
});
- $.get('<%= course_statistics_college_path(@department) %>');
+ $.get('<%= course_statistics_college_path(@school) %>');
$(".count_student_test a").click(function(){
$(".count_student_test a").removeClass("active");
diff --git a/app/views/managements/_trial_authorization_passed_list.html.erb b/app/views/managements/_trial_authorization_passed_list.html.erb
index 2a07d59a..450058ee 100644
--- a/app/views/managements/_trial_authorization_passed_list.html.erb
+++ b/app/views/managements/_trial_authorization_passed_list.html.erb
@@ -17,7 +17,7 @@
<% if !user.try(:user_extensions).school_id.blank? && user.try(:user_extensions).try(:school) %>
- <%= user.try(:user_extensions).school.name %><%= user.try(:user_extensions).department ? ' - '+user.try(:user_extensions).department.name.to_s : '' %>
+ <%= user.try(:user_extensions).school.name %><%= user.try(:user_extensions).department ? ' - '+user.try(:user_extensions).department.name.to_s : '' %>
<% end %>
<% if user.try(:user_extensions) && user.try(:user_extensions).identity %>
<%= user.identity %>
From b49c1f57527f3a62b86c6a84068cf456e4782d63 Mon Sep 17 00:00:00 2001
From: daiao <358551898@qq.com>
Date: Tue, 30 Apr 2019 11:21:51 +0800
Subject: [PATCH 07/10] 1
---
app/controllers/challenges_controller.rb | 4 +++-
app/models/shixun.rb | 1 +
app/views/challenges/_content_list.html.erb | 2 +-
3 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/app/controllers/challenges_controller.rb b/app/controllers/challenges_controller.rb
index df1da6ca..76f7b080 100644
--- a/app/controllers/challenges_controller.rb
+++ b/app/controllers/challenges_controller.rb
@@ -2,7 +2,7 @@
class ChallengesController < ApplicationController
layout "base_shixun"
# 如要添加或修改before_filter时,请将handle_openi_request这个before_filter放至第一位
- before_filter :handle_openi_request, if: -> { user_login_and_from_openi? }, only: [:index]
+ #before_filter :handle_openi_request, if: -> { user_login_and_from_openi? }, only: [:index]
before_filter :check_authentication, :except => [:index]
before_filter :find_shixun, :only => [:index, :new, :create, :destroy, :challenge_build, :update_evaluation, :add_choose_question, :new_choose_question,
:choose_type_show, :edit_choose_question, :update_choose_question, :destroy_challenge_choose]
@@ -467,6 +467,8 @@ class ChallengesController < ApplicationController
render_404
return
else
+ logger.info("operable: ##{@shixun.operable?}")
+ logger.info("@shixun.status: ##{@shixun.status}")
if (@shixun.status == 0 && !User.current.manager_of_shixun?(@shixun)) || (!@shixun.operable? && !User.current.admin?)
render_403
return
diff --git a/app/models/shixun.rb b/app/models/shixun.rb
index c7d0460a..85b6a2d4 100644
--- a/app/models/shixun.rb
+++ b/app/models/shixun.rb
@@ -71,6 +71,7 @@ class Shixun < ActiveRecord::Base
# 可供使用的实训
def operable?
+ logger.info("####")
self.status != -1 && !self.hidden
end
diff --git a/app/views/challenges/_content_list.html.erb b/app/views/challenges/_content_list.html.erb
index bc7743de..dec91671 100644
--- a/app/views/challenges/_content_list.html.erb
+++ b/app/views/challenges/_content_list.html.erb
@@ -13,7 +13,7 @@
<% end %>
-
+
全部任务
From 731d8532e47d7d2f714de5c098a95599795ca300 Mon Sep 17 00:00:00 2001
From: daiao <358551898@qq.com>
Date: Tue, 30 Apr 2019 11:25:36 +0800
Subject: [PATCH 08/10] 1
---
app/controllers/challenges_controller.rb | 2 +-
app/views/challenges/_content_list.html.erb | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/app/controllers/challenges_controller.rb b/app/controllers/challenges_controller.rb
index 76f7b080..344976ab 100644
--- a/app/controllers/challenges_controller.rb
+++ b/app/controllers/challenges_controller.rb
@@ -2,7 +2,7 @@
class ChallengesController < ApplicationController
layout "base_shixun"
# 如要添加或修改before_filter时,请将handle_openi_request这个before_filter放至第一位
- #before_filter :handle_openi_request, if: -> { user_login_and_from_openi? }, only: [:index]
+ before_filter :handle_openi_request, if: -> { user_login_and_from_openi? }, only: [:index]
before_filter :check_authentication, :except => [:index]
before_filter :find_shixun, :only => [:index, :new, :create, :destroy, :challenge_build, :update_evaluation, :add_choose_question, :new_choose_question,
:choose_type_show, :edit_choose_question, :update_choose_question, :destroy_challenge_choose]
diff --git a/app/views/challenges/_content_list.html.erb b/app/views/challenges/_content_list.html.erb
index dec91671..bc7743de 100644
--- a/app/views/challenges/_content_list.html.erb
+++ b/app/views/challenges/_content_list.html.erb
@@ -13,7 +13,7 @@
<% end %>
-
+
全部任务
From 5f8341dcf5f8b65f8b094b248cd99730069afe36 Mon Sep 17 00:00:00 2001
From: daiao <358551898@qq.com>
Date: Tue, 30 Apr 2019 11:27:54 +0800
Subject: [PATCH 09/10] 1
---
app/models/shixun.rb | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/app/models/shixun.rb b/app/models/shixun.rb
index 85b6a2d4..439c0e44 100644
--- a/app/models/shixun.rb
+++ b/app/models/shixun.rb
@@ -55,8 +55,9 @@ class Shixun < ActiveRecord::Base
scope :visible, lambda{where(status: [2,3])}
- scope :min, lambda { select([:id, :name, :gpid, :modify_time, :reset_time, :language, :propaedeutics, :status, :identifier, :test_set_permission, :hide_code, :forbid_copy,
- :webssh, :user_id, :code_hidden, :task_pass, :exec_time, :multi_webssh]) }
+ scope :min, lambda { select([:id, :name, :gpid, :modify_time, :reset_time, :language, :propaedeutics, :status, :identifier,
+ :test_set_permission, :hide_code, :forbid_copy, :hidden, :webssh, :user_id, :code_hidden,
+ :task_pass, :exec_time, :multi_webssh]) }
scope :published, lambda{where(status: 2)}
scope :field_for_recommend, lambda{ select([:id, :name, :identifier, :myshixuns_count]) }
From 50d7ed2deb55a522f02451343d62995d91501c96 Mon Sep 17 00:00:00 2001
From: p31729568
Date: Tue, 30 Apr 2019 11:34:45 +0800
Subject: [PATCH 10/10] export school statistic data feature
---
Gemfile | 3 ++
.../managements/schools_controller.rb | 23 ++++++++++++-
app/models/homework_common.rb | 32 ++++++-------------
.../management/school_report_service.rb | 2 +-
app/views/layouts/base_management.html.erb | 4 ---
.../schools/_data_contrast_list.html.erb | 8 ++---
.../schools/_statistics_list.html.erb | 2 +-
.../managements/schools/statistics.html.erb | 26 +++++++++++++++
.../schools/statistics_xlsx.xlsx.axlsx | 20 ++++++++++++
config/routes.rb | 1 +
10 files changed, 88 insertions(+), 33 deletions(-)
create mode 100644 app/views/managements/schools/statistics_xlsx.xlsx.axlsx
diff --git a/Gemfile b/Gemfile
index b9e1b4e2..f4697bf5 100644
--- a/Gemfile
+++ b/Gemfile
@@ -62,6 +62,9 @@ gem 'elasticsearch-rails'
gem 'oauth2'
+# xlsx
+gem 'axlsx_rails', '0.3.0'
+
#Ruby 2.2+ has removed test/unit from the core library.
if RUBY_VERSION>='2.2'
gem 'test-unit', '~> 3.0'
diff --git a/app/controllers/managements/schools_controller.rb b/app/controllers/managements/schools_controller.rb
index 6dfe84fb..381c7493 100644
--- a/app/controllers/managements/schools_controller.rb
+++ b/app/controllers/managements/schools_controller.rb
@@ -7,8 +7,13 @@ class Managements::SchoolsController < Managements::BaseController
params[:sort_by] ||= :teacher_count
params[:sort_direction] ||= :desc
- schools = Management::SchoolReportService.new(params).call
+ schools = Management::SchoolReportService.new(params).call
@schools = paginateHelper schools
+
+ respond_to do |format|
+ format.html { load_statistic_total }
+ format.js
+ end
end
def yesterday_data
@@ -31,6 +36,13 @@ class Managements::SchoolsController < Managements::BaseController
raise '参数错误'
end
+ def statistics_xlsx
+ @schools = Management::SchoolReportService.new(params).call
+
+ filename = ["学校统计总表", params[:keyword], Time.zone.now.strftime('%Y%m%d%H%M%S')].join('-') << ".xlsx"
+ render xlsx: "statistics_xlsx", filename: filename
+ end
+
private
def set_navigation_bar
@menu_type = 1
@@ -41,4 +53,13 @@ class Managements::SchoolsController < Managements::BaseController
[I18n.t("school_daily_report.#{column}"), column]
end
end
+
+ def load_statistic_total
+ @teacher_total = User.teacher.count
+ @student_total = User.student.count
+ @course_total = Course.count
+ @active_course_total = Course.where(is_end: false).count
+ @shixun_homework_total = HomeworkCommon.where(homework_type: 4).count
+ @other_homework_total = HomeworkCommon.where(homework_type: [1, 3]).count
+ end
end
diff --git a/app/models/homework_common.rb b/app/models/homework_common.rb
index 0b7aa420..abe09e08 100644
--- a/app/models/homework_common.rb
+++ b/app/models/homework_common.rb
@@ -63,33 +63,21 @@ class HomeworkCommon < ActiveRecord::Base
#作业类型
def homework_type_ch
- type = self.homework_type
- case type
- when 1
- type = "普通"
- when 2
- type = "编程"
- when 3
- type = "分组"
- when 4
- type = "实训"
+ case homework_type
+ when 1 then '普通'
+ when 2 then '编程'
+ when 3 then '分组'
+ when 4 then '实训'
end
- type
end
def homework_type_module
- type = self.homework_type
- case type
- when 1
- type = "common_homework"
- when 2
- type = "code_homework"
- when 3
- type = "group_homework"
- when 4
- type = "shixun_homework"
+ case homework_type
+ when 1 then 'common_homework'
+ when 2 then 'code_homework'
+ when 3 then 'group_homework'
+ when 4 then 'shixun_homework'
end
- type
end
def act_as_activity
diff --git a/app/services/management/school_report_service.rb b/app/services/management/school_report_service.rb
index 5a962bd5..e9ee1bae 100644
--- a/app/services/management/school_report_service.rb
+++ b/app/services/management/school_report_service.rb
@@ -39,7 +39,7 @@ class Management::SchoolReportService
(
SELECT COUNT(*) FROM homework_commons hc
LEFT JOIN courses ON courses.id = hc.course_id
- WHERE courses.school_id = schools.id
+ WHERE courses.school_id = schools.id AND hc.homework_type = 4
) homework_count,
(
SELECT COUNT(*) FROM homework_commons hc
diff --git a/app/views/layouts/base_management.html.erb b/app/views/layouts/base_management.html.erb
index 9d1d77c8..d357bd09 100644
--- a/app/views/layouts/base_management.html.erb
+++ b/app/views/layouts/base_management.html.erb
@@ -44,10 +44,6 @@
<%= link_to "课堂列表", classroom_classment_managements_path %>
<%= link_to "实训作业", shixun_task_managements_path%>
<%= link_to "项目列表", project_list_managements_path%>
-
-
-
-