From 353b9ac67092897bea5d5c4da6d2010b70458371 Mon Sep 17 00:00:00 2001 From: huang Date: Sun, 12 Nov 2017 11:30:00 +0800 Subject: [PATCH] =?UTF-8?q?excel=E5=AF=BC=E5=85=A5=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 2 +- app/controllers/courses_controller.rb | 23 +++++++++++++++++++++++ config/routes.rb | 1 + lib/tasks/import_excel.rake | 14 ++++++++++++++ 4 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 lib/tasks/import_excel.rake diff --git a/Gemfile b/Gemfile index be84f530c..ac3418a0e 100644 --- a/Gemfile +++ b/Gemfile @@ -75,7 +75,7 @@ group :development, :test do gem 'pry-byebug' gem "test-unit", "~>3.0" end - gem 'rspec-rails', '~> 3.0' + # gem 'rspec-rails', '~> 3.0' gem 'factory_girl_rails' end diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index 915d95bd7..8654967e7 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -33,6 +33,29 @@ class CoursesController < ApplicationController before_filter :require_login, :only => [:join, :unjoin] #before_filter :allow_join, :only => [:join] + def sync_temp_excel + unless User.current.admin? + render_403 + return + end + attachment = Attachment.find(params[:attachment_id]) + path = attachment.disk_directory + name = attachment.disk_filename + lists = readData("files/#{path}/#{name}") + lists.each do |list| + logger.info("#{list[0]}---#{list[1]}") + user = User.find_by_sql("SELECT u.* FROM `users` u, `user_extensions` ue where u.id = ue.user_id and CONCAT(u.lastname,u.firstname) ='#{list[1]}' and ue.school_id='#{school_id}' and ue.student_id='#{list[0]}'").first + # 用户存在并且用户是非课程成员 + if user.present? && Member.where(:course_id => @course, :user_id => user.id).blank? + members = [] + members << Member.new(:role_ids => [10], :user_id => user.id) + @course.members << members + StudentsForCourse.create(:student_id => user.id, :course_id => @course.id) + @had_import_count += 1 + end + end + end + # 邀请码停用/启用 def set_invite_code_halt if User.current.allowed_to?(:as_teacher, @course) || User.current.admin? diff --git a/config/routes.rb b/config/routes.rb index 21c931592..ce8eadfc1 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1379,6 +1379,7 @@ RedmineApp::Application.routes.draw do # 课程路由设置 resources :courses do member do + get 'sync_temp_excel' get 'settings(/:tab)', :action => 'settings', :as => 'settings' get 'search_member', :action => 'search_member' get 'file', :action => 'file', :as => 'file' diff --git a/lib/tasks/import_excel.rake b/lib/tasks/import_excel.rake new file mode 100644 index 000000000..e5bd1a796 --- /dev/null +++ b/lib/tasks/import_excel.rake @@ -0,0 +1,14 @@ +namespace :import do + desc "fix import name" + task :fix => :environment do + HomeworkCommon.find_each do |homework| + name = homework.name.sub("\n", " ").sub("\r\n", " ") + if name != homework.name + homework.name = name + homework.save! + end + + end + end + +end