From df246f245c329c9a6a786455534a5adcb6bbcff5 Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Fri, 5 Jul 2019 15:36:24 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=9F=A5=E9=87=8D?= =?UTF-8?q?=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/homework_commons_controller.rb | 13 ++++++++++--- .../code_review_detail.json.jbuilder | 18 ------------------ .../get_challenge_detail.json.jbuilder | 17 +++++++++++++++++ config/routes.rb | 1 + 4 files changed, 28 insertions(+), 21 deletions(-) create mode 100644 app/views/homework_commons/get_challenge_detail.json.jbuilder diff --git a/app/controllers/homework_commons_controller.rb b/app/controllers/homework_commons_controller.rb index 519c05c62..06326fe72 100644 --- a/app/controllers/homework_commons_controller.rb +++ b/app/controllers/homework_commons_controller.rb @@ -11,14 +11,14 @@ class HomeworkCommonsController < ApplicationController before_action :find_homework, only: [:edit, :show, :update, :group_list, :homework_code_repeat, :code_review_results, :code_review_detail, :show_comment, :settings, :works_list, :update_settings, :reference_answer, :publish_groups, :end_groups, :alter_name, :update_explanation, - :update_score, :update_student_score] + :update_score, :update_student_score, :get_challenge_detail] before_action :user_course_identity before_action :homework_publish, only: [:show, :works_list, :code_review_results, :show_comment, :settings, :reference_answer, :update_student_score] before_action :teacher_allowed, only: [:new, :edit, :create, :update, :shixuns, :subjects, :create_shixun_homework, :publish_homework, :end_homework, :set_public, :choose_category, :move_to_category, :choose_category, :create_subject_homework, :multi_destroy, :group_list, :homework_code_repeat, :code_review_results, :code_review_detail, :update_explanation, :update_settings, - :add_to_homework_bank, :publish_groups, :end_groups] + :add_to_homework_bank, :publish_groups, :end_groups, :get_challenge_detail] before_action :require_id_params, only: [:set_public, :multi_destroy, :publish_homework, :end_homework, :move_to_category, :add_to_homework_bank] before_action :course_manager, only: [:alter_name] @@ -1342,7 +1342,14 @@ class HomeworkCommonsController < ApplicationController end - # 代码查重详情 + # 代码查重关卡详情 + def get_challenge_detail + @student_work = @homework.student_works.find_by(user_id: params[:user_id]) + @user = @student_work.user + tip_exception("当前用户无作品可以显示") if @student_work.nil? + end + + # 代码查重代码的详情 def code_review_detail @student_work = @homework.student_works.find_by(user_id: params[:user_id]) @user = @student_work.user diff --git a/app/views/homework_commons/code_review_detail.json.jbuilder b/app/views/homework_commons/code_review_detail.json.jbuilder index 4ebabf20a..916e77c0f 100644 --- a/app/views/homework_commons/code_review_detail.json.jbuilder +++ b/app/views/homework_commons/code_review_detail.json.jbuilder @@ -1,21 +1,3 @@ -json.course_id @course.id -json.course_name @course.name -json.homework_common_id @homework.id -json.homework_common_name @homework.name -json.work_name @student_work.name -json.username @user.full_name -json.user_id @user.id -json.user_login @user.login - -json.work_score @student_work.work_score -if @student_work.ultimate_score - json.adjust_score @student_work.work_score < 0 ? 0 : number_with_precision(@student_work.work_score, precision: 1) -else - json.final_score @student_work.final_score - json.late_penalty @student_work.late_penalty - json.score @student_work.work_score < 0 ? 0 : number_with_precision(@student_work.work_score, precision: 1) -end - json.challenge_list do json.array! @challenges do |challenge| json.id challenge[:id] diff --git a/app/views/homework_commons/get_challenge_detail.json.jbuilder b/app/views/homework_commons/get_challenge_detail.json.jbuilder new file mode 100644 index 000000000..d3d6c2c1e --- /dev/null +++ b/app/views/homework_commons/get_challenge_detail.json.jbuilder @@ -0,0 +1,17 @@ +json.course_id @course.id +json.course_name @course.name +json.homework_common_id @homework.id +json.homework_common_name @homework.name +json.work_name @student_work.name +json.username @user.full_name +json.user_id @user.id +json.user_login @user.login + +json.work_score @student_work.work_score +if @student_work.ultimate_score + json.adjust_score @student_work.work_score < 0 ? 0 : number_with_precision(@student_work.work_score, precision: 1) +else + json.final_score @student_work.final_score + json.late_penalty @student_work.late_penalty + json.score @student_work.work_score < 0 ? 0 : number_with_precision(@student_work.work_score, precision: 1) +end \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index cf5bad608..395ce0ef9 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -337,6 +337,7 @@ Rails.application.routes.draw do post :homework_code_repeat get :code_review_results get :code_review_detail + get :get_challenge_detail post :update_explanation get :show_comment get :settings From 118d27c649cbc0642247d3b1638c4c5a27ec2cff Mon Sep 17 00:00:00 2001 From: SylorHuang Date: Fri, 5 Jul 2019 15:45:15 +0800 Subject: [PATCH 2/4] fix bug --- app/controllers/homework_commons_controller.rb | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/controllers/homework_commons_controller.rb b/app/controllers/homework_commons_controller.rb index 794ccb228..1318f3b04 100644 --- a/app/controllers/homework_commons_controller.rb +++ b/app/controllers/homework_commons_controller.rb @@ -204,15 +204,17 @@ class HomeworkCommonsController < ApplicationController normal_status(-1,"暂无用户提交!") else respond_to do |format| + format.json{normal_status(0,"000000")} format.xlsx{ 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') - - render xlsx: "#{exercise_export_name.encode(Encoding.default_external,"UTF-8", :invalid => :replace, :undef => :replace, :replace => " ").strip.first(30)}",template: "homework_commons/works_list.xlsx.axlsx",locals: + response.headers['Content-Disposition'] = "attachment; filename=\"#{exercise_export_name.strip.first(30)}\"" + render xlsx: "#{exercise_export_name.strip.first(30)}",template: "homework_commons/works_list.xlsx.axlsx",locals: {table_columns: @work_head_cells,task_users: @work_cells_column} } + # send_data data, :type => 'text/csv', :disposition => 'attachment; filename=my_file_name.csv' - # .encode(Encoding.default_external, 'gb2312') + # .encode(Encoding.default_external, 'gb2312') end end elsif params[:format] == "zip" From 82b0f0f0f5cc1683955c32741ba25d82137ab542 Mon Sep 17 00:00:00 2001 From: daiao <358551898@qq.com> Date: Fri, 5 Jul 2019 15:53:26 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=9F=A5=E9=87=8D?= =?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/controllers/homework_commons_controller.rb | 11 ++--------- .../code_review_detail.json.jbuilder | 18 ++++++++++++++++++ .../get_challenge_detail.json.jbuilder | 17 ----------------- config/routes.rb | 1 - 4 files changed, 20 insertions(+), 27 deletions(-) delete mode 100644 app/views/homework_commons/get_challenge_detail.json.jbuilder diff --git a/app/controllers/homework_commons_controller.rb b/app/controllers/homework_commons_controller.rb index 025218424..f0703d1f0 100644 --- a/app/controllers/homework_commons_controller.rb +++ b/app/controllers/homework_commons_controller.rb @@ -11,14 +11,14 @@ class HomeworkCommonsController < ApplicationController before_action :find_homework, only: [:edit, :show, :update, :group_list, :homework_code_repeat, :code_review_results, :code_review_detail, :show_comment, :settings, :works_list, :update_settings, :reference_answer, :publish_groups, :end_groups, :alter_name, :update_explanation, - :update_score, :update_student_score, :get_challenge_detail] + :update_score, :update_student_score] before_action :user_course_identity before_action :homework_publish, only: [:show, :works_list, :code_review_results, :show_comment, :settings, :reference_answer, :update_student_score] before_action :teacher_allowed, only: [:new, :edit, :create, :update, :shixuns, :subjects, :create_shixun_homework, :publish_homework, :end_homework, :set_public, :choose_category, :move_to_category, :choose_category, :create_subject_homework, :multi_destroy, :group_list, :homework_code_repeat, :code_review_results, :code_review_detail, :update_explanation, :update_settings, - :add_to_homework_bank, :publish_groups, :end_groups, :get_challenge_detail] + :add_to_homework_bank, :publish_groups, :end_groups] before_action :require_id_params, only: [:set_public, :multi_destroy, :publish_homework, :end_homework, :move_to_category, :add_to_homework_bank] before_action :course_manager, only: [:alter_name] @@ -1346,13 +1346,6 @@ class HomeworkCommonsController < ApplicationController end - # 代码查重关卡详情 - def get_challenge_detail - @student_work = @homework.student_works.find_by(user_id: params[:user_id]) - @user = @student_work.user - tip_exception("当前用户无作品可以显示") if @student_work.nil? - end - # 代码查重代码的详情 def code_review_detail @student_work = @homework.student_works.find_by(user_id: params[:user_id]) diff --git a/app/views/homework_commons/code_review_detail.json.jbuilder b/app/views/homework_commons/code_review_detail.json.jbuilder index 916e77c0f..4ebabf20a 100644 --- a/app/views/homework_commons/code_review_detail.json.jbuilder +++ b/app/views/homework_commons/code_review_detail.json.jbuilder @@ -1,3 +1,21 @@ +json.course_id @course.id +json.course_name @course.name +json.homework_common_id @homework.id +json.homework_common_name @homework.name +json.work_name @student_work.name +json.username @user.full_name +json.user_id @user.id +json.user_login @user.login + +json.work_score @student_work.work_score +if @student_work.ultimate_score + json.adjust_score @student_work.work_score < 0 ? 0 : number_with_precision(@student_work.work_score, precision: 1) +else + json.final_score @student_work.final_score + json.late_penalty @student_work.late_penalty + json.score @student_work.work_score < 0 ? 0 : number_with_precision(@student_work.work_score, precision: 1) +end + json.challenge_list do json.array! @challenges do |challenge| json.id challenge[:id] diff --git a/app/views/homework_commons/get_challenge_detail.json.jbuilder b/app/views/homework_commons/get_challenge_detail.json.jbuilder deleted file mode 100644 index d3d6c2c1e..000000000 --- a/app/views/homework_commons/get_challenge_detail.json.jbuilder +++ /dev/null @@ -1,17 +0,0 @@ -json.course_id @course.id -json.course_name @course.name -json.homework_common_id @homework.id -json.homework_common_name @homework.name -json.work_name @student_work.name -json.username @user.full_name -json.user_id @user.id -json.user_login @user.login - -json.work_score @student_work.work_score -if @student_work.ultimate_score - json.adjust_score @student_work.work_score < 0 ? 0 : number_with_precision(@student_work.work_score, precision: 1) -else - json.final_score @student_work.final_score - json.late_penalty @student_work.late_penalty - json.score @student_work.work_score < 0 ? 0 : number_with_precision(@student_work.work_score, precision: 1) -end \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 395ce0ef9..cf5bad608 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -337,7 +337,6 @@ Rails.application.routes.draw do post :homework_code_repeat get :code_review_results get :code_review_detail - get :get_challenge_detail post :update_explanation get :show_comment get :settings From 1a2067698c97622947cc7e5741fb138cbe84a0c1 Mon Sep 17 00:00:00 2001 From: SylorHuang Date: Fri, 5 Jul 2019 16:06:19 +0800 Subject: [PATCH 4/4] fixbug --- app/controllers/homework_commons_controller.rb | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/app/controllers/homework_commons_controller.rb b/app/controllers/homework_commons_controller.rb index 1318f3b04..cfa54e721 100644 --- a/app/controllers/homework_commons_controller.rb +++ b/app/controllers/homework_commons_controller.rb @@ -204,17 +204,14 @@ class HomeworkCommonsController < ApplicationController normal_status(-1,"暂无用户提交!") else respond_to do |format| - format.json{normal_status(0,"000000")} format.xlsx{ 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') - response.headers['Content-Disposition'] = "attachment; filename=\"#{exercise_export_name.strip.first(30)}\"" + response.set_header("Content-Disposition","attachment; filename=#{exercise_export_name.strip.first(30)}};filename*=utf-8''#{exercise_export_name.strip.first(30)}}") + # response.setHeader['Content-Disposition'] = "attachment; filename=\"#{exercise_export_name.strip.first(30)}\"" render xlsx: "#{exercise_export_name.strip.first(30)}",template: "homework_commons/works_list.xlsx.axlsx",locals: {table_columns: @work_head_cells,task_users: @work_cells_column} } - # send_data data, :type => 'text/csv', :disposition => 'attachment; filename=my_file_name.csv' - - # .encode(Encoding.default_external, 'gb2312') end end elsif params[:format] == "zip"