From 1cbd20b57add58f719a7cefbf7f07af8320378d1 Mon Sep 17 00:00:00 2001 From: SylorHuang Date: Tue, 2 Jul 2019 13:58:43 +0800 Subject: [PATCH 01/17] fix bug --- app/controllers/polls_controller.rb | 2 ++ app/models/poll.rb | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/controllers/polls_controller.rb b/app/controllers/polls_controller.rb index 24aa54309..e1ea02016 100644 --- a/app/controllers/polls_controller.rb +++ b/app/controllers/polls_controller.rb @@ -961,6 +961,8 @@ class PollsController < ApplicationController @poll_users_list = @poll.all_poll_users(current_user.id) #该老师分班的全部学生 get_poll_answers(@poll_users_list) logger.info("#######F__________@poll_users_list________________####{@poll_users_list.pluck(:id)}") + logger.info("#######F__________@users_ids________________####{PollUser.where(id:@poll_users_list.pluck(:id)).pluck(:user_id)}") + if @poll_list_status == 1 @poll_course_groups =[] diff --git a/app/models/poll.rb b/app/models/poll.rb index f72239ba7..7e71505ba 100644 --- a/app/models/poll.rb +++ b/app/models/poll.rb @@ -52,12 +52,12 @@ class Poll < ApplicationRecord # 统一设置,为当前老师有权限的分班学生,分班设置,也为当前老师有权限的分班的学生 def all_poll_users(user_id) - poll_users = self.poll_users + poll_all_users = poll_users group_ids = poll_published_ids(user_id) if group_ids.present? - poll_users = poll_users.where(user_id: course.students.where(course_group_id: group_ids).pluck(:user_id)) + poll_all_users = poll_all_users.where(user_id: course.students.where(course_group_id: group_ids).pluck(:user_id).uniq) end - poll_users + poll_all_users end #当前用户已发布的班级id和试卷分组已发布的班级id的交集 From 3d6ab9da88fe236d4aff0d344789e15b4c65efec Mon Sep 17 00:00:00 2001 From: SylorHuang Date: Tue, 2 Jul 2019 14:02:58 +0800 Subject: [PATCH 02/17] fix bug --- app/controllers/polls_controller.rb | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/app/controllers/polls_controller.rb b/app/controllers/polls_controller.rb index e1ea02016..810bf55c1 100644 --- a/app/controllers/polls_controller.rb +++ b/app/controllers/polls_controller.rb @@ -1029,15 +1029,20 @@ class PollsController < ApplicationController end #搜索 - if search_content.present? - @poll_users_list = @poll_users_list.joins(user: :user_extension).where("CONCAT(lastname, firstname) like ? OR student_id like ?", "%#{search_content}%", "%#{search_content}%") - end + # if search_content.present? + # @poll_users_list = @poll_users_list.joins(user: :user_extension).where("CONCAT(lastname, firstname) like ? OR student_id like ?", "%#{search_content}%", "%#{search_content}%") + # end + + logger.info("#######F_______@poll_users_list_last___@users_ids________________####{@poll_users_list.pluck(:id)}") + @poll_users_size = @poll_users_list.count # 分页 @page = params[:page] || 1 @limit = params[:limit] || 20 @poll_users_list = @poll_users_list.page(@page).per(@limit) + logger.info("#######F_______@poll_users_list_after_page___@users_ids________________####{@poll_users_list.pluck(:id)}") + else @poll_users_list = [] @poll_users_size = 0 From 8269367f4737ef49753bfebcb81e4680718cacc6 Mon Sep 17 00:00:00 2001 From: SylorHuang Date: Tue, 2 Jul 2019 14:21:16 +0800 Subject: [PATCH 03/17] fix bug --- app/controllers/polls_controller.rb | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/app/controllers/polls_controller.rb b/app/controllers/polls_controller.rb index 810bf55c1..7ac288d7d 100644 --- a/app/controllers/polls_controller.rb +++ b/app/controllers/polls_controller.rb @@ -1029,20 +1029,19 @@ class PollsController < ApplicationController end #搜索 - # if search_content.present? - # @poll_users_list = @poll_users_list.joins(user: :user_extension).where("CONCAT(lastname, firstname) like ? OR student_id like ?", "%#{search_content}%", "%#{search_content}%") - # end + if search_content.present? + @poll_users_list = @poll_users_list.joins(user: :user_extension).where("CONCAT(lastname, firstname) like ? OR student_id like ?", "%#{search_content}%", "%#{search_content}%") + end logger.info("#######F_______@poll_users_list_last___@users_ids________________####{@poll_users_list.pluck(:id)}") @poll_users_size = @poll_users_list.count # 分页 - @page = params[:page] || 1 - @limit = params[:limit] || 20 - @poll_users_list = @poll_users_list.page(@page).per(@limit) + page = params[:page] || 1 + limit = params[:limit] || 20 + @poll_users_list = @poll_users_list.page(page).per(limit) logger.info("#######F_______@poll_users_list_after_page___@users_ids________________####{@poll_users_list.pluck(:id)}") - else @poll_users_list = [] @poll_users_size = 0 From 910c0b13b3fe2e0fae05258c94426b4229a91671 Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Tue, 2 Jul 2019 14:23:20 +0800 Subject: [PATCH 04/17] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=AE=9E=E8=AE=AD?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/shixuns_controller.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/controllers/shixuns_controller.rb b/app/controllers/shixuns_controller.rb index 767129026..65d671856 100644 --- a/app/controllers/shixuns_controller.rb +++ b/app/controllers/shixuns_controller.rb @@ -387,8 +387,6 @@ class ShixunsController < ApplicationController ShixunMirrorRepository.create(:shixun_id => @shixun.id, :mirror_repository_id => mirror) end end - logger.info("#######shixun_params: ##{shixun_params}") - logger.info("#######shixun_info_params: ##{shixun_info_params}") @shixun.update_attributes(shixun_params) @shixun.shixun_info.update_attributes(shixun_info_params) @shixun.shixun_schools.delete_all @@ -407,6 +405,8 @@ class ShixunsController < ApplicationController # 超级管理员和运营人员才能保存 中间层服务器pod信息的配置 if current_user.admin? || current_user.business? @shixun.shixun_service_configs.destroy_all + ActionController::Parameters.permit_all_parameters = true + logger.info("##--;;;;---#{params[:shixun_service_configs]}") params[:shixun_service_configs].each do |config| @shixun.shixun_service_configs.create!(config) end @@ -738,6 +738,7 @@ private :task_pass, :multi_webssh, :opening_time, :mirror_script_id, :code_hidden, :hide_code, :forbid_copy) end + def shixun_info_params raise("实训描述不能为空") if params[:shixun_info][:description].blank? raise("评测脚本不能为空") if params[:shixun_info][:evaluate_script].blank? From 857f2dcb3e169d27fcf804e919b0f3ac66d2ee55 Mon Sep 17 00:00:00 2001 From: SylorHuang Date: Tue, 2 Jul 2019 14:43:56 +0800 Subject: [PATCH 05/17] fix bug --- app/controllers/exercises_controller.rb | 2 +- app/controllers/polls_controller.rb | 11 +++-------- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index 2761523a6..a793c673c 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -1238,7 +1238,7 @@ class ExercisesController < ApplicationController @teacher_unreview_count = 0 #筛选/分类,排序 order = params[:order] - if @exercise_users_list.present? && @exercise_users_list.count > 0 + if @exercise_users_list.present? && @exercise_users_list.size > 0 teacher_reviews = @exercise_users_list.exercise_review teacher_unreviews = @exercise_users_list.exercise_unreview @teacher_review_count = teacher_reviews.count #已评阅 diff --git a/app/controllers/polls_controller.rb b/app/controllers/polls_controller.rb index 7ac288d7d..6a8edee71 100644 --- a/app/controllers/polls_controller.rb +++ b/app/controllers/polls_controller.rb @@ -953,17 +953,12 @@ class PollsController < ApplicationController @poll_publish_count = get_user_permission_course(poll_ids,2).count @poll_unpublish_count = get_user_permission_course(poll_ids,1).count @course_all_members = @course.students - logger.info("#######F___________poll_user_ids________________####{@poll.poll_users.pluck(:id)}") @poll_group_counts = @course.course_groups_count if @user_course_identity < Course::STUDENT #当前为老师,而且老师只能查看自己班级的/课堂的问卷 @poll_current_user_status = 0 @poll_users_list = @poll.all_poll_users(current_user.id) #该老师分班的全部学生 get_poll_answers(@poll_users_list) - logger.info("#######F__________@poll_users_list________________####{@poll_users_list.pluck(:id)}") - logger.info("#######F__________@users_ids________________####{PollUser.where(id:@poll_users_list.pluck(:id)).pluck(:user_id)}") - - if @poll_list_status == 1 @poll_course_groups =[] else @@ -1033,15 +1028,15 @@ class PollsController < ApplicationController @poll_users_list = @poll_users_list.joins(user: :user_extension).where("CONCAT(lastname, firstname) like ? OR student_id like ?", "%#{search_content}%", "%#{search_content}%") end - logger.info("#######F_______@poll_users_list_last___@users_ids________________####{@poll_users_list.pluck(:id)}") - + logger.info("#######F_______@poll_users_list_last___@users_ids________________####{@poll_users_list.pluck(:user_id)}") @poll_users_size = @poll_users_list.count + # 分页 page = params[:page] || 1 limit = params[:limit] || 20 @poll_users_list = @poll_users_list.page(page).per(limit) - logger.info("#######F_______@poll_users_list_after_page___@users_ids________________####{@poll_users_list.pluck(:id)}") + logger.info("#######F_______@poll_users_list_after_page___@users_ids________________####{@poll_users_list.pluck(:user_id)}") else @poll_users_list = [] @poll_users_size = 0 From 23333a8186e50f1ab51d0fc17fd8de027f5cdd80 Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Tue, 2 Jul 2019 14:55:59 +0800 Subject: [PATCH 06/17] =?UTF-8?q?=E6=89=93=E5=8D=B0=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/polls_controller.rb | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/app/controllers/polls_controller.rb b/app/controllers/polls_controller.rb index 6a8edee71..d928d1df5 100644 --- a/app/controllers/polls_controller.rb +++ b/app/controllers/polls_controller.rb @@ -1005,12 +1005,6 @@ class PollsController < ApplicationController if @poll_users_list.present? && @poll_users_list.count > 0 - if order == "student_id" - @poll_users_list = @poll_users_list.joins(user: [:user_extension]).order("user_extensions.student_id DESC") - else - @poll_users_list = @poll_users_list.order("end_at DESC") - end - #答题状态的选择 if choose_type.present? @poll_users_list = @poll_users_list.commit_by_status(choose_type) @@ -1027,8 +1021,12 @@ class PollsController < ApplicationController if search_content.present? @poll_users_list = @poll_users_list.joins(user: :user_extension).where("CONCAT(lastname, firstname) like ? OR student_id like ?", "%#{search_content}%", "%#{search_content}%") end - - logger.info("#######F_______@poll_users_list_last___@users_ids________________####{@poll_users_list.pluck(:user_id)}") + if order == "student_id" + @poll_users_list = @poll_users_list.joins(user: :user_extension).order("user_extensions.student_id DESC") + else + @poll_users_list = @poll_users_list.order("end_at DESC") + end + logger.info("#######user_id: ####{@poll_users_list.pluck(:user_id).sort}") @poll_users_size = @poll_users_list.count @@ -1036,7 +1034,7 @@ class PollsController < ApplicationController page = params[:page] || 1 limit = params[:limit] || 20 @poll_users_list = @poll_users_list.page(page).per(limit) - logger.info("#######F_______@poll_users_list_after_page___@users_ids________________####{@poll_users_list.pluck(:user_id)}") + logger.info("#####page_user: #{@poll_users_list.pluck(:user_id).sort}") else @poll_users_list = [] @poll_users_size = 0 From 91d875c36b9bbab0a02b12cbd900b297f2cb861d Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Tue, 2 Jul 2019 15:01:20 +0800 Subject: [PATCH 07/17] =?UTF-8?q?=E6=89=93=E5=8D=B0=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/polls_controller.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/controllers/polls_controller.rb b/app/controllers/polls_controller.rb index d928d1df5..50784ee74 100644 --- a/app/controllers/polls_controller.rb +++ b/app/controllers/polls_controller.rb @@ -1024,9 +1024,9 @@ class PollsController < ApplicationController if order == "student_id" @poll_users_list = @poll_users_list.joins(user: :user_extension).order("user_extensions.student_id DESC") else - @poll_users_list = @poll_users_list.order("end_at DESC") + @poll_users_list = @poll_users_list.joins(user: :user_extension).order("end_at DESC") end - logger.info("#######user_id: ####{@poll_users_list.pluck(:user_id).sort}") + logger.info("#######user_id: ####{@poll_users_list.pluck(:id, :user_id)}") @poll_users_size = @poll_users_list.count @@ -1034,7 +1034,7 @@ class PollsController < ApplicationController page = params[:page] || 1 limit = params[:limit] || 20 @poll_users_list = @poll_users_list.page(page).per(limit) - logger.info("#####page_user: #{@poll_users_list.pluck(:user_id).sort}") + logger.info("#####page_user: #{@poll_users_list.pluck(:id, :user_id)}") else @poll_users_list = [] @poll_users_size = 0 From 2b2257b181dc5dd2ce7e92547565f91da74b1112 Mon Sep 17 00:00:00 2001 From: SylorHuang Date: Tue, 2 Jul 2019 15:16:24 +0800 Subject: [PATCH 08/17] fix bug --- app/controllers/homework_commons_controller.rb | 3 ++- app/controllers/polls_controller.rb | 11 ++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/app/controllers/homework_commons_controller.rb b/app/controllers/homework_commons_controller.rb index af1dffe71..2478633a1 100644 --- a/app/controllers/homework_commons_controller.rb +++ b/app/controllers/homework_commons_controller.rb @@ -186,7 +186,7 @@ class HomeworkCommonsController < ApplicationController end @work_count = @student_works.size - @work_excel = @student_works + @work_excel = @student_works.includes(:student_works_scores) @students = @course.students # 分页参数 @@ -207,6 +207,7 @@ class HomeworkCommonsController < ApplicationController tip_exception(403, "无权限操作") else if @work_excel.present? + @homework = @homework.includes() student_work_to_xlsx(@work_excel,@homework) exercise_export_name = current_user.real_name + "_" + @course.name + "_" + @homework.name + "_" + Time.now.strftime('%Y%m%d_%H%M%S') diff --git a/app/controllers/polls_controller.rb b/app/controllers/polls_controller.rb index 6a8edee71..81e6cedaa 100644 --- a/app/controllers/polls_controller.rb +++ b/app/controllers/polls_controller.rb @@ -1005,11 +1005,6 @@ class PollsController < ApplicationController if @poll_users_list.present? && @poll_users_list.count > 0 - if order == "student_id" - @poll_users_list = @poll_users_list.joins(user: [:user_extension]).order("user_extensions.student_id DESC") - else - @poll_users_list = @poll_users_list.order("end_at DESC") - end #答题状态的选择 if choose_type.present? @@ -1028,6 +1023,12 @@ class PollsController < ApplicationController @poll_users_list = @poll_users_list.joins(user: :user_extension).where("CONCAT(lastname, firstname) like ? OR student_id like ?", "%#{search_content}%", "%#{search_content}%") end + if order == "student_id" + @poll_users_list = @poll_users_list.joins(user: :user_extension).order("user_extensions.student_id DESC") + else + @poll_users_list = @poll_users_list.order("end_at DESC") + end + logger.info("#######F_______@poll_users_list_last___@users_ids________________####{@poll_users_list.pluck(:user_id)}") @poll_users_size = @poll_users_list.count From 925ff7fd09d2319b8d71032e2879e852c218467a Mon Sep 17 00:00:00 2001 From: SylorHuang Date: Tue, 2 Jul 2019 15:21:10 +0800 Subject: [PATCH 09/17] fix bug --- app/controllers/polls_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/polls_controller.rb b/app/controllers/polls_controller.rb index a7e039944..84af9b584 100644 --- a/app/controllers/polls_controller.rb +++ b/app/controllers/polls_controller.rb @@ -1025,7 +1025,7 @@ class PollsController < ApplicationController if order == "student_id" @poll_users_list = @poll_users_list.joins(user: :user_extension).order("user_extensions.student_id DESC") else - @poll_users_list = @poll_users_list.order("end_at DESC") + @poll_users_list = @poll_users_list.joins(user: :user_extension).order("end_at DESC") end logger.info("#######F_______@poll_users_list_last___@users_ids________________####{@poll_users_list.pluck(:user_id)}") From bf8e88c39396931b0c2cc9cfc012403ecde67ea6 Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Tue, 2 Jul 2019 15:28:57 +0800 Subject: [PATCH 10/17] =?UTF-8?q?=E5=8F=82=E6=95=B0=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/shixuns_controller.rb | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/app/controllers/shixuns_controller.rb b/app/controllers/shixuns_controller.rb index 65d671856..3a4592b2f 100644 --- a/app/controllers/shixuns_controller.rb +++ b/app/controllers/shixuns_controller.rb @@ -405,11 +405,7 @@ class ShixunsController < ApplicationController # 超级管理员和运营人员才能保存 中间层服务器pod信息的配置 if current_user.admin? || current_user.business? @shixun.shixun_service_configs.destroy_all - ActionController::Parameters.permit_all_parameters = true - logger.info("##--;;;;---#{params[:shixun_service_configs]}") - params[:shixun_service_configs].each do |config| - @shixun.shixun_service_configs.create!(config) - end + @shixun.shixun_service_configs.create!(service_config_params[:shixun_service_configs]) end rescue Exception => e uid_logger_error(e.message) @@ -745,6 +741,11 @@ private params.require(:shixun_info).permit(:description, :evaluate_script) end + + def service_config_params + params.permit(shixun_service_configs: [:cpu_limit, :lower_cpu_limit, :memory_limit, :request_limit, :mirror_repository_id]) + end + def find_shixun @shixun = Shixun.find_by_identifier(params[:identifier]) if @shixun.blank? From c22ec7dff21c85adf3d6f11fcbbeb35213f5b851 Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Tue, 2 Jul 2019 16:10:38 +0800 Subject: [PATCH 11/17] =?UTF-8?q?=E9=A6=96=E9=A1=B5=E7=AD=9B=E9=80=89?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/repertoire.rb | 4 ++-- app/models/sub_repertoire.rb | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/models/repertoire.rb b/app/models/repertoire.rb index 400cef494..5c6ffebff 100644 --- a/app/models/repertoire.rb +++ b/app/models/repertoire.rb @@ -1,6 +1,6 @@ class Repertoire < ApplicationRecord - - has_many :sub_repertoires + default_scope :order => 'updated_at desc' + has_many :sub_repertoires, :dependent => :destroy, :order => "sub_repertoires.updated_at desc" has_many :tag_repertoires, through: :sub_repertoires end diff --git a/app/models/sub_repertoire.rb b/app/models/sub_repertoire.rb index d94db66c7..aa99494b1 100644 --- a/app/models/sub_repertoire.rb +++ b/app/models/sub_repertoire.rb @@ -1,3 +1,5 @@ class SubRepertoire < ApplicationRecord - has_many :tag_repertoires + belongs_to :repertoire + has_many :tag_repertoires, :dependent => :destroy, :order => "tag_repertoires.updated_at desc" + end From a53c20e02892d01ae72ffd514024ce879ed9a7f3 Mon Sep 17 00:00:00 2001 From: SylorHuang Date: Tue, 2 Jul 2019 16:13:35 +0800 Subject: [PATCH 12/17] fix bug --- app/controllers/exercises_controller.rb | 31 +++++++++++-------- .../homework_commons_controller.rb | 4 +-- app/controllers/polls_controller.rb | 30 ++++++++++++------ app/helpers/export_helper.rb | 4 +-- app/views/polls/commit_result.xlsx.axlsx | 8 ++--- 5 files changed, 46 insertions(+), 31 deletions(-) diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index a793c673c..18b8fbb2f 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -1173,6 +1173,7 @@ class ExercisesController < ApplicationController ActiveRecord::Base.transaction do begin @current_user_id = current_user.id + @exercise = @exercise.includes(:exercise_questions) exercise_ids = [@exercise.id] @exercise_status = @exercise.get_exercise_status(current_user.id) @course_all_members = @course.students @@ -1254,14 +1255,6 @@ class ExercisesController < ApplicationController end end - if order == "student_id" - @exercise_users_list = @exercise_users_list.joins(user: [:user_extension]).order("user_extensions.student_id DESC") - elsif order == "score" - @exercise_users_list = @exercise_users_list.order("#{order} DESC") - else - @exercise_users_list = @exercise_users_list.order("end_at DESC, start_at DESC") - end - #答题状态的选择 if params[:commit_status].present? choose_type = params[:commit_status] @@ -1282,9 +1275,17 @@ class ExercisesController < ApplicationController @exercise_users_list = @exercise_users_list.joins(user: :user_extension).where("CONCAT(lastname, firstname) like ? OR student_id like ?", "%#{params[:search]}%", "%#{params[:search]}%") end + if order == "student_id" + @exercise_users_list = @exercise_users_list.joins(user: :user_extension).order("user_extensions.student_id DESC") + elsif order == "score" + @exercise_users_list = @exercise_users_list.joins(user: :user_extension).order("#{order} DESC") + else + @exercise_users_list = @exercise_users_list.order("end_at DESC, start_at DESC") + end + @export_ex_users = @exercise_users_list - @exercise_users_size = @exercise_users_list.count + @exercise_users_size = @exercise_users_list.size # 分页 @page = params[:page] || 1 @@ -1296,10 +1297,14 @@ class ExercisesController < ApplicationController if @user_course_identity > Course::ASSISTANT_PROFESSOR tip_exception(403,"无权限操作") else - get_export_users(@exercise,@course,@export_ex_users) - exercise_export_name = - "#{current_user.real_name}_#{@course.name}_#{@exercise.exercise_name}_#{Time.now.strftime('%Y%m%d_%H%M%S')}" - render xlsx: "#{exercise_export_name.strip.first(30)}",template: "exercises/exercise_lists.xlsx.axlsx",locals: {table_columns:@table_columns,exercise_users:@user_columns} + if @exercise_users_size.size > 0 + normal_status(-1,"暂无用户提交") + else + get_export_users(@exercise,@course,@export_ex_users) + exercise_export_name = + "#{current_user.real_name}_#{@course.name}_#{@exercise.exercise_name}_#{Time.now.strftime('%Y%m%d_%H%M%S')}" + render xlsx: "#{exercise_export_name.strip.first(30)}",template: "exercises/exercise_lists.xlsx.axlsx",locals: {table_columns:@table_columns,exercise_users:@user_columns} + end end } end diff --git a/app/controllers/homework_commons_controller.rb b/app/controllers/homework_commons_controller.rb index 2478633a1..dc4d6b117 100644 --- a/app/controllers/homework_commons_controller.rb +++ b/app/controllers/homework_commons_controller.rb @@ -186,7 +186,7 @@ class HomeworkCommonsController < ApplicationController end @work_count = @student_works.size - @work_excel = @student_works.includes(:student_works_scores) + @work_excel = @student_works.includes(:student_works_scores, user: :user_extension, myshixun: :games) @students = @course.students # 分页参数 @@ -207,7 +207,7 @@ class HomeworkCommonsController < ApplicationController tip_exception(403, "无权限操作") else if @work_excel.present? - @homework = @homework.includes() + @homework = @homework.includes(:shixuns,:homework_detail_manual) student_work_to_xlsx(@work_excel,@homework) exercise_export_name = current_user.real_name + "_" + @course.name + "_" + @homework.name + "_" + Time.now.strftime('%Y%m%d_%H%M%S') diff --git a/app/controllers/polls_controller.rb b/app/controllers/polls_controller.rb index 84af9b584..151a2a098 100644 --- a/app/controllers/polls_controller.rb +++ b/app/controllers/polls_controller.rb @@ -18,7 +18,7 @@ class PollsController < ApplicationController before_action :check_user_id_start_answer,only: [:start_answer] before_action :check_poll_question_complete,only: [:commit_poll] #问卷提交前来判断问题是否完成 before_action :check_poll_commit_result,only: [:commit_result] - before_action :get_all_polls_commit, only: [:commit_result] #该问卷全部的用户 + # before_action :get_all_polls_commit, only: [:commit_result] #该问卷全部的用户 before_action :get_left_banner_id, only:[:common_header,:start_answer,:new,:edit,:index] include PollsHelper @@ -920,19 +920,32 @@ class PollsController < ApplicationController def commit_result ActiveRecord::Base.transaction do begin + # @poll_questions = @poll.poll_questions.order("question_number ASC") + # 全部页面,需返回 + # @poll_questions_count = @poll_questions.size # 分页 + @poll = @poll.includes(:poll_users,user: :user_extension,) + @poll_users = @poll.poll_users + @poll_commit_ids = @poll_users.commit_by_status(1).pluck(:user_id) #问卷提交用户的id @page = params[:page] || 1 @limit = params[:limit] || 10 @poll_export_questions = @poll_questions.order("question_number ASC") + @poll_questions = @poll_questions.page(@page).per(@limit) respond_to do |format| format.json format.xlsx{ if @user_course_identity > Course::ASSISTANT_PROFESSOR tip_exception(403,"无权限操作") + elsif @poll_export_questions.size == 0 || (@poll_users.where("commit_status = ?",1).size == 0) + normal_status(-1,"暂时没有提交的用户") else - polls_export_name = current_user.real_name + "_" + @course.name + "_" + @poll.polls_name + "_" + Time.now.strftime('%Y%m%d_%H%M%S') - render xlsx: "#{polls_export_name.strip.first(30)}",template: "polls/commit_result.xlsx.axlsx",locals: {poll_questions:@poll_export_questions} + polls_export_name = "#{current_user.real_name}_#{@course.name}_#{@poll.polls_name}_#{Time.now.strftime('%Y%m%d_%H%M%S')}" + render xlsx: "#{polls_export_name.strip.first(30)}",template: "polls/commit_result.xlsx.axlsx",locals: { + poll_questions:@poll_export_questions, + poll:@poll, + poll_users: @poll_users, + poll_commit_ids:@poll_commit_ids} end } end @@ -1028,15 +1041,12 @@ class PollsController < ApplicationController @poll_users_list = @poll_users_list.joins(user: :user_extension).order("end_at DESC") end - logger.info("#######F_______@poll_users_list_last___@users_ids________________####{@poll_users_list.pluck(:user_id)}") - @poll_users_size = @poll_users_list.count # 分页 page = params[:page] || 1 limit = params[:limit] || 20 @poll_users_list = @poll_users_list.page(page).per(limit) - logger.info("#####page_user: #{@poll_users_list.pluck(:id, :user_id)}") else @poll_users_list = [] @poll_users_size = 0 @@ -1146,10 +1156,10 @@ class PollsController < ApplicationController def get_questions_count @poll_questions = @poll.poll_questions&.includes(:poll_answers,:poll_votes).order("question_number ASC") - @poll_questions_count = @poll_questions.count # 全部的题目数 - @poll_question_singles = @poll_questions.ques_count(1).all.count # 单选题 - @poll_question_doubles = @poll_questions.ques_count(2).all.count # 多选题 - @poll_question_mains = @poll_questions.ques_count(3).all.count #主观题 + @poll_questions_count = @poll_questions.size # 全部的题目数 + @poll_question_singles = @poll_questions.ques_count(1).all.size # 单选题 + @poll_question_doubles = @poll_questions.ques_count(2).all.size # 多选题 + @poll_question_mains = @poll_questions.ques_count(3).all.size #主观题 end def check_poll_question_complete #commit_poll 的权限 diff --git a/app/helpers/export_helper.rb b/app/helpers/export_helper.rb index b6720c66c..211b31660 100644 --- a/app/helpers/export_helper.rb +++ b/app/helpers/export_helper.rb @@ -262,14 +262,14 @@ module ExportHelper end export_ex_users.each_with_index do |e_user,index| user_info = e_user.user - user_course_id = user_info.course_members.course_find_by_ids("course_id",course.id).first + user_course_id = user_info.course_members.course_find_by_ids("course_id",course.id)&.first if user_course_id.present? get_course_group_id = user_course_id.course_group_id if get_course_group_id.present? && get_course_group_id != 0 user_course_info = CourseGroup.by_group_ids(get_course_group_id) user_course = user_course_info.first.name else - user_course = "--" + user_course = "未分班" end else user_course = "--" diff --git a/app/views/polls/commit_result.xlsx.axlsx b/app/views/polls/commit_result.xlsx.axlsx index 3ea0571cb..6ce00388c 100644 --- a/app/views/polls/commit_result.xlsx.axlsx +++ b/app/views/polls/commit_result.xlsx.axlsx @@ -9,7 +9,7 @@ wb.styles do |s| sheet.sheet_view.show_grid_lines = false poll_users_info = %w(序号) poll_ques_titles = poll_questions.pluck(:question_title).map {|k| strip_export_title(k) if k.present?} - poll_un_anony = @poll.un_anonymous + poll_un_anony = poll.un_anonymous if poll_un_anony #是否匿名,默认为false user_info = %w(登陆名 真实姓名 邮箱 学号) else @@ -18,13 +18,13 @@ wb.styles do |s| poll_users_info = poll_users_info + user_info + poll_ques_titles poll_questions.each do |q| if q.question_type != 3 #问题不为主观题 - question_vote_user = q.poll_votes.find_current_vote("user_id",@poll_commit_ids).count #该问题的有效填写量 + question_vote_user = q.poll_votes.find_current_vote("user_id",poll_commit_ids).count #该问题的有效填写量 sheet_row = ["第#{q.question_number}题"] #选择题答案选项的数组 sheet_answer_row = ["小计"] #选择题回答的答案人数,数组 sheet_answer_percent = ["比例"] sheet_answer_useful = ["有效填写人次",question_vote_user] q.poll_answers.each do |a| #问卷的答案选项 - answer_users_count = a.poll_votes.find_current_vote("user_id",@poll_commit_ids).count + answer_users_count = a.poll_votes.find_current_vote("user_id",poll_commit_ids).count answer_percent = number_to_percentage((answer_users_count.to_f / question_vote_user.to_f)*100,precision:1) sheet_row.push(a.answer_text) sheet_answer_row.push(answer_users_count) @@ -49,7 +49,7 @@ wb.styles do |s| end #each_with_index sheet.add_row poll_users_info, :height =>15, :style => blue_cell - @poll.poll_users.each_with_index do |u,index| + poll_users.each_with_index do |u,index| u_user = u.user user_answer_array = [] poll_questions.each do |q| From ad092d91e1b1ad5feb9d7256f0b988b07958775b Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Tue, 2 Jul 2019 16:14:17 +0800 Subject: [PATCH 13/17] =?UTF-8?q?=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/repertoire.rb | 2 +- app/models/sub_repertoire.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/models/repertoire.rb b/app/models/repertoire.rb index 5c6ffebff..995d52d0b 100644 --- a/app/models/repertoire.rb +++ b/app/models/repertoire.rb @@ -1,6 +1,6 @@ class Repertoire < ApplicationRecord default_scope :order => 'updated_at desc' - has_many :sub_repertoires, :dependent => :destroy, :order => "sub_repertoires.updated_at desc" + has_many :sub_repertoires, ->{order("sub_repertoires.updated_at desc")}, :dependent => :destroy has_many :tag_repertoires, through: :sub_repertoires end diff --git a/app/models/sub_repertoire.rb b/app/models/sub_repertoire.rb index aa99494b1..9f7079cfc 100644 --- a/app/models/sub_repertoire.rb +++ b/app/models/sub_repertoire.rb @@ -1,5 +1,5 @@ class SubRepertoire < ApplicationRecord belongs_to :repertoire - has_many :tag_repertoires, :dependent => :destroy, :order => "tag_repertoires.updated_at desc" + has_many :tag_repertoires, ->{order("tag_repertoires.updated_at desc")} ,:dependent => :destroy end From 2ab15ddf5c4eaa2c3e0c8c3ccb29080b563d51eb Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Tue, 2 Jul 2019 16:16:16 +0800 Subject: [PATCH 14/17] =?UTF-8?q?=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/repertoire.rb | 2 +- app/models/sub_repertoire.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/models/repertoire.rb b/app/models/repertoire.rb index 995d52d0b..5c37eb3b6 100644 --- a/app/models/repertoire.rb +++ b/app/models/repertoire.rb @@ -1,6 +1,6 @@ class Repertoire < ApplicationRecord default_scope :order => 'updated_at desc' - has_many :sub_repertoires, ->{order("sub_repertoires.updated_at desc")}, :dependent => :destroy + has_many :sub_repertoires, ->{order(updated_at: :desc)}, :dependent => :destroy has_many :tag_repertoires, through: :sub_repertoires end diff --git a/app/models/sub_repertoire.rb b/app/models/sub_repertoire.rb index 9f7079cfc..d6a6c1b3d 100644 --- a/app/models/sub_repertoire.rb +++ b/app/models/sub_repertoire.rb @@ -1,5 +1,5 @@ class SubRepertoire < ApplicationRecord belongs_to :repertoire - has_many :tag_repertoires, ->{order("tag_repertoires.updated_at desc")} ,:dependent => :destroy + has_many :tag_repertoires, ->{order(updated_at: :desc)} ,:dependent => :destroy end From 91661cbee857109803c17d6a917a64c1f10d1f35 Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Tue, 2 Jul 2019 16:18:08 +0800 Subject: [PATCH 15/17] =?UTF-8?q?=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/repertoire.rb | 1 - 1 file changed, 1 deletion(-) diff --git a/app/models/repertoire.rb b/app/models/repertoire.rb index 5c37eb3b6..d76a022c5 100644 --- a/app/models/repertoire.rb +++ b/app/models/repertoire.rb @@ -1,5 +1,4 @@ class Repertoire < ApplicationRecord - default_scope :order => 'updated_at desc' has_many :sub_repertoires, ->{order(updated_at: :desc)}, :dependent => :destroy has_many :tag_repertoires, through: :sub_repertoires From 03797ce1fa82333ab085c58d0a0327425c6c973a Mon Sep 17 00:00:00 2001 From: SylorHuang Date: Tue, 2 Jul 2019 16:51:27 +0800 Subject: [PATCH 16/17] ifx bug --- app/controllers/exercises_controller.rb | 4 ++-- app/controllers/polls_controller.rb | 2 +- app/controllers/zips_controller.rb | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index 18b8fbb2f..b3cf1f0be 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -1173,7 +1173,7 @@ class ExercisesController < ApplicationController ActiveRecord::Base.transaction do begin @current_user_id = current_user.id - @exercise = @exercise.includes(:exercise_questions) + @exercise = @exercise exercise_ids = [@exercise.id] @exercise_status = @exercise.get_exercise_status(current_user.id) @course_all_members = @course.students @@ -1297,7 +1297,7 @@ class ExercisesController < ApplicationController if @user_course_identity > Course::ASSISTANT_PROFESSOR tip_exception(403,"无权限操作") else - if @exercise_users_size.size > 0 + if @exercise_users_size == 0 normal_status(-1,"暂无用户提交") else get_export_users(@exercise,@course,@export_ex_users) diff --git a/app/controllers/polls_controller.rb b/app/controllers/polls_controller.rb index 151a2a098..eb03345e7 100644 --- a/app/controllers/polls_controller.rb +++ b/app/controllers/polls_controller.rb @@ -924,7 +924,7 @@ class PollsController < ApplicationController # 全部页面,需返回 # @poll_questions_count = @poll_questions.size # 分页 - @poll = @poll.includes(:poll_users,user: :user_extension,) + # @poll = @poll.includes(:poll_users,user: :user_extension) @poll_users = @poll.poll_users @poll_commit_ids = @poll_users.commit_by_status(1).pluck(:user_id) #问卷提交用户的id @page = params[:page] || 1 diff --git a/app/controllers/zips_controller.rb b/app/controllers/zips_controller.rb index c20546701..a70d4c332 100644 --- a/app/controllers/zips_controller.rb +++ b/app/controllers/zips_controller.rb @@ -62,7 +62,7 @@ class ZipsController < ApplicationController if default_ex_users_size == 0 normal_status(-1,"导出失败,暂时没有已提交的学生") elsif default_ex_users_size > 100 - normal_status(-1,"导出数量超过100,请分班导出或联系网站管理员导出") + normal_status(-2,"100") end end rescue Exception => e From df714555fcf1aead83378154a8d66031fef3cd6c Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Tue, 2 Jul 2019 17:07:23 +0800 Subject: [PATCH 17/17] =?UTF-8?q?=E5=AE=9E=E8=AE=AD=E5=85=B3=E5=8D=A1?= =?UTF-8?q?=E6=A0=87=E7=AD=BE=E7=9A=84model=E5=85=B3=E7=B3=BB=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/challenge_tag.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/challenge_tag.rb b/app/models/challenge_tag.rb index 6f176cc67..83b743adc 100644 --- a/app/models/challenge_tag.rb +++ b/app/models/challenge_tag.rb @@ -1,5 +1,5 @@ class ChallengeTag < ApplicationRecord belongs_to :challenge, counter_cache: true - belongs_to :challenge_choose + belongs_to :challenge_choose, optional: true end