From d34898172192365390bef7e0cbafef341d47204e Mon Sep 17 00:00:00 2001 From: guange <8863824@gmail.com> Date: Fri, 24 Jun 2016 13:29:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E5=85=A5=E9=82=80=E8=AF=B7=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/entities/user.rb | 7 ++++ app/helpers/courses_helper.rb | 34 ++++++++----------- app/models/course.rb | 5 +-- app/services/courses_service.rb | 7 ++-- ...20160624032138_add_index_to_invite_code.rb | 6 ++++ db/schema.rb | 5 ++- public/assets/wechat/myclass.html | 11 ++---- .../javascripts/wechat/controllers/myclass.js | 7 ++++ public/javascripts/wechat/others/filter.js | 11 +++++- public/stylesheets/weui/weixin.css | 5 +-- 10 files changed, 63 insertions(+), 35 deletions(-) create mode 100644 db/migrate/20160624032138_add_index_to_invite_code.rb diff --git a/app/api/mobile/entities/user.rb b/app/api/mobile/entities/user.rb index 8c6a839b3..2eb20f0db 100644 --- a/app/api/mobile/entities/user.rb +++ b/app/api/mobile/entities/user.rb @@ -26,6 +26,8 @@ module Mobile u.nil? || u.user_extensions.nil? ? "" : u.user_extensions.student_id when :realname u.nil? ? "" : get_user_realname(u) + when :name + u.nil? ? "" : u.show_name end end end @@ -57,6 +59,11 @@ module Mobile user_expose :student_num # 活跃值 user_expose :active_count + + user_expose :role_name + + user_expose :name + end end diff --git a/app/helpers/courses_helper.rb b/app/helpers/courses_helper.rb index c10652c6f..47d343e8f 100644 --- a/app/helpers/courses_helper.rb +++ b/app/helpers/courses_helper.rb @@ -270,13 +270,22 @@ module CoursesHelper # ===================================================================================== # return people list + def searchPeopleByName(course, role_name) + course.members.select{|m| + m.roles.any?{|r|r.name == role_name} + } + end + def searchTeacherAndAssistant project - #searchPeopleByRoles(project, TeacherRoles) - members = [] - project.members.includes(:user).each do |m| - members << m if m && m.user && m.user.allowed_to?(:as_teacher,project) - end - members + searchPeopleByName(project, 'Manager').concat( + searchPeopleByName(project, 'Teacher') + ).concat( + searchPeopleByName(project, 'TeachingAsistant') + ) + end + + def searchStudent project + searchPeopleByName(project, 'Student') end def TeacherAndAssistantCount course @@ -293,19 +302,6 @@ module CoursesHelper members end - def searchStudent project - #searchPeopleByRoles(project, StudentRoles) - members = [] - project.members.each do |m| - if m && m.user && m.user.allowed_to?(:as_student,project) - members << m - end - end - members - end - - - def searchStudent_by_name project, name #searchPeopleByRoles(project, StudentRoles) members = [] diff --git a/app/models/course.rb b/app/models/course.rb index c9ef010e6..d0266b381 100644 --- a/app/models/course.rb +++ b/app/models/course.rb @@ -457,8 +457,9 @@ class Course < ActiveRecord::Base CODES = %W(2 3 4 5 6 7 8 9 A B C D E F G H J K L N M O P Q R S T U V W X Y Z) def generate_invite_code code = invite_code - if !invite_code || invite_code.size <6 - self.invite_code = CODES.sample(6).join + if !invite_code || invite_code.size <5 + self.invite_code = CODES.sample(5).join + return generate_invite_code if Course.where(invite_code: invite_code).present? save! && reload code = invite_code end diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb index 4d9231287..0eb699459 100644 --- a/app/services/courses_service.rb +++ b/app/services/courses_service.rb @@ -68,7 +68,6 @@ class CoursesService if current_user.nil? || !(current_user.admin? || c.is_public == 1 || (c.is_public == 0 && current_user.member_of_course?(c))) raise '403' end - @teachers= searchTeacherAndAssistant(c) #@canShowCode = isCourseTeacher(User.current.id,course) && params[:role] != '1' case params[:role] when '1' @@ -87,7 +86,11 @@ class CoursesService gender = m.user.user_extensions.gender.nil? ? 0 : m.user.user_extensions.gender work_unit = get_user_work_unit m.user location = get_user_location m.user - users << {:id => m.user.id, :img_url => img_url, :nickname => m.user.login, :gender => gender, :work_unit => work_unit, :mail => m.user.mail, :location => location, :brief_introduction => m.user.user_extensions.brief_introduction,:realname=>m.user.realname} + users << {:id => m.user.id, :img_url => img_url, :nickname => m.user.login, :gender => gender, + :work_unit => work_unit, :mail => m.user.mail, :location => location, + role_name: m.roles.first.name, + name: m.user.show_name, + :brief_introduction => m.user.user_extensions.brief_introduction,:realname=>m.user.realname} end users end diff --git a/db/migrate/20160624032138_add_index_to_invite_code.rb b/db/migrate/20160624032138_add_index_to_invite_code.rb new file mode 100644 index 000000000..420951874 --- /dev/null +++ b/db/migrate/20160624032138_add_index_to_invite_code.rb @@ -0,0 +1,6 @@ +class AddIndexToInviteCode < ActiveRecord::Migration + def change + add_column :courses, :qrcode, :string + add_index :courses, :invite_code, unique: true + end +end diff --git a/db/schema.rb b/db/schema.rb index 820c6a035..9db65aca0 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20160614072229) do +ActiveRecord::Schema.define(:version => 20160624032138) do create_table "activities", :force => true do |t| t.integer "act_id", :null => false @@ -551,8 +551,11 @@ ActiveRecord::Schema.define(:version => 20160614072229) do t.integer "is_copy", :default => 0 t.integer "visits", :default => 0 t.string "invite_code" + t.string "qrcode" end + add_index "courses", ["invite_code"], :name => "index_courses_on_invite_code", :unique => true + create_table "custom_fields", :force => true do |t| t.string "type", :limit => 30, :default => "", :null => false t.string "name", :limit => 30, :default => "", :null => false diff --git a/public/assets/wechat/myclass.html b/public/assets/wechat/myclass.html index f12364130..30a8b9083 100644 --- a/public/assets/wechat/myclass.html +++ b/public/assets/wechat/myclass.html @@ -15,22 +15,17 @@
-
资源名称001
-
资源名称002
-
资源名称003
-
资源名称004
-
资源名称005
-
资源名称006
+
{{r.filename}}
授课老师
- {{teacher.realname}}教辅 + {{teacher.name}}{{teacher.role_name|identify}}
我的同学
- {{student.realname}} + {{student.name}}
diff --git a/public/javascripts/wechat/controllers/myclass.js b/public/javascripts/wechat/controllers/myclass.js index bf864ab88..b689e0f55 100644 --- a/public/javascripts/wechat/controllers/myclass.js +++ b/public/javascripts/wechat/controllers/myclass.js @@ -22,10 +22,17 @@ app.controller('MyClassController', ['$scope', 'config','$http', 'auth','$locati vm.course = {}; vm.students = []; vm.teachers = []; + vm.resources = []; vm.invite = function(){ $location.path("/invite_code").search({id: courseid}); }; + + $http.post(config.apiUrl + "courses/"+courseid+"/attachments", + {token: auth.token(), name: ''} + ).then(function(response){ + vm.resources = response.data.data; + }); $http.get(config.apiUrl+ 'courses/'+courseid+"?token="+auth.token()).then( function(response){ diff --git a/public/javascripts/wechat/others/filter.js b/public/javascripts/wechat/others/filter.js index dcb8e9e6a..96007958d 100644 --- a/public/javascripts/wechat/others/filter.js +++ b/public/javascripts/wechat/others/filter.js @@ -2,4 +2,13 @@ app.filter('safeHtml', ['$sce',function ($sce) { return function (input) { return $sce.trustAsHtml(input); } -}]); \ No newline at end of file +}]); + +app.filter('identify', function () { + return function(input){ + if (input == 'TeachingAsistant'){ + return '教辅' + } + return ''; + } +}) \ No newline at end of file diff --git a/public/stylesheets/weui/weixin.css b/public/stylesheets/weui/weixin.css index 12e11b5fa..8391b1083 100644 --- a/public/stylesheets/weui/weixin.css +++ b/public/stylesheets/weui/weixin.css @@ -4,6 +4,7 @@ /*基本样式*/ body,table,input,textarea,select,button { font-family: "微软雅黑","宋体","Helvetica Neue", Helvetica, Arial, sans-serif;} body, ul, h1,h2,h3,h4,h5,p,pre,input {padding:0px; margin:0px;} +body{background-color: #EFEFF4;} ul li {list-style:none;} img {max-width:100%;} blockquote {border:1px solid #d4d4d4; padding: 0.6em; margin-left: 1.4em; margin-right: 0.4em; border-radius: 4px; font-family: "Microsoft YaHei"; background-size: 100% 100%; margin-top:5px;} @@ -125,8 +126,8 @@ a.underline {text-decoration:underline;} /*20160613邀请码样式*/ .qr-code-wrap {width:100%; padding:40px 0; background-color:#3b94d6;} -.qr-code-box {width:225px; height:332px; background-color:#fff; border-radius:3px; margin:0 auto;} -.share-class-name {font-size:18px; color:#3b3b3b; text-align:center; padding:12px; border-bottom:1px solid #cccccc; overflow:hidden; white-space:nowrap; text-overflow:ellipsis;} +.qr-code-box {width:225px; background-color:#fff; border-radius:3px; margin:0 auto;} +.share-class-name {font-size:18px; color:#3b3b3b; text-align:center; padding:12px; border-bottom:1px solid #cccccc;} .qr-img-wrap {width:100%; border-bottom:1px dashed #ccc;} .qr-code-img {margin:36px auto; display:block;} .invitation-code-wrap {text-align:center; font-size:18px; color:#3b3b3b; padding:16px;}