diff --git a/Gemfile b/Gemfile index ad254d436..55030971d 100644 --- a/Gemfile +++ b/Gemfile @@ -20,6 +20,8 @@ gem 'bootsnap', '>= 1.1.0', require: false gem 'gitlab', path: 'lib/gitlab-cli' +gem 'chinese_pinyin' + gem 'rack-cors' gem 'redis-rails' gem 'roo-xls' diff --git a/app/helpers/weapps/courses_helper.rb b/app/helpers/weapps/courses_helper.rb new file mode 100644 index 000000000..cc1b5b112 --- /dev/null +++ b/app/helpers/weapps/courses_helper.rb @@ -0,0 +1,30 @@ +module Weapps::CoursesHelper + require 'chinese_pinyin' + + def teacher_list teachers + data = [] + teachers.each do |teacher| + if teacher.user.present? + teacher_user = teacher.user + name = teacher_user.real_name + role = teacher.role == "CREATOR" ? "管理员" : teacher.role == "PROFESSOR" ? "教师" : "助教" + item = {name: name, course_member_id: teacher.id, login: teacher_user.login, user_id: teacher.user_id, role: role, + school: teacher_user.school_name, image_url: url_to_avatar(teacher_user)} + pinyin = Pinyin.t(name.strip, splitter: '') + first_char = pinyin[0] + puts first_char + if first_char.ord >= 97 && first_char.ord <= 122 + letter = (first_char.ord - 32).chr.to_s + else + letter = '#' + end + if data.pluck(:letter).include?(letter) + data.select{|a|a[:letter]==letter}.first[:items] << item + else + data << {letter: letter, items: [item]} + end + end + end + return data + end +end \ No newline at end of file diff --git a/app/views/weapps/courses/teachers.json.jbuilder b/app/views/weapps/courses/teachers.json.jbuilder index 0d89ca814..72a0e4db3 100644 --- a/app/views/weapps/courses/teachers.json.jbuilder +++ b/app/views/weapps/courses/teachers.json.jbuilder @@ -1,16 +1,17 @@ -json.teacher_list do - json.array! @teacher_list do |teacher| - json.course_member_id teacher.id - json.name teacher.user.real_name - json.login teacher.user.login - json.user_id teacher.user.id - json.role teacher.role == "CREATOR" ? "管理员" : teacher.role == "PROFESSOR" ? "教师" : "助教" - json.school teacher.user&.school_name - json.image_url url_to_avatar(teacher.user) - # if @user_course_identity < Course::ASSISTANT_PROFESSOR - # json.member_roles teacher.user.course_role(@course) - # end - end -end +json.teacher_list teacher_list(@teacher_list) +# do +# json.array! @teacher_list do |teacher| +# json.course_member_id teacher.id +# json.name teacher.user.real_name +# json.login teacher.user.login +# json.user_id teacher.user.id +# json.role teacher.role == "CREATOR" ? "管理员" : teacher.role == "PROFESSOR" ? "教师" : "助教" +# json.school teacher.user&.school_name +# json.image_url url_to_avatar(teacher.user) +# # if @user_course_identity < Course::ASSISTANT_PROFESSOR +# # json.member_roles teacher.user.course_role(@course) +# # end +# end +# end json.teacher_list_size @teacher_list_size json.apply_size @applications_size \ No newline at end of file