From dd49b9e9adca84254a5fc552acb5a0920354fa8a Mon Sep 17 00:00:00 2001 From: SylorHuang Date: Wed, 3 Jul 2019 11:26:16 +0800 Subject: [PATCH] =?UTF-8?q?=20xlsx=E5=AF=BC=E5=87=BA=E7=9A=84=E5=88=A4?= =?UTF-8?q?=E6=96=AD=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/courses_controller.rb | 2 + app/controllers/exercises_controller.rb | 22 ++-- .../graduation_tasks_controller.rb | 104 ++++++++++++------ .../homework_commons_controller.rb | 86 ++++++++++----- app/controllers/polls_controller.rb | 11 -- 5 files changed, 137 insertions(+), 88 deletions(-) diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index 2d379b555..6d1964840 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -978,6 +978,8 @@ class CoursesController < ApplicationController @c_tasks = @course.graduation_tasks.task_published.order("graduation_tasks.publish_time asc, graduation_tasks.created_at asc") if @user_course_identity > Course::ASSISTANT_PROFESSOR tip_exception(403,"无权限操作") + elsif @all_members.size == 0 + normal_status(-1,"课堂暂时没有学生") else member_to_xlsx(@course, @all_members, @c_homeworks, @c_exercises, @c_tasks, @c_polls) filename = current_user.real_name + "_" + @course.name + "_全部成绩" + Time.now.strftime('%Y%m%d_%H%M%S') diff --git a/app/controllers/exercises_controller.rb b/app/controllers/exercises_controller.rb index dd19c36d1..07113792d 100644 --- a/app/controllers/exercises_controller.rb +++ b/app/controllers/exercises_controller.rb @@ -1300,21 +1300,19 @@ class ExercisesController < ApplicationController if params[:format] == "xlsx" if @user_course_identity > Course::ASSISTANT_PROFESSOR tip_exception(403,"无权限操作") - elsif (@exercise_users_size == 0) || ( @export_ex_users&.exercise_user_committed.size == 0) + elsif (@exercise_status == 1) || (@exercise_users_size == 0) || ( @export_ex_users&.exercise_user_committed.size == 0) normal_status(-1,"暂无用户提交") - + else + respond_to do |format| + format.xlsx{ + 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 - - respond_to do |format| - format.json - format.xlsx{ - 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 rescue Exception => e uid_logger_error(e.message) tip_exception("页面调用失败!") diff --git a/app/controllers/graduation_tasks_controller.rb b/app/controllers/graduation_tasks_controller.rb index 1931c26a0..23344e7fc 100644 --- a/app/controllers/graduation_tasks_controller.rb +++ b/app/controllers/graduation_tasks_controller.rb @@ -123,51 +123,83 @@ class GraduationTasksController < ApplicationController @work_count = @work_list.count @work_excel = @work_list @work_list = @work_list.page(page).per(limit) - respond_to do |format| - format.json - format.xlsx{ - if @user_course_identity >= Course::STUDENT - tip_exception(403, "无权限操作") - else - if @work_count > 1 - graduation_work_to_xlsx(@work_excel,@task,current_user) - exercise_export_name = "#{current_user.real_name}_#{@course.name}_#{@task.name}_#{Time.now.strftime('%Y%m%d_%H%M%S')}" - render xlsx: "#{exercise_export_name.strip.first(30)}",template: "graduation_tasks/tasks_list.xlsx.axlsx",locals: {table_columns:@head_cells_column, task_users:@task_cells_column} - else - normal_status(-1,"暂无提交的学生!") - end - end - } - format.zip{ - if @user_course_identity >= Course::STUDENT - tip_exception(403, "无权限操作") + + if params[:format] == "xlsx" + if @user_course_identity >= Course::STUDENT + tip_exception(403, "无权限操作") + elsif @work_count == 0 + normal_status(-1,"暂无提交的学生!") + else + 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.strip.first(30)}",template: "homework_commons/works_list.xlsx.axlsx",locals: + {table_columns: @work_head_cells,task_users: @work_cells_column} + end + elsif params[:format] == "zip" + if @user_course_identity >= Course::STUDENT + tip_exception(403, "无权限操作") + else + zip_works = @work_excel.where("work_status > 0") + status = checkfileSize(zip_works) + if status == 0 + zipfile = zip_homework_common @homework, zip_works + file = decode64(zipfile[0][:base64file]) + send_file "#{OUTPUT_FOLDER}/#{file}", filename: filename_for_content_disposition(file), type: 'application/zip' else - zip_works = @work_excel.where("work_status > 0") - status = checkfileSize(zip_works) - if status == 0 - zipfile = zip_homework_common @task, zip_works - file = decode64(zipfile[0][:base64file]) - send_file "#{OUTPUT_FOLDER}/#{file}", filename: filename_for_content_disposition(file), type: 'application/zip' - else - tip_exception(status == -2 ? "500" : "无附件可下载") - end + tip_exception(status == -2 ? "500M" : "无附件可下载") end - } + end end + # + # respond_to do |format| + # format.json + # format.xlsx{ + # if @user_course_identity >= Course::STUDENT + # tip_exception(403, "无权限操作") + # else + # if @work_count > 1 + # graduation_work_to_xlsx(@work_excel,@task,current_user) + # exercise_export_name = "#{current_user.real_name}_#{@course.name}_#{@task.name}_#{Time.now.strftime('%Y%m%d_%H%M%S')}" + # render xlsx: "#{exercise_export_name.strip.first(30)}",template: "graduation_tasks/tasks_list.xlsx.axlsx",locals: {table_columns:@head_cells_column, task_users:@task_cells_column} + # else + # normal_status(-1,"暂无提交的学生!") + # end + # end + # } + # format.zip{ + # if @user_course_identity >= Course::STUDENT + # tip_exception(403, "无权限操作") + # else + # zip_works = @work_excel.where("work_status > 0") + # status = checkfileSize(zip_works) + # if status == 0 + # zipfile = zip_homework_common @task, zip_works + # file = decode64(zipfile[0][:base64file]) + # send_file "#{OUTPUT_FOLDER}/#{file}", filename: filename_for_content_disposition(file), type: 'application/zip' + # else + # tip_exception(status == -2 ? "500" : "无附件可下载") + # end + # end + # } + # end else @work_list = @work @view_work = false @work_count = @work_list.count @all_work_count = @work_list.count - respond_to do |format| - format.json - format.xlsx{ - normal_status(-1,"作业未发布") - } - format.zip{ - normal_status(-1,"作业未发布") - } + if params[:format] == "xlsx" || params[:format] == "zip" + normal_status(-1,"作业未发布") end + # respond_to do |format| + # format.json + # format.xlsx{ + # normal_status(-1,"作业未发布") + # } + # format.zip{ + # normal_status(-1,"作业未发布") + # } + # end end end diff --git a/app/controllers/homework_commons_controller.rb b/app/controllers/homework_commons_controller.rb index 89e301f93..5de65210f 100644 --- a/app/controllers/homework_commons_controller.rb +++ b/app/controllers/homework_commons_controller.rb @@ -200,40 +200,68 @@ class HomeworkCommonsController < ApplicationController end # @members = @course.students.where(user_id: @student_works.pluck(:user_id)).includes(:course_group) end - respond_to do |format| - format.json - format.xlsx{ - if @user_course_identity >= Course::STUDENT - tip_exception(403, "无权限操作") - else - if @work_count > 1 - 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.strip.first(30)}",template: "homework_commons/works_list.xlsx.axlsx",locals: - {table_columns: @work_head_cells,task_users: @work_cells_column} - else - normal_status(-1,"暂无提交的学生!") - end + if params[:format] == "xlsx" + if @user_course_identity >= Course::STUDENT + tip_exception(403, "无权限操作") + elsif @work_count == 0 + normal_status(-1,"暂无提交的学生!") + else + 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') - end - } - format.zip{ - if @user_course_identity >= Course::STUDENT - tip_exception(403, "无权限操作") + 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} + end + elsif params[:format] == "zip" + if @user_course_identity >= Course::STUDENT + tip_exception(403, "无权限操作") + else + zip_works = @work_excel.where("work_status > 0") + status = checkfileSize(zip_works) + if status == 0 + zipfile = zip_homework_common @homework, zip_works + file = decode64(zipfile[0][:base64file]) + send_file "#{OUTPUT_FOLDER}/#{file}", filename: filename_for_content_disposition(file), type: 'application/zip' else - zip_works = @work_excel.where("work_status > 0") - status = checkfileSize(zip_works) - if status == 0 - zipfile = zip_homework_common @homework, zip_works - file = decode64(zipfile[0][:base64file]) - send_file "#{OUTPUT_FOLDER}/#{file}", filename: filename_for_content_disposition(file), type: 'application/zip' - else - tip_exception(status == -2 ? "500M" : "无附件可下载") - end + tip_exception(status == -2 ? "500M" : "无附件可下载") end - } + end end + # respond_to do |format| + # format.json + # format.xlsx{ + # if @user_course_identity >= Course::STUDENT + # tip_exception(403, "无权限操作") + # else + # if @work_count > 1 + # 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.strip.first(30)}",template: "homework_commons/works_list.xlsx.axlsx",locals: + # {table_columns: @work_head_cells,task_users: @work_cells_column} + # else + # normal_status(-1,"暂无提交的学生!") + # end + # + # end + # } + # format.zip{ + # if @user_course_identity >= Course::STUDENT + # tip_exception(403, "无权限操作") + # else + # zip_works = @work_excel.where("work_status > 0") + # status = checkfileSize(zip_works) + # if status == 0 + # zipfile = zip_homework_common @homework, zip_works + # file = decode64(zipfile[0][:base64file]) + # send_file "#{OUTPUT_FOLDER}/#{file}", filename: filename_for_content_disposition(file), type: 'application/zip' + # else + # tip_exception(status == -2 ? "500M" : "无附件可下载") + # end + # end + # } + # end end end diff --git a/app/controllers/polls_controller.rb b/app/controllers/polls_controller.rb index 7075ac0ef..244cdf57f 100644 --- a/app/controllers/polls_controller.rb +++ b/app/controllers/polls_controller.rb @@ -945,17 +945,6 @@ class PollsController < ApplicationController end end end - # respond_to do |format| - # format.json - # format.xlsx{ - # 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 rescue Exception => e uid_logger_error(e.message) tip_exception("页面调用失败!")