From ba4a1c64d9e18ebc8609f73615dc8a899fe359d2 Mon Sep 17 00:00:00 2001 From: cxt Date: Mon, 19 Sep 2016 17:14:14 +0800 Subject: [PATCH 01/23] =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E5=8A=A8=E6=80=81?= =?UTF-8?q?=E7=9A=84=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/homework_common_controller.rb | 58 ++++++++----------- app/controllers/student_work_controller.rb | 15 ++--- app/controllers/users_controller.rb | 13 ++--- app/controllers/words_controller.rb | 11 ++-- app/helpers/application_helper.rb | 6 +- app/helpers/homework_common_helper.rb | 6 +- app/views/courses/_course_activity.html.erb | 2 +- .../_user_homework_search_list.html.erb | 2 +- app/views/courses/homework_search.js.erb | 4 +- .../homework_common/_alert_anonyoms.html.erb | 2 +- .../_alert_open_student_works.html.erb | 2 +- .../_homework_index_list.html.erb | 2 +- .../_set_evalutation_att.html.erb | 2 +- .../alert_forbidden_anonymous_comment.js.erb | 2 +- app/views/homework_common/edit.html.erb | 15 ++--- .../homework_common/open_student_works.js.erb | 9 ++- .../homework_common/score_rule_set.js.erb | 2 +- .../set_evaluation_attr.js.erb | 5 +- .../start_anonymous_comment.js.erb | 12 ++-- .../start_evaluation_set.js.erb | 2 +- .../stop_anonymous_comment.js.erb | 10 ++-- .../organizations/_org_activities.html.erb | 2 +- .../_alert_forbidden_anonymous.html.erb | 2 +- .../student_work/_relate_project.html.erb | 2 +- .../student_work/_set_score_rule.html.erb | 2 +- .../student_work/cancel_relate_project.js.erb | 11 ++-- .../forbidden_anonymous_comment.js.erb | 9 ++- app/views/student_work/set_score_rule.js.erb | 5 +- .../student_work/student_work_project.js.erb | 11 ++-- app/views/users/_course_homework.html.erb | 47 +++++++++------ app/views/users/_news_replies.html.erb | 4 +- app/views/users/_reply_banner.html.erb | 8 +-- app/views/users/_reply_to.html.erb | 3 +- app/views/users/_user_activities.html.erb | 2 +- app/views/users/_user_homework_list.html.erb | 11 +--- app/views/users/_user_homeworks_old.html.erb | 47 --------------- app/views/users/all_journals.js.erb | 2 +- app/views/words/destroy.js.erb | 9 ++- app/views/words/leave_homework_message.js.erb | 13 ++--- app/views/words/reply_to_homework.js.erb | 7 +-- public/javascripts/application.js | 5 +- 41 files changed, 149 insertions(+), 235 deletions(-) delete mode 100644 app/views/users/_user_homeworks_old.html.erb diff --git a/app/controllers/homework_common_controller.rb b/app/controllers/homework_common_controller.rb index b8c6a4a0a..b5d55df28 100644 --- a/app/controllers/homework_common_controller.rb +++ b/app/controllers/homework_common_controller.rb @@ -58,10 +58,9 @@ class HomeworkCommonController < ApplicationController def edit @user = User.current - @is_in_course = params[:is_in_course] + @hw_status = params[:hw_status].to_i @is_manage = params[:is_manage] - @course_activity = params[:course_activity].to_i - if @is_in_course.to_i == 1 || @course_activity == 1 + if @hw_status != 1 @left_nav_type = 3 respond_to do |format| format.html{render :layout => 'base_courses'} @@ -160,18 +159,17 @@ class HomeworkCommonController < ApplicationController create_works_list @homework end + @hw_status = params[:hw_status].to_i if params[:is_manage] == "1" redirect_to manage_or_receive_homeworks_user_path(User.current.id) elsif params[:is_manage] == "2" redirect_to my_homeworks_user_path(User.current.id) - elsif params[:is_in_course] == "1" - redirect_to homework_common_index_path(:course => @course.id) - elsif params[:is_in_course] == "0" - redirect_to user_homeworks_user_path(User.current.id) - elsif params[:is_in_course] == "-1" && params[:course_activity] == "0" + elsif @hw_status == 1 redirect_to user_path(User.current.id) - elsif params[:is_in_course] == "-1" && params[:course_activity] == "1" + elsif @hw_status == 2 redirect_to course_path(@course.id) + else + redirect_to homework_common_index_path(:course => @course.id) end end end @@ -181,14 +179,13 @@ class HomeworkCommonController < ApplicationController if @homework.destroy respond_to do |format| format.html { - if params[:is_in_course] == "1" - redirect_to homework_common_index_path(:course => @course.id) - elsif params[:is_in_course] == "0" - redirect_to user_homeworks_user_path(User.current.id) - elsif params[:is_in_course] == "-1" && params[:course_activity] == "0" - redirect_to user_path(User.current.id) - elsif params[:is_in_course] == "-1" && params[:course_activity] == "1" - redirect_to course_path(@course.id) + @hw_status = params[:hw_status].to_i + if @hw_status == 1 + redirect_to user_path(User.current.id) + elsif @hw_status == 2 + redirect_to course_path(@course.id) + else + redirect_to homework_common_index_path(:course => @course.id) end } end @@ -246,8 +243,7 @@ class HomeworkCommonController < ApplicationController @statue = 3 end @user_activity_id = params[:user_activity_id].to_i - @is_in_course = params[:is_in_course].to_i - @course_activity = params[:course_activity].to_i + @hw_status = params[:hw_status].to_i end #关闭匿评 @@ -265,8 +261,7 @@ class HomeworkCommonController < ApplicationController send_message_anonymous_comment(@homework, m_status = 3) Mailer.send_mail_anonymous_comment_close(@homework).deliver @user_activity_id = params[:user_activity_id].to_i - @is_in_course = params[:is_in_course].to_i - @course_activity = params[:course_activity].to_i + @hw_status = params[:hw_status].to_i respond_to do |format| format.js end @@ -294,8 +289,7 @@ class HomeworkCommonController < ApplicationController end @percent = format("%.2f",(@cur_size.to_f / ( @totle_size == 0 ? 1 : @totle_size)) * 100) @user_activity_id = params[:user_activity_id].to_i - @is_in_course = params[:is_in_course].to_i - @course_activity = params[:course_activity].to_i + @hw_status = params[:hw_status].to_i respond_to do |format| format.js end @@ -307,8 +301,7 @@ class HomeworkCommonController < ApplicationController else @user_activity_id = -1 end - @is_in_course = params[:is_in_course] if params[:is_in_course] - @course_activity = params[:course_activity] if params[:course_Activity] + @hw_status = params[:hw_status].to_i respond_to do |format| format.js end @@ -321,8 +314,7 @@ class HomeworkCommonController < ApplicationController @homework.update_column('is_open', 0) end @user_activity_id = params[:user_activity_id] - @is_in_course = params[:is_in_course] if params[:is_in_course] - @course_activity = params[:course_activity] if params[:course_Activity] + @hw_status = params[:hw_status].to_i end def alert_open_student_works @@ -331,8 +323,7 @@ class HomeworkCommonController < ApplicationController else @user_activity_id = -1 end - @is_in_course = params[:is_in_course] if params[:is_in_course] - @course_activity = params[:course_activity] if params[:course_Activity] + @hw_status = params[:hw_status].to_i respond_to do |format| format.js end @@ -363,8 +354,7 @@ class HomeworkCommonController < ApplicationController else @user_activity_id = -1 end - @is_in_course = params[:is_in_course] - @course_activity = params[:course_activity].to_i + @hw_status = params[:hw_status].to_i end #设置匿评参数 @@ -381,8 +371,7 @@ class HomeworkCommonController < ApplicationController @homework_detail_manual.evaluation_num = params[:evaluation_num] @homework_detail_manual.save @user_activity_id = params[:user_activity_id].to_i - @is_in_course = params[:is_in_course].to_i - @course_activity = params[:course_activity].to_i + @hw_status = params[:hw_status].to_i end end @@ -393,8 +382,7 @@ class HomeworkCommonController < ApplicationController else @user_activity_id = -1 end - @is_in_course = params[:is_in_course] - @course_activity = params[:course_activity].to_i + @hw_status = params[:hw_status].to_i end private diff --git a/app/controllers/student_work_controller.rb b/app/controllers/student_work_controller.rb index f6a97e66c..b259737a1 100644 --- a/app/controllers/student_work_controller.rb +++ b/app/controllers/student_work_controller.rb @@ -1012,8 +1012,7 @@ class StudentWorkController < ApplicationController redirect_to student_work_index_url(:homework => @homework.id) else @user_activity_id = params[:user_activity_id].to_i - @is_in_course = params[:is_in_course].to_i - @course_activity = params[:course_activity].to_i + @hw_status = params[:hw_status].to_i respond_to do |format| format.js end @@ -1035,8 +1034,7 @@ class StudentWorkController < ApplicationController student_work.save end @user_activity_id = params[:user_activity_id].to_i - @is_in_course = params[:is_in_course].to_i - @course_activity = params[:course_activity].to_i + @hw_status = params[:hw_status].to_i end def revise_attachment @@ -1058,8 +1056,7 @@ class StudentWorkController < ApplicationController def new_student_work_project @user_activity_id = params[:user_activity_id].to_i - @is_in_course = params[:is_in_course].to_i - @course_activity = params[:course_activity].to_i + @hw_status = params[:hw_status].to_i respond_to do |format| format.js end @@ -1078,8 +1075,7 @@ class StudentWorkController < ApplicationController @project.is_leader = 1 if @project.save @user_activity_id = params[:user_activity_id].to_i - @is_in_course = params[:is_in_course].to_i - @course_activity = params[:course_activity].to_i + @hw_status = params[:hw_status].to_i respond_to do |format| format.js end @@ -1129,8 +1125,7 @@ class StudentWorkController < ApplicationController relate_pro = StudentWorkProject.where("user_id = #{User.current.id} and homework_common_id = #{@homework.id}").first if relate_pro.destroy @user_activity_id = params[:user_activity_id].to_i - @is_in_course = params[:is_in_course].to_i - @course_activity = params[:course_activity].to_i + @hw_status = params[:hw_status].to_i respond_to do |format| format.js end diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index bdbaf1738..87dc127a0 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -115,8 +115,7 @@ class UsersController < ApplicationController else @user_activity_id = -1 end - @is_in_course = params[:is_in_course].to_i - @course_activity = params[:course_activity].to_i + @hw_status = params[:hw_status].to_i when 'JournalsForMessage' @reply = JournalsForMessage.find params[:reply_id] @user_activity_id = params[:user_activity_id] @@ -1123,11 +1122,8 @@ class UsersController < ApplicationController quotes_homework = HomeworkCommon.find params[:quotes].to_i quotes_homework.update_column(:quotes, quotes_homework.quotes+1) end - if params[:is_in_course] == "1" - redirect_to homework_common_index_path(:course => homework.course_id) - else - redirect_to user_homeworks_user_path(User.current.id) - end + + redirect_to homework_common_index_path(:course => homework.course_id) end end else @@ -3573,8 +3569,7 @@ class UsersController < ApplicationController obj = HomeworkCommon.where('id = ?', params[:id].to_i).first @type = 'HomeworkCommon' @journals = obj.journals_for_messages.reorder("created_on desc") - @is_in_course = params[:is_in_course].to_i if params[:is_in_course] - @course_activity = params[:course_activity].to_i if params[:course_activity] + @hw_status = params[:hw_status].to_i if params[:hw_status] @is_teacher = User.current.allowed_to?(:as_teacher,obj.course) @user_activity_id = params[:user_activity_id].to_i if params[:user_activity_id] end diff --git a/app/controllers/words_controller.rb b/app/controllers/words_controller.rb index 499272706..f1bfc7a31 100644 --- a/app/controllers/words_controller.rb +++ b/app/controllers/words_controller.rb @@ -110,8 +110,7 @@ class WordsController < ApplicationController else @user_activity_id = -1 end - @is_in_course = params[:is_in_course].to_i - @course_activity = params[:course_activity].to_i + @hw_status = params[:hw_status].to_i elsif @journal_destroyed.jour_type == 'Syllabus' @syllabus = Syllabus.find @journal_destroyed.jour_id @count = @syllabus.journals_for_messages.count @@ -308,9 +307,8 @@ class WordsController < ApplicationController update_org_activity(@homework_common.class,@homework_common.id) respond_to do |format| format.js{ - @user_activity_id = params[:user_activity_id] - @is_in_course = params[:is_in_course] - @course_activity = params[:course_activity] + @user_activity_id = params[:user_activity_id].to_i + @hw_status = params[:hw_status].to_i @homework_common_id = params[:homework_common_id] } end @@ -344,8 +342,7 @@ class WordsController < ApplicationController respond_to do |format| format.js{ @user_activity_id = params[:user_activity_id].to_i - @is_in_course = params[:is_in_course].to_i - @course_activity = params[:course_activity].to_i + @hw_status = params[:hw_status].to_i } end else diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index d3b28fb20..d9a694eaa 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -2689,15 +2689,15 @@ module ApplicationHelper end #获取匿评相关连接代码 - def homework_anonymous_comment (homework, is_in_course, user_activity_id = -1, course_activity = -1) + def homework_anonymous_comment (homework, hw_status, user_activity_id = -1) if homework.homework_detail_manual.comment_status == 0 ||Time.parse(homework.end_time.to_s).strftime("%Y-%m-%d") >= Time.now.strftime("%Y-%m-%d") link = link_to "启动匿评","javascript:void(0)", :class => "postOptionLink", :title => "作业截止日期之前不可以启动匿评" elsif homework.student_works.has_committed.count >= 2 && homework.homework_detail_manual#作业份数大于2 case homework.homework_detail_manual.comment_status when 1 - link = link_to '启动匿评', Setting.protocol + "://" + Setting.host_name + "/homework_common/" + homework.id.to_s + "/alert_anonymous_comment?is_in_course=" + is_in_course.to_s + "&user_activity_id=" + user_activity_id.to_s + "&course_activity=" + course_activity.to_s, id: "#{homework.id}_start_anonymous_comment", remote: true, disable_with: '加载中...',:class => 'postOptionLink' + link = link_to '启动匿评', Setting.protocol + "://" + Setting.host_name + "/homework_common/" + homework.id.to_s + "/alert_anonymous_comment?hw_status=" + hw_status.to_s + "&user_activity_id=" + user_activity_id.to_s, id: "#{homework.id}_start_anonymous_comment", remote: true, disable_with: '加载中...',:class => 'postOptionLink' when 2 - link = link_to '关闭匿评', Setting.protocol + "://" + Setting.host_name + "/homework_common/" + homework.id.to_s + "/alert_anonymous_comment?is_in_course=" + is_in_course.to_s + "&user_activity_id=" + user_activity_id.to_s + "&course_activity=" + course_activity.to_s, id: "#{homework.id}_stop_anonymous_comment", remote: true,:class => 'postOptionLink' + link = link_to '关闭匿评', Setting.protocol + "://" + Setting.host_name + "/homework_common/" + homework.id.to_s + "/alert_anonymous_comment?hw_status=" + hw_status.to_s + "&user_activity_id=" + user_activity_id.to_s, id: "#{homework.id}_stop_anonymous_comment", remote: true,:class => 'postOptionLink' when 3 # link = link_to "匿评结束","javascript:void(0)", :class => "postOptionLink", :title => "匿评结束" end diff --git a/app/helpers/homework_common_helper.rb b/app/helpers/homework_common_helper.rb index 2d3c72c20..d79a7a432 100644 --- a/app/helpers/homework_common_helper.rb +++ b/app/helpers/homework_common_helper.rb @@ -57,12 +57,12 @@ module HomeworkCommonHelper end #根据传入作业确定跳转到开启匿评还是关闭匿评功能 - def alert_anonyoms_path homework,homework_detail_manual,user_activity_id,is_in_course,course_activity + def alert_anonyoms_path homework,homework_detail_manual,user_activity_id,hw_status link = "" if homework_detail_manual.comment_status == 1 - link = start_anonymous_comment_homework_common_url homework.id,:user_activity_id=>user_activity_id,:is_in_course=>is_in_course,:course_activity=>course_activity + link = start_anonymous_comment_homework_common_url homework.id,:user_activity_id=>user_activity_id,:hw_status=>hw_status elsif homework_detail_manual.comment_status == 2 - link = stop_anonymous_comment_homework_common_url homework.id,:user_activity_id=>user_activity_id,:is_in_course=>is_in_course,:course_activity=>course_activity + link = stop_anonymous_comment_homework_common_url homework.id,:user_activity_id=>user_activity_id,:hw_status=>hw_status end link end diff --git a/app/views/courses/_course_activity.html.erb b/app/views/courses/_course_activity.html.erb index c71e5ade4..a7f99f2b0 100644 --- a/app/views/courses/_course_activity.html.erb +++ b/app/views/courses/_course_activity.html.erb @@ -60,7 +60,7 @@ <% act = activity.course_act %> <% case activity.course_act_type.to_s %> <% when 'HomeworkCommon' %> - <%= render :partial => 'users/course_homework', :locals => {:activity => act, :user_activity_id => activity.id, :course_activity => 1} %> + <%= render :partial => 'users/course_homework', :locals => {:activity => act, :user_activity_id => activity.id, :hw_status => 2} %> <% when 'News' %> <%= render :partial => 'users/course_news', :locals => {:activity => act, :user_activity_id => activity.id} %> <% when 'Message' %> diff --git a/app/views/courses/_user_homework_search_list.html.erb b/app/views/courses/_user_homework_search_list.html.erb index 750e7537c..ecc0d1d7e 100644 --- a/app/views/courses/_user_homework_search_list.html.erb +++ b/app/views/courses/_user_homework_search_list.html.erb @@ -26,7 +26,7 @@ } } - <%= render :partial => 'users/user_homework_detail', :locals => {:homework_common => homework_common,:is_in_course => is_in_course} %> + <%= render :partial => 'users/course_homework', :locals => {:activity => homework_common,:user_activity_id => homework_common.id, :hw_status => 3} %> <% end%> <% if homework_commons.count == 10%> <%= link_to "点击展开更多",homework_search_course_path(course_id,:page => page,:search=>search),:id => "user_show_more_homework",:remote => "true",:class => "loadMore f_grey"%> diff --git a/app/views/courses/homework_search.js.erb b/app/views/courses/homework_search.js.erb index 3c644ad9e..5e2f81f01 100644 --- a/app/views/courses/homework_search.js.erb +++ b/app/views/courses/homework_search.js.erb @@ -1,5 +1,5 @@ <% if @page == 0 %> - $("#user_homework_list").replaceWith("<%= escape_javascript( render :partial => 'courses/user_homework_search_list',:locals => {:homework_commons => @homeworks, :page => @page, :is_in_course => 1,:course_id => @course.id,:search=>@search} )%>"); + $("#user_homework_list").replaceWith("<%= escape_javascript( render :partial => 'courses/user_homework_search_list',:locals => {:homework_commons => @homeworks, :page => @page, :course_id => @course.id,:search=>@search} )%>"); <% else %> - $("#user_show_more_homework").replaceWith("<%= escape_javascript( render :partial => 'courses/user_homework_search_list',:locals => {:homework_commons => @homeworks, :page => @page, :is_in_course => 1,:course_id => @course.id,:search=>@search} )%>"); + $("#user_show_more_homework").replaceWith("<%= escape_javascript( render :partial => 'courses/user_homework_search_list',:locals => {:homework_commons => @homeworks, :page => @page, :course_id => @course.id,:search=>@search} )%>"); <% end %> \ No newline at end of file diff --git a/app/views/homework_common/_alert_anonyoms.html.erb b/app/views/homework_common/_alert_anonyoms.html.erb index 79840cb35..8834d6746 100644 --- a/app/views/homework_common/_alert_anonyoms.html.erb +++ b/app/views/homework_common/_alert_anonyoms.html.erb @@ -32,7 +32,7 @@

<% end %>
- + 确  定 diff --git a/app/views/homework_common/_alert_open_student_works.html.erb b/app/views/homework_common/_alert_open_student_works.html.erb index 73c7f0b47..4eda8e458 100644 --- a/app/views/homework_common/_alert_open_student_works.html.erb +++ b/app/views/homework_common/_alert_open_student_works.html.erb @@ -22,7 +22,7 @@

<% end %>
- + 确  定 diff --git a/app/views/homework_common/_homework_index_list.html.erb b/app/views/homework_common/_homework_index_list.html.erb index 9b11017e8..dcbe8d411 100644 --- a/app/views/homework_common/_homework_index_list.html.erb +++ b/app/views/homework_common/_homework_index_list.html.erb @@ -1,4 +1,4 @@ -<%= render :partial => 'users/user_homework_list', :locals => {:homework_commons => homework_commons,:page => 0,:is_in_course => 1,:course_id => course_id} %> +<%= render :partial => 'users/user_homework_list', :locals => {:homework_commons => homework_commons,:page => 0,:course_id => course_id} %>
<% if @syllabus.des_status == 0 && User.current == @syllabus.user %> diff --git a/app/views/syllabuses/syllabus_courselist.html.erb b/app/views/syllabuses/syllabus_courselist.html.erb index ecb8ed7b8..123d1e332 100644 --- a/app/views/syllabuses/syllabus_courselist.html.erb +++ b/app/views/syllabuses/syllabus_courselist.html.erb @@ -5,6 +5,9 @@
  • 班级列表
  • +
  • + 教师团队 +
  • diff --git a/config/locales/projects/zh.yml b/config/locales/projects/zh.yml index 792ff35fd..4040edcc8 100644 --- a/config/locales/projects/zh.yml +++ b/config/locales/projects/zh.yml @@ -369,7 +369,7 @@ zh: label_input_email: 请输入邮箱地址 label_invite_trustie_user: "邀请Trustie注册用户" - label_invite_trustie_user_tips: "支持姓名、邮箱、登录名搜索!" + label_invite_trustie_user_tips: "支持姓名、邮箱、登录名搜索" label_user_role_null: 用户和角色不能留空! label_invite_project: 邀请您加入项目 label_mail_invite_success: 您已成功加入项目! diff --git a/config/routes.rb b/config/routes.rb index afe30d4de..d3700bb73 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1140,6 +1140,7 @@ RedmineApp::Application.routes.draw do post 'update_base_info' get 'delete_syllabus' get 'delete_des' + get 'members' end collection do @@ -1147,6 +1148,16 @@ RedmineApp::Application.routes.draw do end end + resources :syllabus_member do + member do + post 'update_rank' + end + + collection do + get 'syl_member_autocomplete' + end + end + # add by nwb # 课程路由设置 resources :courses do diff --git a/db/migrate/20160921062340_create_syllabus_members.rb b/db/migrate/20160921062340_create_syllabus_members.rb new file mode 100644 index 000000000..c2e76ee3f --- /dev/null +++ b/db/migrate/20160921062340_create_syllabus_members.rb @@ -0,0 +1,23 @@ +class CreateSyllabusMembers < ActiveRecord::Migration + def change + create_table :syllabus_members do |t| + t.integer :rank + t.references :syllabus + t.references :user + + t.timestamps + end + add_index :syllabus_members, :syllabus_id + add_index :syllabus_members, :user_id + add_index :syllabus_members, :rank + + count = Syllabus.all.count / 30 + 2 + transaction do + for i in 1 ... count do i + Syllabus.page(i).per(30).each do |syllabus| + SyllabusMember.create(:user_id => syllabus.user_id, :syllabus_id => syllabus.id, :rank => 1) + end + end + end + end +end diff --git a/db/schema.rb b/db/schema.rb index 443e8c426..d8a60c93f 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 => 20160907080621) do +ActiveRecord::Schema.define(:version => 20160921062340) do create_table "activities", :force => true do |t| t.integer "act_id", :null => false @@ -56,10 +56,10 @@ ActiveRecord::Schema.define(:version => 20160907080621) do t.integer "user_id" t.integer "applied_id" t.string "applied_type" - t.integer "viewed" - t.integer "status" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false + t.integer "viewed", :default => 0 + t.integer "status", :default => 0 + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false t.string "name" t.integer "applied_user_id" t.integer "role" @@ -157,13 +157,13 @@ ActiveRecord::Schema.define(:version => 20160907080621) do create_table "attachments", :force => true do |t| t.integer "container_id" t.string "container_type", :limit => 30 - t.string "filename", :default => "", :null => false - t.string "disk_filename", :default => "", :null => false - t.integer "filesize", :default => 0, :null => false + t.string "filename", :default => "", :null => false + t.string "disk_filename", :default => "", :null => false + t.integer "filesize", :default => 0, :null => false t.string "content_type", :default => "" - t.string "digest", :limit => 40, :default => "", :null => false - t.integer "downloads", :default => 0, :null => false - t.integer "author_id", :default => 0, :null => false + t.string "digest", :limit => 40, :default => "", :null => false + t.integer "downloads", :default => 0, :null => false + t.integer "author_id", :default => 0, :null => false t.datetime "created_on" t.string "description" t.string "disk_directory" @@ -173,7 +173,6 @@ ActiveRecord::Schema.define(:version => 20160907080621) do t.integer "quotes" t.integer "is_publish", :default => 1 t.date "publish_time" - t.boolean "init_file", :default => false end add_index "attachments", ["author_id"], :name => "index_attachments_on_author_id" @@ -311,16 +310,14 @@ ActiveRecord::Schema.define(:version => 20160907080621) do add_index "changeset_parents", ["parent_id"], :name => "changeset_parents_parent_ids" create_table "changesets", :force => true do |t| - t.integer "repository_id", :null => false - t.string "revision", :null => false + t.integer "repository_id", :null => false + t.string "revision", :null => false t.string "committer" - t.datetime "committed_on", :null => false + t.datetime "committed_on", :null => false t.text "comments" t.date "commit_date" t.string "scmid" t.integer "user_id" - t.integer "project_id" - t.integer "type", :default => 0 end add_index "changesets", ["committed_on"], :name => "index_changesets_on_committed_on" @@ -1881,6 +1878,9 @@ ActiveRecord::Schema.define(:version => 20160907080621) do t.datetime "updated_at", :null => false end + add_index "student_works_scores", ["student_work_id"], :name => "student_work_id" + add_index "student_works_scores", ["user_id"], :name => "user_id" + create_table "students_for_courses", :force => true do |t| t.integer "student_id" t.integer "course_id" @@ -1923,6 +1923,18 @@ ActiveRecord::Schema.define(:version => 20160907080621) do t.datetime "updated_at", :null => false end + create_table "syllabus_members", :force => true do |t| + t.integer "rank" + t.integer "syllabus_id" + t.integer "user_id" + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + end + + add_index "syllabus_members", ["rank"], :name => "index_syllabus_members_on_rank" + add_index "syllabus_members", ["syllabus_id"], :name => "index_syllabus_members_on_syllabus_id" + add_index "syllabus_members", ["user_id"], :name => "index_syllabus_members_on_user_id" + create_table "syllabuses", :force => true do |t| t.string "title" t.text "description" diff --git a/public/stylesheets/syllabus.css b/public/stylesheets/syllabus.css index 9aac34eae..1a04c73a5 100644 --- a/public/stylesheets/syllabus.css +++ b/public/stylesheets/syllabus.css @@ -617,3 +617,20 @@ a:hover.sy_class_ltitle{ color:#333;} /* 我的作业 */ .hw_classname{ width:180px; overflow:hidden; display:block;overflow:hidden;white-space: nowrap; text-overflow:ellipsis;} .hw_tab_top{ height: 50px; line-height: 50px; padding-left: 15px; border-bottom:1px solid #ddd; border-left:3px solid #3b94d6; } + +/*20160918教师团队*/ +.sy_new_tablebox{ padding:15px; padding-bottom:none;} +.sy_new_table{ width:100%; background:#fff; border:1px solid #e5e5e5; padding-bottom:30px;} +.sy_new_table thead tr{ height:40px; line-height:40px;} +.sy_new_table thead tr th{ border-bottom:1px solid #e5e5e5;} +.sy_new_table tbody tr:hover{ background:#f5f5f5;} +.sy_new_table tbody tr td{ height:40px; line-height:40px; border-bottom:1px dashed #e5e5e5; font-weight:normal; color:#888; text-align: center} +.sy_new_table tbody tr:last-child{ height:40px;} +.sy_new_tchlist li{ height:30px; line-height:30px;} +.sy_new_search{-webkit-border-radius:3px;-moz-border-radius:3px;-o-border-radius:3px;border-radius:3px; border:1px solid #d3d3d3; background:#fff; padding-left:5px; color:#888; height:32px; width:370px;box-shadow: inset 0px 0px 3px #dcdcdc; } +.sy_new_tchbox{ background:#f5f5f5; padding:15px; margin:15px; margin-top:0px;} +.sy_new_orange{font-size: 12px;padding: 0 5px;border-radius: 3px;line-height: 14px;color: #ff4a1b;border: 1px solid #ff4a1b;} +.sy_new_namebox{ width:180px; overflow:hidden;} +.sy_new_name{ display:block;max-width:120px; overflow:hidden;white-space: nowrap; text-overflow:ellipsis;} +.sy_new_long_name{ display:block;width:180px; overflow:hidden;white-space: nowrap; text-overflow:ellipsis;} +.mt12{ margin-top:12px;} diff --git a/spec/controllers/syllabus_member_controller_spec.rb b/spec/controllers/syllabus_member_controller_spec.rb new file mode 100644 index 000000000..b56654f55 --- /dev/null +++ b/spec/controllers/syllabus_member_controller_spec.rb @@ -0,0 +1,5 @@ +require 'rails_helper' + +RSpec.describe SyllabusMemberController, :type => :controller do + +end diff --git a/spec/factories/syllabus_members.rb b/spec/factories/syllabus_members.rb new file mode 100644 index 000000000..ab1bd6701 --- /dev/null +++ b/spec/factories/syllabus_members.rb @@ -0,0 +1,9 @@ +# Read about factories at https://github.com/thoughtbot/factory_girl + +FactoryGirl.define do + factory :syllabus_member do + rank 1 + syllabus nil + user nil + end +end diff --git a/spec/models/syllabus_member_spec.rb b/spec/models/syllabus_member_spec.rb new file mode 100644 index 000000000..464c1e965 --- /dev/null +++ b/spec/models/syllabus_member_spec.rb @@ -0,0 +1,5 @@ +require 'rails_helper' + +RSpec.describe SyllabusMember, :type => :model do + pending "add some examples to (or delete) #{__FILE__}" +end From 46c3e6e8f6ed947aae7ce4065718135b5af79c93 Mon Sep 17 00:00:00 2001 From: yuanke <249218296@qq.com> Date: Fri, 23 Sep 2016 14:16:28 +0800 Subject: [PATCH 08/23] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E4=BD=9C=E4=B8=9A?= =?UTF-8?q?=E5=8A=A8=E6=80=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/mobile/entities/activity.rb | 26 ++++++++++++++++++++++++++ app/api/mobile/entities/whomework.rb | 19 +++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/app/api/mobile/entities/activity.rb b/app/api/mobile/entities/activity.rb index b36b8039b..b2581c319 100644 --- a/app/api/mobile/entities/activity.rb +++ b/app/api/mobile/entities/activity.rb @@ -109,6 +109,28 @@ module Mobile "项目" end end + when :homework_commit_count + if ac.act_type == "HomeworkCommon" + ac.act.student_works.has_committed.count + end + when :last_commit_info + if ac.act_type == "HomeworkCommon" + if ac.act.student_works.has_committed.count > 0 + lc = ac.act.student_works.has_committed.reorder("commit_time desc").first + {:lasttime=>time_from_now(lc.commit_time), :lastname=>lc.user.show_name} + end + end + when :last_score_info + if ac.act_type == "HomeworkCommon" + if ac.act.student_works.has_committed.count > 0 + sw_id = "("+ac.act.student_works.map{|sw| sw.id}.join(",")+")" + student_work_scores = StudentWorksScore.where("student_work_id in #{sw_id} and score is not null").reorder("created_at desc") + unless student_work_scores.empty? + last_score = student_work_scores.first + {:lasttime=>time_from_now(last_score.created_at), :lastname=>last_score.user.show_name} + end + end + end end end end @@ -153,6 +175,10 @@ module Mobile act_expose :course_project_name #课程/项目名字 act_expose :syllabus_title #课程名字 act_expose :activity_type_name #课程问答区/项目缺陷等 + act_expose :homework_commit_count #作品提交数 + act_expose :last_commit_info #最近提交信息 + act_expose :last_score_info #最近评阅信息 + expose :has_praise , if: lambda { |instance, options| options[:user] } do |instance, options| if instance.act_type == "HomeworkCommon" || instance.act_type == "News" || instance.act_type == "Message" || instance.act_type == "BlogComment" || instance.act_type == "JournalsForMessage" || instance.act_type == "Issue" has_praise = false diff --git a/app/api/mobile/entities/whomework.rb b/app/api/mobile/entities/whomework.rb index b19d34f05..1fbc52eea 100644 --- a/app/api/mobile/entities/whomework.rb +++ b/app/api/mobile/entities/whomework.rb @@ -38,6 +38,22 @@ module Mobile wh.id when :title wh.name + when :homework_commit_count + wh.student_works.has_committed.count + when :last_commit_info + if wh.student_works.has_committed.count > 0 + lc = wh.student_works.has_committed.reorder("commit_time desc").first + {:lasttime=>time_from_now(lc.commit_time), :lastname=>lc.user.show_name} + end + when :last_score_info + if wh.student_works.has_committed.count > 0 + sw_id = "("+wh.student_works.map{|sw| sw.id}.join(",")+")" + student_work_scores = StudentWorksScore.where("student_work_id in #{sw_id} and score is not null").reorder("created_at desc") + unless student_work_scores.empty? + last_score = student_work_scores.first + {:lasttime=>time_from_now(last_score.created_at), :lastname=>last_score.user.show_name} + end + end end end end @@ -74,6 +90,9 @@ module Mobile whomework_expose :evaluation_end whomework_expose :praise_count whomework_expose :comment_count + whomework_expose :homework_commit_count #作品提交数 + whomework_expose :last_commit_info #最近提交信息 + whomework_expose :last_score_info #最近评阅信息 expose :all_children, using: Mobile::Entities::Jours do |f, opt| #f[:journals_for_messages] if f.is_a?(Hash) && f.key?(:journals_for_messages) if f.is_a?(::HomeworkCommon) From 86a3ce185d7d3190fe77613ea244feb2ade5d2bf Mon Sep 17 00:00:00 2001 From: Tim Date: Fri, 23 Sep 2016 14:17:23 +0800 Subject: [PATCH 09/23] =?UTF-8?q?=E4=B8=AA=E4=BA=BA=E4=B8=BB=E9=A1=B5?= =?UTF-8?q?=E4=BE=A7=E5=AF=BC=E8=88=AA=E5=AE=BD=E5=BA=A6=E9=99=90=E5=88=B6?= =?UTF-8?q?=E6=9B=B4=E6=94=B9=EF=BC=8C=E6=8F=90=E7=A4=BA=E6=A1=86=E6=95=88?= =?UTF-8?q?=E6=9E=9C=E5=8F=8Ajs=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/layouts/_user_courses.html.erb | 61 +++++++++++----------- public/images/user/icons_user_leftnav.png | Bin 3456 -> 3465 bytes public/images/user/user_navmore_icons.png | Bin 1072 -> 1085 bytes public/stylesheets/css/structure.css | 7 ++- 4 files changed, 36 insertions(+), 32 deletions(-) diff --git a/app/views/layouts/_user_courses.html.erb b/app/views/layouts/_user_courses.html.erb index 60db07db0..8f996fe1c 100644 --- a/app/views/layouts/_user_courses.html.erb +++ b/app/views/layouts/_user_courses.html.erb @@ -1,19 +1,19 @@ <% courses.each do |course|%> -
  • +
  • <% is_teacher = User.current.logged? && (User.current.admin? || User.current.allowed_to?(:as_teacher,course)) %> -

    - <% title = "#{course.syllabus.title}".html_safe %> - <%= link_to title, syllabus_path(course.syllabus_id), :target => '_blank', :class => 'hidden', :style => "max-width:91px; display:inline-block;"%> +

    + <%#= link_to course.name+"("+current_time_and_term_short(course)+")", course_path(course.id,:host=>Setting.host_course), :id => "show_course_#{course.id}", :class => 'course_list_menu hidden', :target => '_blank', :title => (course.is_public? ? "公开班级:":"私有班级:")+course.name+"("+current_time_and_term(course)+")"%> <% count = ShieldActivity.where("container_type='User' and container_id=#{user.id} and shield_type='Course' and shield_id=#{course.id}").count %> @@ -113,25 +113,26 @@ } $(".course_list_menu").each(function(){ - var courseWidth = $(this).children().eq(0).children().width(); - var classWidth = $(this).children().eq(2).children().width(); - var newClassWidth = 182 - courseWidth; - var newCourseWidth = 182 - classWidth; - console.log(courseWidth, classWidth); - if(courseWidth < 91 && classWidth > 91){ - $(this).children().eq(2).css("max-width",newClassWidth + "px"); - } - if(classWidth < 91 && courseWidth > 91){ - $(this).children().eq(0).css("max-width",newCourseWidth + "px"); - } + $(this).mouseenter(function(){ + $(".sub-menu-title").hide(); + $(this).next().stop(); + $(this).next().show(); + }); + $(this).mouseleave(function(){ + $(this).next().delay(500).hide(0); + }); }) - $(".course-name").each(function(){ - $(this).mouseenter(function(){ - $(this).parent().parent().children().eq(3).show(); - }); - $(this).mouseleave(function(){ - $(this).parent().parent().children().eq(3).hide(); - }); - }) + $(".sub-menu-title").each(function(){ + var boxWidth = $(this).width(); + var leftAttr = boxWidth + 50 + $(this).css("left",-leftAttr); + $(this).mouseover(function(){ + $(this).stop(); + $(this).show(); + }); + $(this).mouseout(function(){ + $(this).delay(500).hide(0); + }); + }); diff --git a/public/images/user/icons_user_leftnav.png b/public/images/user/icons_user_leftnav.png index 7983c4dc6e57599455234427fc42d295e7c39e89..b667508da64368aa31024ad31b2c746315ab98c2 100644 GIT binary patch delta 2667 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 E0y;LA6951J diff --git a/public/images/user/user_navmore_icons.png b/public/images/user/user_navmore_icons.png index e4fb91b541329d50720c2d106570ec0e59044479..249d8ab15e833d964b26ff0944ed49592027acae 100644 GIT binary patch delta 408 zcmdnMv6o|m8&iz4g`<$_i>(q+L@y;X#R{s|8JFJ4i5|o-|m4e#>M_hU*>oGgk zZ+7RiXJBB^3h)VWwVrbA-M8PB+a51H_r`nf&6@2`eCFP&-SNa}#`V3oKQ1}<#&O2= zeYZdU|NozC z8yH`GW>b&se9i04$P5C0U=m22=eCQI*zrxBCuZvwgMzu)5$_i>(q+L@y;X#R{s|8JFJ4i5|o-|m4e#>M_hU*>oGgk z9~Y@NW?*1Y5AX?bwVrbA+poVjUwyyv>U-Dz=SeH?ZM^c{b>@xaRrfmgKihcqz01rS z|NsBzcj0{x)WTa5>qOz zG=n}(6HPz{jtLLqO>Z5re7}@?j?C*9O!n7vnDVQyFIgVV#D)y?SnHX17~TpV4DgC; RX9rrs;OXk;vd$@?2>^fLkeL7g diff --git a/public/stylesheets/css/structure.css b/public/stylesheets/css/structure.css index 5fc47ad81..2c2773774 100644 --- a/public/stylesheets/css/structure.css +++ b/public/stylesheets/css/structure.css @@ -596,7 +596,7 @@ a.user_leftinfo_img { display:block; width:80px; height:80px; margin:15px auto;} .user_sub_menu li a:hover,.user_sub_menu li a:target { color:#3b94d6; background:#fff url(/images/user/user_navmore_icons.png) 0px 0px no-repeat;} .user_sub_menu li a:hover,.user_sub_menu li a:target{} .user_sub_menu li:last-child a { } -.user_sub_menu li p {padding:0 15px 0 25px; border:1px solid #e5e5e5; border-bottom:none; background:#f8f8f8;} +.user_sub_menu li p {padding:0 25px; border:1px solid #e5e5e5; border-bottom:none; background:#f8f8f8;} .user_sub_menu li p:hover {background:#fff;} .user_sub_menu li p:hover a {background:#fff;} .user_sub_menu li p:hover,.user_sub_menu li p:target {color:#3b94d6; background:#fff url(/images/user/user_navmore_icons.png) 0px 0px no-repeat;} @@ -640,7 +640,10 @@ a.user_navmorebox .user_icons_closeclass{ background:url(/images/user/icons_user_leftnav.png) -25px -347px no-repeat; } .show-all-sub {position:absolute; top:18px; right:15px;} -.sub-menu-title {position:absolute; border:1px solid #ddd; background-color:#fff; padding:2px 5px; z-index:99; white-space:nowrap; left:25px; top:35px; display:none;} +.sub-menu-title {position:absolute; background-color:#fff; padding:5px 10px; z-index:99; white-space:nowrap; top:-13px; box-shadow: 0px 2px 8px rgba(146, 153, 169, 0.5); display:none;} +.sub-menu-title div a {background-color:#fff; height:auto; line-height:1; font-size:12px;} +.sub-menu-title em {display:block; border-width:8px; position:absolute;top:23px; right:-16px; border-style:dashed dashed dashed solid; border-color:transparent transparent transparent #fff; font-size:0; line-height:0; z-index:1;} +.sub-menu-title font {display:block; border-width:8px; position:absolute;top:24px; right:-17px; border-style:dashed dashed dashed solid; border-color:transparent transparent transparent rgba(146, 153, 169, 0.5); font-size:0; line-height:0;} /* 个人主页左侧导航更多功能 */ .user_navmore_box {position:absolute; width:15px; height:15px; right:13px; top:17px; cursor:pointer;} .user_navmore_box ul li:hover ul {display:block; } From 56a55eb911e44bdf2437446a94ea9ef156643e79 Mon Sep 17 00:00:00 2001 From: Tim Date: Fri, 23 Sep 2016 14:41:09 +0800 Subject: [PATCH 10/23] =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E5=8A=A8=E6=80=81?= =?UTF-8?q?=E5=92=8C=E8=AF=A6=E6=83=85=E6=B7=BB=E5=8A=A0=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E4=BD=9C=E5=93=81=E6=95=B0=E5=8F=8A=E6=8F=90=E4=BA=A4=E5=8A=A8?= =?UTF-8?q?=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/assets/wechat/activities.html | 10 ++++++++++ public/assets/wechat/homework_detail.html | 5 +++++ 2 files changed, 15 insertions(+) diff --git a/public/assets/wechat/activities.html b/public/assets/wechat/activities.html index 09490b766..6c42ef098 100644 --- a/public/assets/wechat/activities.html +++ b/public/assets/wechat/activities.html @@ -37,6 +37,11 @@
    迟交扣分:{{act.homework_common_detail.late_penalty}}分 匿评开启时间:{{act.homework_common_detail.evaluation_start}}
    缺评扣分:{{act.homework_common_detail.absence_penalty}}分/作品 匿评关闭时间:{{act.homework_common_detail.evaluation_end}} +
    作品提交数: 10
    +
    + #1个月前 胡莎莎 评阅了作品
    + #2个月前 胡莎莎 提交了作品 +
  • @@ -402,6 +407,11 @@
    迟交扣分:{{act.homework_common_detail.late_penalty}}分 匿评开启时间:{{act.homework_common_detail.evaluation_start}}
    缺评扣分:{{act.homework_common_detail.absence_penalty}}分/作品 匿评关闭时间:{{act.homework_common_detail.evaluation_end}} +
    作品提交数: 10
    +
    + #1个月前 胡莎莎 评阅了作品
    + #2个月前 胡莎莎 提交了作品 +
    diff --git a/public/assets/wechat/homework_detail.html b/public/assets/wechat/homework_detail.html index 161c3be94..1806f9eb7 100644 --- a/public/assets/wechat/homework_detail.html +++ b/public/assets/wechat/homework_detail.html @@ -30,6 +30,11 @@ 缺评扣分:{{homework.absence_penalty}}分/作品 匿评关闭时间:{{homework.evaluation_end}}
    +
    作品提交数: 10
    +
    + #1个月前 胡莎莎 评阅了作品
    + #2个月前 胡莎莎 提交了作品 +
    From 70042fe91fa016cf91f501fdd9416ed124af7aeb Mon Sep 17 00:00:00 2001 From: cxt Date: Fri, 23 Sep 2016 16:44:49 +0800 Subject: [PATCH 11/23] =?UTF-8?q?=E5=B8=96=E5=AD=90=E8=AF=A6=E6=83=85?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E7=9A=84=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/messages_controller.rb | 56 +++++++++---------- app/helpers/application_helper.rb | 7 ++- app/models/blog_comment.rb | 2 + app/models/comment.rb | 2 + app/models/contest.rb | 1 + app/models/homework_common.rb | 2 + app/models/issue.rb | 1 + app/models/journal.rb | 2 + app/models/journals_for_message.rb | 2 + app/models/memo.rb | 2 + app/models/message.rb | 1 + app/models/news.rb | 3 + app/models/org_document_comment.rb | 2 + app/models/praise_tread_cache.rb | 3 +- app/models/syllabus.rb | 2 + app/views/messages/_course_show.html.erb | 6 +- .../messages/_org_subfield_show.html.erb | 6 +- app/views/messages/_project_show.html.erb | 6 +- app/views/praise_tread/_praise.html.erb | 4 +- 19 files changed, 68 insertions(+), 42 deletions(-) diff --git a/app/controllers/messages_controller.rb b/app/controllers/messages_controller.rb index 37383712f..5731244c3 100644 --- a/app/controllers/messages_controller.rb +++ b/app/controllers/messages_controller.rb @@ -38,47 +38,45 @@ class MessagesController < ApplicationController # Show a topic and its replies def show @isReply = true - page = params[:page] - # Find the page of the requested reply - if params[:r] && page.nil? - offset = @topic.children.count(:conditions => ["#{Message.table_name}.id < ?", params[:r].to_i]) - page = 1 + offset / REPLIES_PER_PAGE - end + # page = params[:page] + # # Find the page of the requested reply + # if params[:r] && page.nil? + # offset = @topic.children.count(:conditions => ["#{Message.table_name}.id < ?", params[:r].to_i]) + # page = 1 + offset / REPLIES_PER_PAGE + # end all_comments = [] - @reply_count = get_all_children(all_comments, @topic).count + @replies = get_all_children(all_comments, @topic) + @reply_count = @replies.count @reply = Message.new(:subject => "RE: #{@message.subject}") if @course - messages_replies = @topic.children. - includes(:author, :attachments, {:board => :project}). - reorder("#{Message.table_name}.created_on DESC"). + #@replies = @topic.children. + #includes(:author, :attachments, :praise_tread_cache, {:board => :project}). + #reorder("#{Message.table_name}.created_on DESC"). #limit(@reply_pages.per_page). #offset(@reply_pages.offset). - all - @replies = paginateHelper messages_replies,10 - @reply = Message.new(:subject => "RE: #{@message.subject}") + #all + #@replies = paginateHelper messages_replies,10 @left_nav_type = 2 render :action => "show", :layout => "base_courses"#by young elsif @project - @reply_pages = Paginator.new @reply_count, REPLIES_PER_PAGE, page - @replies = @topic.children. - includes(:author, :attachments, {:board => :project}). - reorder("#{Message.table_name}.created_on DESC"). - limit(@reply_pages.per_page). - offset(@reply_pages.offset). - all + #@reply_pages = Paginator.new @reply_count, REPLIES_PER_PAGE, page + # @replies = @topic.children. + # includes(:author, :attachments, {:board => :project}). + # reorder("#{Message.table_name}.created_on DESC"). + # limit(@reply_pages.per_page). + # offset(@reply_pages.offset). + # all - @reply = Message.new(:subject => "RE: #{@message.subject}") render :action => "show", :layout => "base_projects"#by young else - @reply_pages = Paginator.new @reply_count, REPLIES_PER_PAGE, page - @replies = @topic.children. - includes(:author, :attachments, {:board => :project}). - reorder("#{Message.table_name}.created_on DESC"). - limit(@reply_pages.per_page). - offset(@reply_pages.offset). - all + # @reply_pages = Paginator.new @reply_count, REPLIES_PER_PAGE, page + # @replies = @topic.children. + # includes(:author, :attachments, {:board => :project}). + # reorder("#{Message.table_name}.created_on DESC"). + # limit(@reply_pages.per_page). + # offset(@reply_pages.offset). + # all - @reply = Message.new(:subject => "RE: #{@message.subject}") @organization = @org_subfield.organization render :action => "show", :layout => "base_org"#by young end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 8b5b594bd..511266ba1 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -3246,7 +3246,12 @@ end #获取所有子节点 def get_all_children result, jour - if (jour.kind_of? JournalsForMessage) || (jour.kind_of? Message) || (jour.kind_of? BlogComment) || (jour.kind_of? OrgDocumentComment) + if jour.kind_of? JournalsForMessage + jour.children.includes(:author, :praise_tread_cache).each do |jour_child| + result << jour_child + get_all_children result, jour_child + end + elsif (jour.kind_of? Message) || (jour.kind_of? BlogComment) || (jour.kind_of? OrgDocumentComment) jour.children.each do |jour_child| result << jour_child get_all_children result, jour_child diff --git a/app/models/blog_comment.rb b/app/models/blog_comment.rb index 8959e9c29..6290840a3 100644 --- a/app/models/blog_comment.rb +++ b/app/models/blog_comment.rb @@ -12,6 +12,8 @@ class BlogComment < ActiveRecord::Base belongs_to :last_reply, :class_name => 'BlogComment', :foreign_key => 'last_comment_id' # 虚拟关联 has_many :user_acts, :class_name => 'UserAcivity',:as =>:act + has_many :praise_tread, as: :praise_tread_object, dependent: :destroy + has_one :praise_tread_cache, as: :object, dependent: :destroy acts_as_watchable validates_presence_of :title, :content diff --git a/app/models/comment.rb b/app/models/comment.rb index 633c9a825..27a917b93 100644 --- a/app/models/comment.rb +++ b/app/models/comment.rb @@ -27,6 +27,8 @@ class Comment < ActiveRecord::Base has_many :course_messages, :class_name =>'CourseMessage', :as => :course_message, :dependent => :destroy has_many :forge_messages, :class_name => 'ForgeMessage', :as => :forge_message, :dependent => :destroy #end + has_many :praise_tread, as: :praise_tread_object, dependent: :destroy + has_one :praise_tread_cache, as: :object, dependent: :destroy acts_as_event :datetime => :updated_on, :description => :comments, :type => 'news', diff --git a/app/models/contest.rb b/app/models/contest.rb index 650e363a8..4fbd5441e 100644 --- a/app/models/contest.rb +++ b/app/models/contest.rb @@ -13,6 +13,7 @@ class Contest < ActiveRecord::Base has_many :join_in_competitions, foreign_key: 'competition_id', :dependent => :destroy has_many :join_in_contests, class_name: 'JoinInCompetition', foreign_key: 'competition_id', :dependent => :destroy has_many :praise_tread, as: :praise_tread_object, dependent: :destroy + has_one :praise_tread_cache, as: :object, dependent: :destroy has_many :contestnotifications, :dependent => :destroy, :include => :author diff --git a/app/models/homework_common.rb b/app/models/homework_common.rb index 7a082cecf..dfff273a0 100644 --- a/app/models/homework_common.rb +++ b/app/models/homework_common.rb @@ -19,6 +19,8 @@ class HomeworkCommon < ActiveRecord::Base has_many :student_works_evaluation_distributions, :through => :student_works #一个作业的分配的匿评列表 has_many :journals_for_messages, :as => :jour, :dependent => :destroy has_many :apply_homeworks, :dependent => :destroy + has_many :praise_tread, as: :praise_tread_object, dependent: :destroy + has_one :praise_tread_cache, as: :object, dependent: :destroy has_many :acts, :class_name => 'Activity', :as => :act, :dependent => :destroy #用户活动 # 课程动态 has_many :course_acts, :class_name => 'CourseActivity',:as =>:course_act ,:dependent => :destroy diff --git a/app/models/issue.rb b/app/models/issue.rb index 222a4f4e2..9c3c8d168 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -53,6 +53,7 @@ class Issue < ActiveRecord::Base has_many :forge_acts, :class_name => 'ForgeActivity',:as =>:forge_act ,:dependent => :destroy # end has_many :praise_tread, as: :praise_tread_object, dependent: :destroy + has_one :praise_tread_cache, as: :object, dependent: :destroy # ForgeMessage虚拟关联(多态) has_many :forge_messages, :class_name => 'ForgeMessage',:as =>:forge_message ,:dependent => :destroy diff --git a/app/models/journal.rb b/app/models/journal.rb index f22015f47..f14484a31 100644 --- a/app/models/journal.rb +++ b/app/models/journal.rb @@ -35,6 +35,8 @@ class Journal < ActiveRecord::Base # 被ForgeMessage虚拟关联 has_many :forge_messages, :class_name => 'ForgeMessage',:as =>:forge_message ,:dependent => :destroy has_many :at_messages, as: :at_message, dependent: :destroy + has_many :praise_tread, as: :praise_tread_object, dependent: :destroy + has_one :praise_tread_cache, as: :object, dependent: :destroy acts_as_attachable attr_accessor :indice acts_as_tree :counter_cache => :comments_count, :order => "#{Journal.table_name}.created_on ASC" diff --git a/app/models/journals_for_message.rb b/app/models/journals_for_message.rb index 68cb9da15..30d8120ef 100644 --- a/app/models/journals_for_message.rb +++ b/app/models/journals_for_message.rb @@ -68,6 +68,8 @@ class JournalsForMessage < ActiveRecord::Base has_many :user_feedback_messages, :class_name => 'UserFeedbackMessage', :as =>:journals_for_message, :dependent => :destroy has_many :at_messages, as: :at_message, dependent: :destroy + has_many :praise_tread, as: :praise_tread_object, dependent: :destroy + has_one :praise_tread_cache, as: :object, dependent: :destroy validates :notes, presence: true, if: :is_homework_jour? after_create :act_as_activity, :act_as_course_activity, :act_as_course_message, diff --git a/app/models/memo.rb b/app/models/memo.rb index ee9f4c8db..793d534d4 100644 --- a/app/models/memo.rb +++ b/app/models/memo.rb @@ -48,6 +48,8 @@ class Memo < ActiveRecord::Base acts_as_attachable has_many :user_score_details, :class_name => 'UserScoreDetails',:as => :score_changeable_obj has_many :praise_tread, as: :praise_tread_object, dependent: :destroy + has_one :praise_tread_cache, as: :object, dependent: :destroy + # 消息 has_many :memo_messages, :class_name =>'MemoMessage', :dependent => :destroy # end diff --git a/app/models/message.rb b/app/models/message.rb index 14add0d02..3192907fe 100644 --- a/app/models/message.rb +++ b/app/models/message.rb @@ -26,6 +26,7 @@ class Message < ActiveRecord::Base belongs_to :board,:touch => true belongs_to :author, :class_name => 'User', :foreign_key => 'author_id' has_many :praise_tread, as: :praise_tread_object, dependent: :destroy + has_one :praise_tread_cache, as: :object, dependent: :destroy # has_many :org_subfield_messages, :dependent => :destroy # has_many :org_subfields, :through => :org_subfield_messages diff --git a/app/models/news.rb b/app/models/news.rb index 58bbc40ac..0a893e34e 100644 --- a/app/models/news.rb +++ b/app/models/news.rb @@ -40,6 +40,9 @@ class News < ActiveRecord::Base has_many :forge_messages, :class_name => 'ForgeMessage', :as => :forge_message, :dependent => :destroy #end + has_many :praise_tread, as: :praise_tread_object, dependent: :destroy + has_one :praise_tread_cache, as: :object, dependent: :destroy + #转发表 has_many :forwards, :as => :from, :dependent => :destroy diff --git a/app/models/org_document_comment.rb b/app/models/org_document_comment.rb index dd7734a54..a87fe783f 100644 --- a/app/models/org_document_comment.rb +++ b/app/models/org_document_comment.rb @@ -6,6 +6,8 @@ class OrgDocumentComment < ActiveRecord::Base belongs_to :organization belongs_to :creator, :class_name => 'User', :foreign_key => 'creator_id' has_many :editor_of_documents, :dependent => :destroy + has_many :praise_tread, as: :praise_tread_object, dependent: :destroy + has_one :praise_tread_cache, as: :object, dependent: :destroy acts_as_tree :order => "#{OrgDocumentComment.table_name}.sticky asc, #{OrgDocumentComment.table_name}.created_at desc" acts_as_attachable has_many :org_acts, :class_name => 'OrgActivity',:as =>:org_act ,:dependent => :destroy diff --git a/app/models/praise_tread_cache.rb b/app/models/praise_tread_cache.rb index 739b45876..27f4104fc 100644 --- a/app/models/praise_tread_cache.rb +++ b/app/models/praise_tread_cache.rb @@ -1,6 +1,7 @@ class PraiseTreadCache < ActiveRecord::Base attr_accessible :object_id,:object_type,:praise_num,:tread_num - + belongs_to :object, :polymorphic => true + def plus(flag,num) case flag when 0 diff --git a/app/models/syllabus.rb b/app/models/syllabus.rb index 0c23c1b13..f72463503 100644 --- a/app/models/syllabus.rb +++ b/app/models/syllabus.rb @@ -10,6 +10,8 @@ class Syllabus < ActiveRecord::Base has_many :courses has_many :journals_for_messages, :as => :jour, :dependent => :destroy has_many :syllabus_members, :dependent => :destroy + has_many :praise_tread, as: :praise_tread_object, dependent: :destroy + has_one :praise_tread_cache, as: :object, dependent: :destroy attr_accessible :description, :user_id, :title, :eng_name, :syllabus_type, :credit, :hours, :theory_hours, :practice_hours, :applicable_major, :pre_course safe_attributes 'title','user', 'description', 'eng_name', 'syllabus_type', 'credit', 'hours', 'theory_hours', 'practice_hours', 'credit', 'applicable_major', 'pre_course' diff --git a/app/views/messages/_course_show.html.erb b/app/views/messages/_course_show.html.erb index 95c9b7df1..abdeef255 100644 --- a/app/views/messages/_course_show.html.erb +++ b/app/views/messages/_course_show.html.erb @@ -93,10 +93,10 @@
    - <% all_comments = []%> - <% comments = get_all_children(all_comments, @topic) %> + <%# all_comments = []%> + <%# comments = get_all_children(all_comments, @topic) %>
    - <% comments.each_with_index do |reply,i| %> + <% @replies.each do |reply| %>