Compare commits

...

57 Commits

Author SHA1 Message Date
  yuanke 7344c105b6 .冲突解决 10 years ago
  yuanke dbbb914768 Merge branch 'develop' into yuanke_cache 10 years ago
  yuanke 9959e72846 冲突漏掉的 10 years ago
  yuanke 06c7919f00 Merge branch 'develop' into yuanke_cache 10 years ago
  yuanke 59e96e20ff 博客数量、关注、粉丝变化修改user中的updated_at字段 10 years ago
  yuanke d8ce5100b3 user 加个updated_at字段 10 years ago
  yuanke 29fa2389d9 个人主页缓存 10 years ago
  yuanke 954950b14b Merge branch 'develop' into yuanke_cache 10 years ago
  yuanke 00ad2389c2 动态回复缓存修改保证KE能加载出来 10 years ago
  yuanke 3aa35c2f80 回复缓存修改 10 years ago
  yuanke 4917247c73 缓存修改 10 years ago
  yuanke 7677e726eb 缓存相关修改 10 years ago
  yuanke 730335cfcc 缓存修改 10 years ago
  yuanke d44b6d68f7 Merge branch 'cxt_replies' into yuanke_cache 10 years ago
  yuanke e4049c9654 缓存修改 10 years ago
  yuanke 030186f486 Merge branch 'develop' into yuanke_cache 10 years ago
  yuanke 04e29c51f2 缓存修改 10 years ago
  yuanke 4544e79a5b . 10 years ago
  yuanke 456ef9acd5 . 10 years ago
  yuanke 350ba30b71 作业缓存还原 10 years ago
  yuanke 5a89c821a0 作业缓存BUG修改 10 years ago
  yuanke 87d3e6190c 班级作业缓存BUG修改 10 years ago
  yuanke faa1a46c47 修改作业缓存的BUG 10 years ago
  yuanke 6263dec2d9 个人主页项目和班级左侧列表缓存BUG修改 10 years ago
  yuanke 96650b951a 资源缓存相关BUG修改 10 years ago
  yuanke 5f186f9cab 缓存BUG修改 10 years ago
  yuanke 99b33babeb 班级作业动态加缓存 10 years ago
  yuanke e59547adc4 Merge branch 'develop' into yuanke_cache 10 years ago
  yuanke a5602fd9c3 优化回复的代码 10 years ago
  yuanke 07e0c3c9a8 修改获取帖子回复的函数 10 years ago
  yuanke 5766b0828f 个人主页代码优化 10 years ago
  yuanke efc2874b6c 个人主页缓存增加 10 years ago
  yuanke 0eeb4ed439 班级主页缓存修改 10 years ago
  yuanke 6f63e3ea1f task任务 mysql数据移到redis 10 years ago
  yuanke 36ffc884cc 班级资源库缓存修改 10 years ago
  yuanke 0d2b8f8500 Merge branch 'develop' into yuanke_cache 10 years ago
  yuanke 24a4874abb 项目动态缓存先还原 10 years ago
  yuanke eab12309ef 动态相关缓存 10 years ago
  yuanke a4a20614d7 班级推荐key修改 10 years ago
  yuanke 25d86c517e Merge branch 'develop' into yuanke_cache 10 years ago
  yuanke 2d5c71570e 删除production.rb 10 years ago
  yuanke eb4538ddfa 增加忽略production.rb 10 years ago
  yuanke 98e004b503 Merge branch 'develop' into yuanke_cache 10 years ago
  yuanke 17e437619f . 10 years ago
  yuanke f6285b66e8 修改缓存设置 10 years ago
  yuanke a7c9031be0 Merge branch 'weixin_guange' into yuanke_cache 10 years ago
  yuanke f022b72439 Merge branch 'develop' into yuanke_cache 10 years ago
  yuanke bdfc13d2b9 班级主页缓存修改 10 years ago
  yuanke 7ed5a04a54 班级讨论区和通知缓存修改 10 years ago
  yuanke 627bc9c8c7 班级讨论区通知缓存增加 10 years ago
  yuanke e1e1e9ecdf 缓存方式改为redis_store 10 years ago
  yuanke cdb7004820 班级主页相关缓存增加 10 years ago
  yuanke fb85353dbe 微信动态 10 years ago
  yuanke 2f0cc6d5e0 微信修改个显示动态的BUG 10 years ago
  yuanke caa5d6ead2 班级缓存增加 10 years ago
  yuanke 4c79db61ef 缓存 10 years ago
  yuanke dc29f728b4 缓存配置 10 years ago
83 changed files with 1042 additions and 343 deletions
Unified View
  1. +1
    -0
      .gitignore
  2. +2
    -2
      Gemfile
  3. +12
    -2
      app/api/mobile/apis/new_comment.rb
  4. +1
    -0
      app/controllers/blog_comments_controller.rb
  5. +2
    -0
      app/controllers/comments_controller.rb
  6. +1
    -0
      app/controllers/courses_controller.rb
  7. +2
    -0
      app/controllers/files_controller.rb
  8. +3
    -0
      app/controllers/issues_controller.rb
  9. +1
    -0
      app/controllers/messages_controller.rb
  10. +1
    -0
      app/controllers/my_controller.rb
  11. +1
    -1
      app/controllers/praise_tread_controller.rb
  12. +8
    -6
      app/controllers/student_work_controller.rb
  13. +2
    -1
      app/controllers/users_controller.rb
  14. +3
    -0
      app/controllers/words_controller.rb
  15. +14
    -14
      app/helpers/application_helper.rb
  16. +10
    -1
      app/models/attachment.rb
  17. +16
    -2
      app/models/blog_comment.rb
  18. +11
    -0
      app/models/comment.rb
  19. +4
    -0
      app/models/course.rb
  20. +8
    -2
      app/models/homework_common.rb
  21. +1
    -1
      app/models/homework_detail_manual.rb
  22. +1
    -1
      app/models/homework_detail_programing.rb
  23. +8
    -0
      app/models/journal.rb
  24. +17
    -0
      app/models/journals_for_message.rb
  25. +12
    -0
      app/models/message.rb
  26. +9
    -2
      app/models/news.rb
  27. +53
    -0
      app/models/praise_tread.rb
  28. +1
    -1
      app/models/student_work.rb
  29. +1
    -1
      app/models/student_work_project.rb
  30. +3
    -0
      app/services/watches_service.rb
  31. +40
    -38
      app/views/courses/_course_activity_users.html.erb
  32. +5
    -3
      app/views/courses/show.html.erb
  33. +11
    -9
      app/views/files/_resource_detail.html.erb
  34. +28
    -20
      app/views/layouts/_course_base_info.html.erb
  35. +7
    -6
      app/views/layouts/_user_courses.html.erb
  36. +11
    -4
      app/views/layouts/_user_projects.html.erb
  37. +98
    -91
      app/views/layouts/base_courses.html.erb
  38. +10
    -4
      app/views/layouts/new_base_user.html.erb
  39. +1
    -1
      app/views/organizations/_org_activities.html.erb
  40. +1
    -1
      app/views/organizations/_org_course_create.html.erb
  41. +1
    -1
      app/views/organizations/_org_course_homework.html.erb
  42. +1
    -1
      app/views/organizations/_org_course_message.html.erb
  43. +1
    -1
      app/views/organizations/_org_course_news.html.erb
  44. +1
    -1
      app/views/organizations/_org_course_poll.html.erb
  45. +1
    -1
      app/views/organizations/_org_project_issue.html.erb
  46. +1
    -1
      app/views/organizations/_org_subfield_message.html.erb
  47. +1
    -1
      app/views/organizations/_org_subfield_news.html.erb
  48. +1
    -1
      app/views/organizations/_project_create.html.erb
  49. +1
    -1
      app/views/organizations/_project_message.html.erb
  50. +1
    -1
      app/views/organizations/_show_org_document.html.erb
  51. +1
    -1
      app/views/projects/_attachment_acts.html.erb
  52. +1
    -1
      app/views/projects/_project_commit.html.erb
  53. +1
    -1
      app/views/projects/_project_create.html.erb
  54. +1
    -1
      app/views/projects/_project_news.html.erb
  55. +1
    -1
      app/views/sub_document_comments/_show_sub_document.html.erb
  56. +3
    -1
      app/views/users/_course_attachment.html.erb
  57. +1
    -1
      app/views/users/_course_create.html.erb
  58. +4
    -2
      app/views/users/_course_homework.html.erb
  59. +7
    -2
      app/views/users/_course_journalsformessage.html.erb
  60. +10
    -4
      app/views/users/_course_message.html.erb
  61. +5
    -2
      app/views/users/_course_news.html.erb
  62. +1
    -1
      app/views/users/_course_poll.html.erb
  63. +3
    -1
      app/views/users/_homework_post_reply.html.erb
  64. +1
    -1
      app/views/users/_project_attachment.html.erb
  65. +2
    -2
      app/views/users/_project_create.html.erb
  66. +3
    -1
      app/views/users/_project_issue.html.erb
  67. +3
    -1
      app/views/users/_project_issue_reply.html.erb
  68. +7
    -2
      app/views/users/_project_message.html.erb
  69. +1
    -1
      app/views/users/_project_news.html.erb
  70. +3
    -2
      app/views/users/_user_activities.html.erb
  71. +3
    -1
      app/views/users/_user_blog.html.erb
  72. +3
    -1
      app/views/users/_user_homework_detail.html.erb
  73. +1
    -1
      app/views/users/_user_journalsformessage.html.erb
  74. +51
    -51
      app/views/users/show.html.erb
  75. +2
    -1
      config/environments/development.rb
  76. +1
    -1
      config/environments/production.rb.template
  77. +38
    -0
      config/environments/production.rb.test
  78. +11
    -0
      db/migrate/20161011021450_add_reply_updated_at_to_blog_comments.rb
  79. +5
    -0
      db/migrate/20161011060435_add_updated_at_to_attachments.rb
  80. +5
    -0
      db/migrate/20161011063828_add_updated_at_to_attachment_histories.rb
  81. +5
    -0
      db/migrate/20161019032326_add_updated_at_to_users.rb
  82. +396
    -34
      db/schema.rb
  83. +31
    -0
      lib/tasks/mysql2redis.rake

+ 1
- 0
.gitignore View File

@@ -39,3 +39,4 @@ public/javascripts/wechat/node_modules/
.access_token .access_token
tmux*.log tmux*.log
config/wechat.yml config/wechat.yml
config/environments/production.rb

+ 2
- 2
Gemfile View File

@@ -50,10 +50,10 @@ gem 'elasticsearch-model'
gem 'elasticsearch-rails' gem 'elasticsearch-rails'
#rails 3.2.22.2 bug #rails 3.2.22.2 bug
gem "test-unit", "~>3.0"
gem "test-unit", "~>3.0"
### profile ### profile
gem 'oneapm_rpm'
gem 'oneapm_rpm'
group :development do group :development do
gem 'grape-swagger' gem 'grape-swagger'


+ 12
- 2
app/api/mobile/apis/new_comment.rb View File

@@ -112,9 +112,10 @@ module Mobile
# end # end
if reply_type == nil || reply_type == 0 if reply_type == nil || reply_type == 0
homework_common = HomeworkCommon.find(params[:id]) homework_common = HomeworkCommon.find(params[:id])
feedback = HomeworkCommon.add_homework_jour(current_user, params[:content], params[:id], params[:id])
feedback = HomeworkCommon.add_homework_jour(current_user, params[:content], params[:id],params[:id])
if (feedback.errors.empty?) if (feedback.errors.empty?)
homework_common.update_column(:updated_at, Time.now) homework_common.update_column(:updated_at, Time.now)
homework_common.update_column(:reply_updated_at, Time.now)
result = 2 result = 2
update_id = homework_common.id update_id = homework_common.id
end end
@@ -124,9 +125,10 @@ module Mobile
homework_common = HomeworkCommon.find reply.jour_id homework_common = HomeworkCommon.find reply.jour_id


options = {:notes => params[:content], :reply_id => reply.user_id,:user_id => current_user.id,:m_parent_id => params[:id].to_i,:m_reply_id => params[:id].to_i} options = {:notes => params[:content], :reply_id => reply.user_id,:user_id => current_user.id,:m_parent_id => params[:id].to_i,:m_reply_id => params[:id].to_i}
feedback = HomeworkCommon.add_homework_jour(current_user, params[:content], reply.jour_id, reply.jour_id, options)
feedback = HomeworkCommon.add_homework_jour(current_user, params[:content], reply.jour_id,reply.jour_id, options)
if (feedback.errors.empty?) if (feedback.errors.empty?)
homework_common.update_column(:updated_at, Time.now) homework_common.update_column(:updated_at, Time.now)
homework_common.update_column(:reply_updated_at, Time.now)
result = 2 result = 2
update_id = homework_common.id update_id = homework_common.id
end end
@@ -153,6 +155,7 @@ module Mobile
if news.comments << comment if news.comments << comment
result = 2 result = 2
update_id = news.id update_id = news.id
news.update_column(:reply_updated_at, Time.now)
end end
else else
#二级回复 #二级回复
@@ -162,6 +165,7 @@ module Mobile
if new_comment.save if new_comment.save
result = 2 result = 2
update_id = news.id update_id = news.id
news.update_column(:reply_updated_at, Time.now)
end end
end end
end end
@@ -193,6 +197,7 @@ module Mobile
if message.children << reply if message.children << reply
result = 2 result = 2
update_id = topic.id update_id = topic.id
topic.update_column(:reply_updated_at, Time.now)
end end
# else # else
#二级回复 #二级回复
@@ -233,6 +238,7 @@ module Mobile
(JournalsForMessage.find parent_id).update_attribute(:updated_on,Time.now) (JournalsForMessage.find parent_id).update_attribute(:updated_on,Time.now)
result = 2 result = 2
update_id = jour.id update_id = jour.id
jour.update_column(:reply_updated_at, Time.now)
end end
# else # else
#二级回复 #二级回复
@@ -255,6 +261,7 @@ module Mobile
if is_jour.save if is_jour.save
result = 2 result = 2
update_id = issue.id update_id = issue.id
issue.update_column(:reply_updated_at, Time.now)
end end
else else
#二级回复 #二级回复
@@ -269,6 +276,7 @@ module Mobile
if is_jour.save if is_jour.save
result = 2 result = 2
update_id = issue.id update_id = issue.id
issue.update_column(:reply_updated_at, Time.now)
end end
end end
end end
@@ -284,6 +292,7 @@ module Mobile
if blog.children << blogComment if blog.children << blogComment
result = 2 result = 2
update_id = blog.id update_id = blog.id
blog.update_column(:reply_updated_at, Time.now)
end end
else else
#二级回复 #二级回复
@@ -301,6 +310,7 @@ module Mobile
if parent.children << blogComment if parent.children << blogComment
result = 2 result = 2
update_id = blog.id update_id = blog.id
blog.update_column(:reply_updated_at, Time.now)
end end


end end


+ 1
- 0
app/controllers/blog_comments_controller.rb View File

@@ -160,6 +160,7 @@ class BlogCommentsController < ApplicationController
@blogComment.root_id = @article.id @blogComment.root_id = @article.id
@article.children << @blogComment @article.children << @blogComment
end end
@article.update_column(:reply_updated_at, Time.now)
@article.save @article.save
# @article.update_attribute(:updated_on, @blogComment.updated_on) # @article.update_attribute(:updated_on, @blogComment.updated_on)
@user_activity_id = params[:user_activity_id] @user_activity_id = params[:user_activity_id]


+ 2
- 0
app/controllers/comments_controller.rb View File

@@ -59,6 +59,7 @@ class CommentsController < ApplicationController
update_course_activity(@news.class,@news.id) update_course_activity(@news.class,@news.id)
update_user_activity(@news.class,@news.id) update_user_activity(@news.class,@news.id)
update_org_activity(@news.class,@news.id) update_org_activity(@news.class,@news.id)
@news.update_column(:reply_updated_at, Time.now)
end end
if params[:user_activity_id] if params[:user_activity_id]
@@ -100,6 +101,7 @@ class CommentsController < ApplicationController
update_course_activity(@news.class,@news.id) update_course_activity(@news.class,@news.id)
update_user_activity(@news.class,@news.id) update_user_activity(@news.class,@news.id)
update_org_activity(@news.class,@news.id) update_org_activity(@news.class,@news.id)
@news.update_column(:reply_updated_at, Time.now)
if @user_activity_id if @user_activity_id
respond_to do |format| respond_to do |format|
format.js format.js


+ 1
- 0
app/controllers/courses_controller.rb View File

@@ -1067,6 +1067,7 @@ class CoursesController < ApplicationController
end end
@course_activities_count = @course_activities.count @course_activities_count = @course_activities.count
@course_activities = @course_activities.limit(10).offset(@page * 10) @course_activities = @course_activities.limit(10).offset(@page * 10)
@type = params[:type] @type = params[:type]
@left_nav_type = 1 @left_nav_type = 1


+ 2
- 0
app/controllers/files_controller.rb View File

@@ -598,6 +598,8 @@ class FilesController < ApplicationController
attachment.description = params[:description] attachment.description = params[:description]
attachment.save attachment.save
end end
#更新course的时间
@course.update_course
end end
if params[:course_attachment_type] && params[:course_attachment_type].is_a?(Array) if params[:course_attachment_type] && params[:course_attachment_type].is_a?(Array)
params[:course_attachment_type].each do |type| params[:course_attachment_type].each do |type|


+ 3
- 0
app/controllers/issues_controller.rb View File

@@ -490,6 +490,7 @@ class IssuesController < ApplicationController
jour.save jour.save
update_user_activity(@issue.class,@issue.id) update_user_activity(@issue.class,@issue.id)
update_forge_activity(@issue.class,@issue.id) update_forge_activity(@issue.class,@issue.id)
@issue.update_column(:reply_updated_at, Time.now)
@allowed_statuses = @issue.new_statuses_allowed_to(User.current) @allowed_statuses = @issue.new_statuses_allowed_to(User.current)
@user_activity_id = params[:user_activity_id] @user_activity_id = params[:user_activity_id]
if params[:issue_id] if params[:issue_id]
@@ -548,6 +549,7 @@ class IssuesController < ApplicationController
if new_jour.save if new_jour.save
update_user_activity(@issue.class,@issue.id) update_user_activity(@issue.class,@issue.id)
update_forge_activity(@issue.class,@issue.id) update_forge_activity(@issue.class,@issue.id)
@issue.update_column(:reply_updated_at, Time.now)
respond_to do |format| respond_to do |format|
format.js format.js
end end
@@ -567,6 +569,7 @@ class IssuesController < ApplicationController
at_message = AtMessage.where(:at_message_type => "Journal", :at_message_id => params[:journal_id]) at_message = AtMessage.where(:at_message_type => "Journal", :at_message_id => params[:journal_id])
at_message.destroy_all unless at_message.empty? at_message.destroy_all unless at_message.empty?
Journal.delete(params[:journal_id]) Journal.delete(params[:journal_id])
@issue.update_column(:reply_updated_at, Time.now)
rescue Exception => e rescue Exception => e
puts e puts e
end end


+ 1
- 0
app/controllers/messages_controller.rb View File

@@ -188,6 +188,7 @@ class MessagesController < ApplicationController
update_user_activity(@topic.class,@topic.id) update_user_activity(@topic.class,@topic.id)
update_forge_activity(@topic.class,@topic.id) update_forge_activity(@topic.class,@topic.id)
update_org_activity(@topic.class,@topic.id) update_org_activity(@topic.class,@topic.id)
@topic.update_column(:reply_updated_at, Time.now)
#@topic.update_attribute(:updated_on, Time.now) #@topic.update_attribute(:updated_on, Time.now)
if !@reply.new_record? if !@reply.new_record?


+ 1
- 0
app/controllers/my_controller.rb View File

@@ -195,6 +195,7 @@ class MyController < ApplicationController
@se.description = params[:description] @se.description = params[:description]
if @user.save && @se.save if @user.save && @se.save
@user.update_column(:updated_at,Time.now)
# 头像保存 # 头像保存
FileUtils.mv diskfile1, diskfile, force: true if File.exist? diskfile1 FileUtils.mv diskfile1, diskfile, force: true if File.exist? diskfile1
@user.pref.save @user.pref.save


+ 1
- 1
app/controllers/praise_tread_controller.rb View File

@@ -61,7 +61,7 @@ class PraiseTreadController < ApplicationController
end end
return return
end end
@pt.delete if !@pt.nil?
@pt.destroy if !@pt.nil?
#再更新praise_tread_cache表 使相应的记录减1 当为0时删除 #再更新praise_tread_cache表 使相应的记录减1 当为0时删除
@ptc = PraiseTreadCache.where("object_id=? and object_type=?",@obj_id,@obj_type.to_s).first @ptc = PraiseTreadCache.where("object_id=? and object_type=?",@obj_id,@obj_type.to_s).first
@ptc.minus(1) if !@ptc.nil? @ptc.minus(1) if !@ptc.nil?


+ 8
- 6
app/controllers/student_work_controller.rb View File

@@ -1021,14 +1021,14 @@ class StudentWorkController < ApplicationController
end end


def forbidden_anonymous_comment def forbidden_anonymous_comment
@homework.update_column('anonymous_comment', 1)
@homework.update_attribute('anonymous_comment', 1)
homework_detail_manual = @homework.homework_detail_manual homework_detail_manual = @homework.homework_detail_manual
homework_detail_programing = @homework.homework_detail_programing homework_detail_programing = @homework.homework_detail_programing
if homework_detail_programing if homework_detail_programing
homework_detail_manual.update_column('ta_proportion', 0.4)
homework_detail_programing.update_column('ta_proportion', 0.6)
homework_detail_manual.update_attribute('ta_proportion', 0.4)
homework_detail_programing.update_attribute('ta_proportion', 0.6)
else else
homework_detail_manual.update_column('ta_proportion', 1.0)
homework_detail_manual.update_attribute('ta_proportion', 1.0)
end end
@homework.student_works.each do |student_work| @homework.student_works.each do |student_work|
set_final_score @homework,student_work set_final_score @homework,student_work
@@ -1067,7 +1067,7 @@ class StudentWorkController < ApplicationController
def student_work_project def student_work_project
@work = @homework.student_works.where("user_id = #{User.current.id} and work_status = 0").first @work = @homework.student_works.where("user_id = #{User.current.id} and work_status = 0").first
if @work if @work
@work.update_column('project_id', params[:projectName].to_i)
@work.update_attribute('project_id', params[:projectName].to_i)
end end
@project = StudentWorkProject.new @project = StudentWorkProject.new
@project.homework_common_id = @homework.id @project.homework_common_id = @homework.id
@@ -1075,6 +1075,7 @@ class StudentWorkController < ApplicationController
@project.user_id = User.current.id @project.user_id = User.current.id
@project.is_leader = 1 @project.is_leader = 1
if @project.save if @project.save
find_homework
@user_activity_id = params[:user_activity_id].to_i @user_activity_id = params[:user_activity_id].to_i
@hw_status = params[:hw_status].to_i @hw_status = params[:hw_status].to_i
@is_teacher = User.current.allowed_to?(:as_teacher,@homework.course) || User.current.admin? @is_teacher = User.current.allowed_to?(:as_teacher,@homework.course) || User.current.admin?
@@ -1122,10 +1123,11 @@ class StudentWorkController < ApplicationController
def cancel_relate_project def cancel_relate_project
@work = @homework.student_works.where("user_id = #{User.current.id} and work_status = 0").first @work = @homework.student_works.where("user_id = #{User.current.id} and work_status = 0").first
if @work if @work
@work.update_column('project_id', 0)
@work.update_attribute('project_id', 0)
end end
relate_pro = StudentWorkProject.where("user_id = #{User.current.id} and homework_common_id = #{@homework.id}").first relate_pro = StudentWorkProject.where("user_id = #{User.current.id} and homework_common_id = #{@homework.id}").first
if relate_pro.destroy if relate_pro.destroy
find_homework
@user_activity_id = params[:user_activity_id].to_i @user_activity_id = params[:user_activity_id].to_i
@hw_status = params[:hw_status].to_i @hw_status = params[:hw_status].to_i
@is_teacher = User.current.allowed_to?(:as_teacher,@homework.course) || User.current.admin? @is_teacher = User.current.allowed_to?(:as_teacher,@homework.course) || User.current.admin?


+ 2
- 1
app/controllers/users_controller.rb View File

@@ -1720,7 +1720,7 @@ class UsersController < ApplicationController
end end
end end
@user_activities = UserActivity.where("#{sql}").order('updated_at desc').limit(10).offset(@page * 10)
@user_activities = UserActivity.where("#{sql}").order('updated_at desc').limit(5).offset(@page * 5)
@type = params[:type] @type = params[:type]
respond_to do |format| respond_to do |format|
format.js format.js
@@ -2912,6 +2912,7 @@ class UsersController < ApplicationController
def edit_brief_introduction def edit_brief_introduction
if @user && @user.extensions if @user && @user.extensions
@user.extensions.update_column("brief_introduction",params[:brief_introduction]) @user.extensions.update_column("brief_introduction",params[:brief_introduction])
@user.update_column(:updated_at,Time.now)
end end
respond_to do |format| respond_to do |format|
format.js format.js


+ 3
- 0
app/controllers/words_controller.rb View File

@@ -66,6 +66,7 @@ class WordsController < ApplicationController
update_org_activity('JournalsForMessage',@activity.id) update_org_activity('JournalsForMessage',@activity.id)
update_principal_activity('JournalsForMessage',@activity.id) update_principal_activity('JournalsForMessage',@activity.id)
@activity.update_attribute(:updated_on,Time.now) @activity.update_attribute(:updated_on,Time.now)
JournalsForMessage.find(options[:root_id]).update_column(:reply_updated_at, Time.now)
end end
respond_to do |format| respond_to do |format|
# format.html { # format.html {
@@ -305,6 +306,7 @@ class WordsController < ApplicationController
update_kindeditor_assets_owner ids,feedback[:id],OwnerTypeHelper::JOURNALSFORMESSAGE update_kindeditor_assets_owner ids,feedback[:id],OwnerTypeHelper::JOURNALSFORMESSAGE
end end
@homework_common.update_column('updated_at', Time.now) @homework_common.update_column('updated_at', Time.now)
@homework_common.update_column(:reply_updated_at, Time.now)
update_course_activity(@homework_common.class,@homework_common.id) update_course_activity(@homework_common.class,@homework_common.id)
update_user_activity(@homework_common.class,@homework_common.id) update_user_activity(@homework_common.class,@homework_common.id)
update_org_activity(@homework_common.class,@homework_common.id) update_org_activity(@homework_common.class,@homework_common.id)
@@ -338,6 +340,7 @@ class WordsController < ApplicationController
ids = params[:asset_id].split(',') ids = params[:asset_id].split(',')
update_kindeditor_assets_owner ids,feedback[:id],OwnerTypeHelper::JOURNALSFORMESSAGE update_kindeditor_assets_owner ids,feedback[:id],OwnerTypeHelper::JOURNALSFORMESSAGE
end end
@homework_common.update_column(:reply_updated_at, Time.now)
@homework_common.update_column('updated_at', Time.now) @homework_common.update_column('updated_at', Time.now)
update_course_activity(@homework_common.class,@homework_common.id) update_course_activity(@homework_common.class,@homework_common.id)
update_user_activity(@homework_common.class,@homework_common.id) update_user_activity(@homework_common.class,@homework_common.id)


+ 14
- 14
app/helpers/application_helper.rb View File

@@ -261,7 +261,7 @@ module ApplicationHelper
CourseContributorScore.create(:course_id => course_id, :user_id => user_id, :homework_journal_num => 1) CourseContributorScore.create(:course_id => course_id, :user_id => user_id, :homework_journal_num => 1)
else else
score = course_contributor_score.homework_journal_num.to_i + 1 score = course_contributor_score.homework_journal_num.to_i + 1
course_contributor_score.update_column(:homework_journal_num, score)
course_contributor_score.update_attribute(:homework_journal_num, score)
end end
# 课程留言 # 课程留言
when "Course" when "Course"
@@ -269,42 +269,42 @@ module ApplicationHelper
CourseContributorScore.create(:course_id => course_id, :user_id => user_id, :journal_num => 1) CourseContributorScore.create(:course_id => course_id, :user_id => user_id, :journal_num => 1)
else else
score = course_contributor_score.journal_num.to_i + 1 score = course_contributor_score.journal_num.to_i + 1
course_contributor_score.update_column(:journal_num, score)
course_contributor_score.update_attribute(:journal_num, score)
end end
when "Message" when "Message"
if course_contributor_score.nil? if course_contributor_score.nil?
CourseContributorScore.create(:course_id => course_id, :user_id => user_id, :message_num => 1) CourseContributorScore.create(:course_id => course_id, :user_id => user_id, :message_num => 1)
else else
score = course_contributor_score.message_num.to_i + 1 score = course_contributor_score.message_num.to_i + 1
course_contributor_score.update_column(:message_num, score)
course_contributor_score.update_attribute(:message_num, score)
end end
when "MessageReply" when "MessageReply"
if course_contributor_score.nil? if course_contributor_score.nil?
CourseContributorScore.create(:course_id => course_id, :user_id => user_id, :message_reply_num => 1) CourseContributorScore.create(:course_id => course_id, :user_id => user_id, :message_reply_num => 1)
else else
score = course_contributor_score.message_reply_num.to_i + 1 score = course_contributor_score.message_reply_num.to_i + 1
course_contributor_score.update_column(:message_reply_num, score)
course_contributor_score.update_attribute(:message_reply_num, score)
end end
when "NewReply" when "NewReply"
if course_contributor_score.nil? if course_contributor_score.nil?
CourseContributorScore.create(:course_id => course_id, :user_id => user_id, :news_reply_num => 1) CourseContributorScore.create(:course_id => course_id, :user_id => user_id, :news_reply_num => 1)
else else
score = course_contributor_score.news_reply_num.to_i + 1 score = course_contributor_score.news_reply_num.to_i + 1
course_contributor_score.update_column(:news_reply_num, score)
course_contributor_score.update_attribute(:news_reply_num, score)
end end
when "News" when "News"
if course_contributor_score.nil? if course_contributor_score.nil?
CourseContributorScore.create(:course_id => course_id, :user_id => user_id, :news_num => 1) CourseContributorScore.create(:course_id => course_id, :user_id => user_id, :news_num => 1)
else else
score = course_contributor_score.news_num.to_i + 1 score = course_contributor_score.news_num.to_i + 1
course_contributor_score.update_column(:news_num, score)
course_contributor_score.update_attribute(:news_num, score)
end end
when "Attachment" when "Attachment"
if course_contributor_score.nil? if course_contributor_score.nil?
CourseContributorScore.create(:course_id => course_id, :user_id => user_id, :resource_num => 1) CourseContributorScore.create(:course_id => course_id, :user_id => user_id, :resource_num => 1)
else else
score = course_contributor_score.resource_num.to_i + 1 score = course_contributor_score.resource_num.to_i + 1
course_contributor_score.update_column(:resource_num, score)
course_contributor_score.update_attribute(:resource_num, score)
end end
end end
end end
@@ -316,38 +316,38 @@ module ApplicationHelper
when "HomeworkCommon" when "HomeworkCommon"
unless course_contributor_score.nil? unless course_contributor_score.nil?
score = course_contributor_score.homework_journal_num.to_i - 1 score = course_contributor_score.homework_journal_num.to_i - 1
course_contributor_score.update_column(:homework_journal_num, score < 0 ? 0 : score)
course_contributor_score.update_attribute(:homework_journal_num, score < 0 ? 0 : score)
end end
# 课程留言 # 课程留言
when "Course" when "Course"
unless course_contributor_score.nil? unless course_contributor_score.nil?
score = course_contributor_score.journal_num.to_i - 1 score = course_contributor_score.journal_num.to_i - 1
course_contributor_score.update_column(:journal_num, score < 0 ? 0 : score)
course_contributor_score.update_attribute(:journal_num, score < 0 ? 0 : score)
end end
when "Message" when "Message"
unless course_contributor_score.nil? unless course_contributor_score.nil?
score = course_contributor_score.message_num.to_i - 1 score = course_contributor_score.message_num.to_i - 1
course_contributor_score.update_column(:message_num, score < 0 ? 0 : score)
course_contributor_score.update_attribute(:message_num, score < 0 ? 0 : score)
end end
when "MessageReply" when "MessageReply"
unless course_contributor_score.nil? unless course_contributor_score.nil?
score = course_contributor_score.message_reply_num.to_i - 1 score = course_contributor_score.message_reply_num.to_i - 1
course_contributor_score.update_column(:message_reply_num, score < 0 ? 0 : score)
course_contributor_score.update_attribute(:message_reply_num, score < 0 ? 0 : score)
end end
when "NewReply" when "NewReply"
unless course_contributor_score.nil? unless course_contributor_score.nil?
score = course_contributor_score.news_reply_num.to_i - 1 score = course_contributor_score.news_reply_num.to_i - 1
course_contributor_score.update_column(:news_reply_num, score < 0 ? 0 : score)
course_contributor_score.update_attribute(:news_reply_num, score < 0 ? 0 : score)
end end
when "News" when "News"
unless course_contributor_score.nil? unless course_contributor_score.nil?
score = course_contributor_score.news_num.to_i - 1 score = course_contributor_score.news_num.to_i - 1
course_contributor_score.update_column(:news_num, score < 0 ? 0 : score)
course_contributor_score.update_attribute(:news_num, score < 0 ? 0 : score)
end end
when "Attachment" when "Attachment"
unless course_contributor_score.nil? unless course_contributor_score.nil?
score = course_contributor_score.resource_num.to_i - 1 score = course_contributor_score.resource_num.to_i - 1
course_contributor_score.update_column(:resource_num, score < 0 ? 0 : score)
course_contributor_score.update_attribute(:resource_num, score < 0 ? 0 : score)
end end
end end
end end


+ 10
- 1
app/models/attachment.rb View File

@@ -96,7 +96,7 @@ class Attachment < ActiveRecord::Base
after_save :act_as_course_activity after_save :act_as_course_activity
after_create :office_conver, :be_user_score,:create_attachment_ealasticsearch_index after_create :office_conver, :be_user_score,:create_attachment_ealasticsearch_index
after_update :office_conver, :be_user_score,:update_attachment_ealasticsearch_index after_update :office_conver, :be_user_score,:update_attachment_ealasticsearch_index
after_destroy :delete_from_disk,:down_user_score,:delete_attachment_ealasticsearch_index, :decrease_attchments_count, :down_course_score
after_destroy :delete_from_disk,:down_user_score,:delete_attachment_ealasticsearch_index, :decrease_attchments_count, :down_course_score, :update_others
# add by nwb # add by nwb
# 获取所有可公开的资源文件列表 # 获取所有可公开的资源文件列表
@@ -683,6 +683,15 @@ class Attachment < ActiveRecord::Base
down_course_score_num(self.container_id, self.author_id, "Attachment") down_course_score_num(self.container_id, self.author_id, "Attachment")
end end
end end
#更新时间
def update_others
if self.course
if self.course.is_a?(::Course)
self.course.update_course
end
end
end
end end
# Delete the previous articles index in Elasticsearch # Delete the previous articles index in Elasticsearch


+ 16
- 2
app/models/blog_comment.rb View File

@@ -23,8 +23,8 @@ class BlogComment < ActiveRecord::Base


after_save :add_user_activity after_save :add_user_activity
after_update :update_activity after_update :update_activity
after_create :update_parent_time
before_destroy :destroy_user_activity
after_create :update_parent_time,:update_user_time
before_destroy :destroy_user_activity,:update_reply_time,:update_user_time


scope :like, lambda {|arg| scope :like, lambda {|arg|
if arg.blank? if arg.blank?
@@ -103,4 +103,18 @@ class BlogComment < ActiveRecord::Base
# ws.comment_template self.parent.author_id, "blog_comment", self.parent_id, "#{l(:label_blog_comment_template)}", self.author.try(:realname), format_time(self.created_at), content # ws.comment_template self.parent.author_id, "blog_comment", self.parent_id, "#{l(:label_blog_comment_template)}", self.author.try(:realname), format_time(self.created_at), content
# end # end
# end # end

#删除回复的时候更新主贴的reply_updated_at
def update_reply_time
if self.root_id
root_message = BlogComment.find(self.root_id)
if root_message
root_message.update_column(:reply_updated_at, Time.now)
end
end
end

def update_user_time
self.author.update_column(:updated_at,Time.now)
end
end end

+ 11
- 0
app/models/comment.rb View File

@@ -42,6 +42,7 @@ class Comment < ActiveRecord::Base
safe_attributes 'comments','parent_id','reply_id','comments_count' safe_attributes 'comments','parent_id','reply_id','comments_count'
after_create :send_mail, :act_as_system_message, :act_as_student_score after_create :send_mail, :act_as_system_message, :act_as_student_score
after_destroy :down_course_score after_destroy :down_course_score
before_destroy :update_reply_time
def act_as_system_message def act_as_system_message
#ws = WechatService.new #ws = WechatService.new
@@ -119,4 +120,14 @@ class Comment < ActiveRecord::Base
self.comments self.comments
end end
#删除回复的时候更新主贴的reply_updated_at
def update_reply_time
if self.commented_id
root_message = News.find(self.commented_id)
if root_message
root_message.update_column(:reply_updated_at, Time.now)
end
end
end
end end

+ 4
- 0
app/models/course.rb View File

@@ -508,6 +508,10 @@ class Course < ActiveRecord::Base
ticket ticket
end end
def update_course
self.update_attribute(:updated_at,Time.now)
end
def log_infor def log_infor
Rails.logger.info "##########################################################course's syllabus_id is #{self.syllabus_id}." Rails.logger.info "##########################################################course's syllabus_id is #{self.syllabus_id}."
end end


+ 8
- 2
app/models/homework_common.rb View File

@@ -31,10 +31,10 @@ class HomeworkCommon < ActiveRecord::Base
:description => :description, :description => :description,
:author => :author, :author => :author,
:url => Proc.new {|o| {:controller => 'student_work', :action => 'index', :homework => o.id}} :url => Proc.new {|o| {:controller => 'student_work', :action => 'index', :homework => o.id}}
after_create :act_as_activity, :send_mail,:act_as_course_message
after_create :act_as_activity, :send_mail,:act_as_course_message,:update_others
after_update :update_activity after_update :update_activity
after_save :act_as_course_activity after_save :act_as_course_activity
after_destroy :delete_kindeditor_assets
after_destroy :delete_kindeditor_assets,:update_others


#作业类型 #作业类型
def homework_type_ch def homework_type_ch
@@ -124,6 +124,12 @@ class HomeworkCommon < ActiveRecord::Base
jfm jfm
end end


#更新时间
def update_others
self.course.update_course

end

#修改作业后发送微信模板消息 #修改作业后发送微信模板消息
# def wechat_message # def wechat_message
# self.course.members.each do |member| # self.course.members.each do |member|


+ 1
- 1
app/models/homework_detail_manual.rb View File

@@ -3,5 +3,5 @@
class HomeworkDetailManual < ActiveRecord::Base class HomeworkDetailManual < ActiveRecord::Base
attr_accessible :ta_proportion, :comment_status, :evaluation_start, :evaluation_end, :evaluation_num, :absence_penalty, :homework_common_id attr_accessible :ta_proportion, :comment_status, :evaluation_start, :evaluation_end, :evaluation_num, :absence_penalty, :homework_common_id


belongs_to :homework_common
belongs_to :homework_common,touch:true
end end

+ 1
- 1
app/models/homework_detail_programing.rb View File

@@ -1,7 +1,7 @@
class HomeworkDetailPrograming < ActiveRecord::Base class HomeworkDetailPrograming < ActiveRecord::Base
attr_accessible :language, :standard_code, :homework_common_id attr_accessible :language, :standard_code, :homework_common_id


belongs_to :homework_common
belongs_to :homework_common,touch:true


def language_name def language_name
%W(C C++ Python Java).at(self.language.to_i - 1) %W(C C++ Python Java).at(self.language.to_i - 1)


+ 8
- 0
app/models/journal.rb View File

@@ -62,6 +62,7 @@ class Journal < ActiveRecord::Base
#after_destroy :down_user_score #after_destroy :down_user_score
#before_save :be_user_score #before_save :be_user_score
after_destroy :down_user_score, :decrease_issues_journal_count after_destroy :down_user_score, :decrease_issues_journal_count
before_destroy :update_reply_time


scope :visible, lambda {|*args| scope :visible, lambda {|*args|
user = args.shift || User.current user = args.shift || User.current
@@ -259,4 +260,11 @@ class Journal < ActiveRecord::Base
# ws.comment_template self.issue.author_id, "issues", self.journalized_id, "#{l(:label_issue_comment_template)}", self.user.try(:realname), format_time(self.created_on), content # ws.comment_template self.issue.author_id, "issues", self.journalized_id, "#{l(:label_issue_comment_template)}", self.user.try(:realname), format_time(self.created_on), content
# end # end
# end # end

#删除回复的时候更新主贴的reply_updated_at
def update_reply_time
if self.journalized
self.journalized.update_column(:reply_updated_at, Time.now)
end
end
end end

+ 17
- 0
app/models/journals_for_message.rb View File

@@ -81,6 +81,7 @@ class JournalsForMessage < ActiveRecord::Base
after_destroy :reset_counters! after_destroy :reset_counters!
after_save :be_user_score after_save :be_user_score
after_destroy :down_user_score, :down_course_score after_destroy :down_user_score, :down_course_score
before_destroy :update_reply_time
# default_scope { where('m_parent_id IS NULL') } # default_scope { where('m_parent_id IS NULL') }
@@ -344,4 +345,20 @@ class JournalsForMessage < ActiveRecord::Base
def content_detail def content_detail
self.notes self.notes
end end
#个人留言 班级留言 作业留言等
def update_reply_time
if self.root_id
case self.jour_type
when 'HomeworkCommon'
root_message = HomeworkCommon.find(self.root_id)
else
root_message = JournalsForMessage.find(self.root_id)
end
if root_message
root_message.update_column(:reply_updated_at, Time.now)
end
end
end
end end

+ 12
- 0
app/models/message.rb View File

@@ -86,6 +86,7 @@ class Message < ActiveRecord::Base
after_destroy :reset_counters!,:down_user_score,:delete_kindeditor_assets, :decrease_boards_count, :down_course_score after_destroy :reset_counters!,:down_user_score,:delete_kindeditor_assets, :decrease_boards_count, :down_course_score
after_create :act_as_course_activity, :act_as_forge_activity, :act_as_student_score, act_as_at_message(:content, :author_id), :add_author_as_watcher, :reset_counters!, :add_boards_count, :act_as_system_message, :delay_message_send after_create :act_as_course_activity, :act_as_forge_activity, :act_as_student_score, act_as_at_message(:content, :author_id), :add_author_as_watcher, :reset_counters!, :add_boards_count, :act_as_system_message, :delay_message_send
#before_save :be_user_score #before_save :be_user_score
before_destroy :update_reply_time
scope :visible, lambda {|*args| scope :visible, lambda {|*args|
includes(:board => :project).where(Project.allowed_to_condition(args.shift || User.current, :view_messages, *args)) includes(:board => :project).where(Project.allowed_to_condition(args.shift || User.current, :view_messages, *args))
@@ -412,4 +413,15 @@ class Message < ActiveRecord::Base
def delete_org_activities def delete_org_activities
OrgActivity.where("org_act_type='Message' and org_act_id =#{self.id} and container_type='OrgSubfield'").destroy_all OrgActivity.where("org_act_type='Message' and org_act_id =#{self.id} and container_type='OrgSubfield'").destroy_all
end end
#删除回复的时候更新主贴的reply_updated_at
def update_reply_time
if self.root_id
root_message = Message.find(self.root_id)
if root_message
root_message.update_column(:reply_updated_at, Time.now)
end
end
end
end end

+ 9
- 2
app/models/news.rb View File

@@ -65,9 +65,9 @@ class News < ActiveRecord::Base
:author_key => :author_id :author_key => :author_id
acts_as_watchable acts_as_watchable
after_create :act_as_forge_activity, :act_as_course_activity, :add_author_as_watcher, :send_mail, :add_news_count, :act_as_student_score, :act_as_system_message, :delay_news_send
after_create :act_as_forge_activity, :act_as_course_activity, :add_author_as_watcher, :send_mail, :add_news_count, :act_as_student_score, :act_as_system_message, :delay_news_send, :update_others
after_update :update_activity after_update :update_activity
after_destroy :delete_kindeditor_assets, :decrease_news_count, :delete_org_activities, :down_course_score
after_destroy :delete_kindeditor_assets, :decrease_news_count, :delete_org_activities, :down_course_score, :update_others
scope :visible, lambda {|*args| scope :visible, lambda {|*args|
includes(:project).where(Project.allowed_to_condition(args.shift || User.current, :view_news, *args)) includes(:project).where(Project.allowed_to_condition(args.shift || User.current, :view_news, *args))
@@ -229,4 +229,11 @@ class News < ActiveRecord::Base
end end
end end
#更新时间
def update_others
if self.course
self.course.update_course
end
end
end end

+ 53
- 0
app/models/praise_tread.rb View File

@@ -4,6 +4,10 @@ class PraiseTread < ActiveRecord::Base
belongs_to :praise_tread_object, polymorphic: true belongs_to :praise_tread_object, polymorphic: true
#after_create :be_user_score #after_create :be_user_score
#after_destroy :down_user_score #after_destroy :down_user_score
after_create :update_reply_time
before_destroy :update_reply_time


include UserScoreHelper include UserScoreHelper
def self.find_object_by_type_and_id(type,id) def self.find_object_by_type_and_id(type,id)
@obj = nil @obj = nil
@@ -95,4 +99,53 @@ class PraiseTread < ActiveRecord::Base
user_id: User.current.id).empty? user_id: User.current.id).empty?
end end


def update_reply_time
#找到主贴更新reply_updated_at
type = self.praise_tread_object_type
id = self.praise_tread_object_id
messageClass = type.classify.constantize
message = messageClass.find(id) rescue nil
case type
when 'Journal'
#issue
message.journalized.update_column(:reply_updated_at, Time.now)
when 'Comment'
#news
if message && message.commented_id
root_message = News.find(message.commented_id)
if root_message
root_message.update_column(:reply_updated_at, Time.now)
end
end
when 'JournalsForMessage'
#留言 和 作业 留言
if message && message.root_id
case message.jour_type
when 'HomeworkCommon'
root_message = HomeworkCommon.find(message.root_id)
else
root_message = messageClass.find(message.root_id)
end
if root_message
root_message.update_column(:reply_updated_at, Time.now)
end
elsif message
message.update_column(:reply_updated_at, Time.now)
end
when 'News','Issue','HomeworkCommon'
if message
message.update_column(:reply_updated_at, Time.now)
end
else
if message && message.root_id
root_message = messageClass.find(message.root_id) rescue nil
if root_message
root_message.update_column(:reply_updated_at, Time.now)
end
elsif message
message.update_column(:reply_updated_at, Time.now)
end
end
end

end end

+ 1
- 1
app/models/student_work.rb View File

@@ -2,7 +2,7 @@
class StudentWork < ActiveRecord::Base class StudentWork < ActiveRecord::Base
attr_accessible :name, :description, :homework_common_id, :user_id, :final_score, :teacher_score, :student_score, :teaching_asistant_score, :system_score, :work_score, :project_id, :is_test, :simi_id, :simi_value, :work_status, :commit_time, :late_penalty, :absence_penalty attr_accessible :name, :description, :homework_common_id, :user_id, :final_score, :teacher_score, :student_score, :teaching_asistant_score, :system_score, :work_score, :project_id, :is_test, :simi_id, :simi_value, :work_status, :commit_time, :late_penalty, :absence_penalty


belongs_to :homework_common
belongs_to :homework_common,touch:true
belongs_to :user belongs_to :user
has_many :student_work_projects has_many :student_work_projects
has_many :student_works_evaluation_distributions, :dependent => :destroy has_many :student_works_evaluation_distributions, :dependent => :destroy


+ 1
- 1
app/models/student_work_project.rb View File

@@ -1,6 +1,6 @@
class StudentWorkProject < ActiveRecord::Base class StudentWorkProject < ActiveRecord::Base
# attr_accessible :title, :body # attr_accessible :title, :body
belongs_to :homework_common
belongs_to :homework_common,touch:true
belongs_to :student_work belongs_to :student_work
belongs_to :project belongs_to :project
belongs_to :user belongs_to :user


+ 3
- 0
app/services/watches_service.rb View File

@@ -34,6 +34,7 @@ class WatchesService
end end
def set_watcher(watchables, user, watching) def set_watcher(watchables, user, watching)
user.update_column(:updated_at,Time.now)
watchables.each do |watchable| watchables.each do |watchable|
watchable.set_watcher(user, watching) watchable.set_watcher(user, watching)
# @user = watchable # added by william # @user = watchable # added by william
@@ -42,6 +43,7 @@ class WatchesService
if watchable.instance_of?(User) if watchable.instance_of?(User)
#写user_statuses表 #写user_statuses表
UserStatus.find_by_user_id(watchable.id).update_watchers_count(1) UserStatus.find_by_user_id(watchable.id).update_watchers_count(1)
watchable.update_column(:updated_at,Time.now)
elsif watchable.instance_of?(Project) elsif watchable.instance_of?(Project)
#写project_statuese表 #写project_statuese表
ProjectStatus.find_by_project_id(watchable.id).update_watchers_count(1) ProjectStatus.find_by_project_id(watchable.id).update_watchers_count(1)
@@ -51,6 +53,7 @@ class WatchesService
if watchable.instance_of?(User) if watchable.instance_of?(User)
#写user_statuses表 #写user_statuses表
UserStatus.find_by_user_id(watchable.id).update_watchers_count(-1) UserStatus.find_by_user_id(watchable.id).update_watchers_count(-1)
watchable.update_column(:updated_at,Time.now)
elsif watchable.instance_of?(Project) elsif watchable.instance_of?(Project)
#写project_statuese表 :project_status #写project_statuese表 :project_status
ProjectStatus.find_by_project_id(watchable.id).update_watchers_count(-1) ProjectStatus.find_by_project_id(watchable.id).update_watchers_count(-1)


+ 40
- 38
app/views/courses/_course_activity_users.html.erb View File

@@ -23,44 +23,46 @@
总得分为以上得分之和</div> 总得分为以上得分之和</div>
</div> </div>
<% contributor_course_scor(course.id).each do |contributor_score| %> <% contributor_course_scor(course.id).each do |contributor_score| %>
<% total_score = contributor_score.resource_num.to_i * 5 + contributor_score.message_num.to_i * 2 +
contributor_score.message_reply_num.to_i * 1 + contributor_score.journal_num.to_i * 1 +
+ contributor_score.homework_journal_num.to_i * 1 + contributor_score.news_reply_num.to_i * 1 +
contributor_score.news_num.to_i * 1 %>
<% unless total_score ==0 %>
<li>
<%=link_to image_tag(url_to_avatar(contributor_score.user), :width => "50", :height => "50", :class=> "rankPortrait"),user_path(contributor_score.user) %>
<p><%=link_to contributor_score.user.show_name, user_path(contributor_score.user.id), :title => contributor_score.user.show_name %></p>
<p><span class="sy_corange" style="cursor:pointer">
<a onmouseover ="message_titile_show($(this),event)" onmouseout ="message_titile_hide($(this))" class="sy_corange">
<%=total_score %></a></span></p>
<div style="display: none" class="numIntro">
<div class="contributor-course-calculate">积分计算</div>
<%# unless contributor_score.resource_num.to_i == 0 %>
<div style="padding-left: 2px;padding-bottom: 2px;padding-right: 2px">
资源发布数 x 5 = <%= contributor_score.resource_num.to_i %> x 5 = <%= contributor_score.resource_num.to_i * 5 %></br>
<%# end %>
<%# unless contributor_score.message_num.to_i == 0 %>
问答发布数 x 2 = <%= contributor_score.message_num.to_i %> x 2 = <%= contributor_score.message_num.to_i * 2 %></br>
通知发布数 x 1 = <%= contributor_score.news_num.to_i %> x 1 = <%= contributor_score.news_num.to_i %></br>
<%# end %>
<%# unless contributor_score.message_reply_num.to_i == 0 %>
问答回帖数 x 1 = <%= contributor_score.message_reply_num.to_i %> x 1 = <%= contributor_score.message_reply_num.to_i %></br>
作业留言数 x 1 = <%= contributor_score.homework_journal_num.to_i %> x 1 = <%= contributor_score.homework_journal_num.to_i %></br>
通知留言数 x 1 = <%= contributor_score.news_reply_num.to_i %> x 1 = <%= contributor_score.news_reply_num.to_i %></br>
<%# end %>
<%# unless contributor_score.journal_num.to_i == 0 %>
班级留言数 x 1 = <%= contributor_score.journal_num.to_i %> x 1 = <%= contributor_score.journal_num.to_i %></br>
<%# end %>
<%# unless contributor_score.homework_journal_num.to_i == 0 %>
<%# end %>
<%# unless contributor_score.news_reply_num.to_i == 0 %>
<%# end %>
总得分:<%=total_score %>
</div>
</div>
</li>
<% end %>
<%# cache [:user_contributor_score,contributor_score.id.to_s+"-"+contributor_score.updated_at.to_i.to_s+"-"+contributor_score.user.updated_on.to_i.to_s] do%>
<% total_score = contributor_score.resource_num.to_i * 5 + contributor_score.message_num.to_i * 2 +
contributor_score.message_reply_num.to_i * 1 + contributor_score.journal_num.to_i * 1 +
+ contributor_score.homework_journal_num.to_i * 1 + contributor_score.news_reply_num.to_i * 1 +
contributor_score.news_num.to_i * 1 %>
<% unless total_score ==0 %>
<li>
<%=link_to image_tag(url_to_avatar(contributor_score.user), :width => "50", :height => "50", :class=> "rankPortrait"),user_path(contributor_score.user) %>
<p><%=link_to contributor_score.user.show_name, user_path(contributor_score.user.id), :title => contributor_score.user.show_name %></p>
<p><span class="sy_corange" style="cursor:pointer">
<a onmouseover ="message_titile_show($(this),event)" onmouseout ="message_titile_hide($(this))" class="sy_corange">
<%=total_score %></a></span></p>
<div style="display: none" class="numIntro">
<div class="contributor-course-calculate">积分计算</div>
<%# unless contributor_score.resource_num.to_i == 0 %>
<div style="padding-left: 2px;padding-bottom: 2px;padding-right: 2px">
资源发布数 x 5 = <%= contributor_score.resource_num.to_i %> x 5 = <%= contributor_score.resource_num.to_i * 5 %></br>
<%# end %>
<%# unless contributor_score.message_num.to_i == 0 %>
问答发布数 x 2 = <%= contributor_score.message_num.to_i %> x 2 = <%= contributor_score.message_num.to_i * 2 %></br>
通知发布数 x 1 = <%= contributor_score.news_num.to_i %> x 1 = <%= contributor_score.news_num.to_i %></br>
<%# end %>
<%# unless contributor_score.message_reply_num.to_i == 0 %>
问答回帖数 x 1 = <%= contributor_score.message_reply_num.to_i %> x 1 = <%= contributor_score.message_reply_num.to_i %></br>
作业留言数 x 1 = <%= contributor_score.homework_journal_num.to_i %> x 1 = <%= contributor_score.homework_journal_num.to_i %></br>
通知留言数 x 1 = <%= contributor_score.news_reply_num.to_i %> x 1 = <%= contributor_score.news_reply_num.to_i %></br>
<%# end %>
<%# unless contributor_score.journal_num.to_i == 0 %>
班级留言数 x 1 = <%= contributor_score.journal_num.to_i %> x 1 = <%= contributor_score.journal_num.to_i %></br>
<%# end %>
<%# unless contributor_score.homework_journal_num.to_i == 0 %>
<%# end %>
<%# unless contributor_score.news_reply_num.to_i == 0 %>
<%# end %>
总得分:<%=total_score %>
</div>
</div>
</li>
<% end %>
<%# end %>
<% end %> <% end %>
<div class="cl"></div> <div class="cl"></div>
</ul> </ul>


+ 5
- 3
app/views/courses/show.html.erb View File

@@ -28,6 +28,8 @@
</ul> </ul>
</li> </li>
</ul> </ul>
</div>
<%= render :partial => 'courses/course_activity', :locals => {:course_activities => @course_activities,:page => 0,:type => @type} %>
</div>
<%# cache [:course_activity,@course.id,@course_activities_count,@type,@course_activities[0].updated_at.to_i] do%>
</div>
<%= render :partial => 'courses/course_activity', :locals => {:course_activities => @course_activities,:page => 0,:type => @type} %>
</div>
<%# end %>

+ 11
- 9
app/views/files/_resource_detail.html.erb View File

@@ -27,17 +27,19 @@
<span class="grey_homework_btn_cir ml5"><%=file.publish_time %>&nbsp;&nbsp;0点发布</span> <span class="grey_homework_btn_cir ml5"><%=file.publish_time %>&nbsp;&nbsp;0点发布</span>
<% end %> <% end %>
</div> </div>
<div class="mt5">
<span class="fontGrey2 mr15 fl">上传时间:<%= format_time(file.created_on)%></span>
<% if file.tag_list.length > 0%>
<span class="fontGrey2 fl mr15">上传类型:<%= file.tag_list[0] %></span>
<% end %>
<p class="f_l mb5 fontGrey2">文件大小:<%= number_to_human_size(file.filesize) %></p>
<p class="fl ml15 fontGrey2">下载<%= file.downloads%>&nbsp;&nbsp;|&nbsp;&nbsp;引用<%= file.quotes.nil? ? 0:file.quotes %> </p>
</div>
<%# cache [:resource_detail,file.id.to_s] do%>
<div class="mt5">
<span class="fontGrey2 mr15 fl">上传时间:<%= format_time(file.created_on)%></span>
<% if file.tag_list.length > 0%>
<span class="fontGrey2 fl mr15">上传类型:<%= file.tag_list[0] %></span>
<% end %>
<p class="f_l mb5 fontGrey2">文件大小:<%= number_to_human_size(file.filesize) %></p>
<p class="fl ml15 fontGrey2">下载<%= file.downloads%>&nbsp;&nbsp;|&nbsp;&nbsp;引用<%= file.quotes.nil? ? 0:file.quotes %> </p>
</div>
<%# end %>
<%# unless file.description.blank? %> <%# unless file.description.blank? %>
<div class="cl"></div> <div class="cl"></div>
<% if User.current.admin? || ( User.current.logged? && ((is_course_teacher(User.current,@course) || file.author_id == User.current.id) && course_contains_attachment?(@course,file)) && ((delete_allowed || User.current.id == file.author_id) && file.container_id == @course.id && file.container_type == "Course")) %>
<% if (User.current.admin? || ( User.current.logged? && ((is_course_teacher(User.current,@course) || file.author_id == User.current.id) && course_contains_attachment?(@course,file)) && ((delete_allowed || User.current.id == file.author_id) && file.container_id == @course.id && file.container_type == "Course"))) %>
<div> <div>
<div id="file_description_show_<%= file.id %>" class="fontGrey2 mb4 break_word"> <div id="file_description_show_<%= file.id %>" class="fontGrey2 mb4 break_word">
<%= render :partial => 'files/file_description', :locals => {:file => file} %> <%= render :partial => 'files/file_description', :locals => {:file => file} %>


+ 28
- 20
app/views/layouts/_course_base_info.html.erb View File

@@ -29,6 +29,8 @@
<% end %> <% end %>


<div class="cl"></div> <div class="cl"></div>
<!-- logo 根据是否是老师显示不同-->
<% cache [:course_logo,@course.id.to_s+"-"+is_teacher.to_s] do%>
<div class="sy_class_logo fl"> <div class="sy_class_logo fl">
<div class="pr" style="width: 96px; height:96px;"> <div class="pr" style="width: 96px; height:96px;">
<% if is_teacher%> <% if is_teacher%>
@@ -41,6 +43,9 @@
<% end %> <% end %>
</div> </div>
</div> </div>
<% end %>
<!--邀请码根据是否是成员显示不同-->
<% cache [:course_invite,@course.id.to_s+"-"+(User.current.admin? || User.current.member_of_course?(@course)).to_s] do%>
<div class="sy_class_id fl"> <div class="sy_class_id fl">
<p>邀 请 码<br /> <p>邀 请 码<br />
<span class="sy_corange"> <span class="sy_corange">
@@ -52,27 +57,30 @@
</span> </span>
</p> </p>
</div> </div>
<% end %>
<div class="sy_class_info fl ml15"> <div class="sy_class_info fl ml15">
<div class="sy_class_titbox">
<h3 class="fl sy_class_title">
<%= link_to @course.syllabus.title, syllabus_path(@course.syllabus_id), :class =>'c_dark', :target => '_blank'%>
&nbsp;<font class="fb">·</font>&nbsp;
<%=@course.name %>
</h3>
<span class="<%= @course.is_public == 0 ? 'hw_icon_private' : 'hw_icon_open' %> fl mr20 mt3"></span>
<p class="sy_cgrey fl mt3">
<span class=" mr15">教师:<%= course_teacher_link teacher_num %></span>
<span class=" mr15">学生:<%= course_student_link student_num %></span>
<span class=" mr15">资源:<%= link_to course_file_num, course_files_path(@course), :class => 'sy_cblue',:id=>'courses_files_count_info' %></span>
</p>
<div class="cl"></div>
</div>
<p class="sy_cgrey mb5">
<span class=" mr15">主讲老师:<%= link_to(@course.teacher.show_name, user_path(@course.teacher), :class => 'sy_cblue') %></span>
<span class=" mr15">学时:<span class="sy_cblack"><%= @course.class_period %>学时</span></span>
<span class=" mr15">学期:<span class="sy_cblack"><%= current_time_and_term @course %></span></span>
<span class=" mr15">单位:<span class="sy_cblack"><%= get_occupation_from_user(@course.teacher).blank? ? '无' : get_occupation_from_user(@course.teacher) %></span></span>
</p>
<% cache [:course_righthead,@course.id.to_s+"-"+@course.updated_at.to_i.to_s] do%>
<div class="sy_class_titbox">
<h3 class="fl sy_class_title">
<%= link_to @course.syllabus.title, syllabus_path(@course.syllabus_id), :class =>'c_dark', :target => '_blank'%>
&nbsp;<font class="fb">·</font>&nbsp;
<%=@course.name %>
</h3>
<span class="<%= @course.is_public == 0 ? 'hw_icon_private' : 'hw_icon_open' %> fl mr20 mt3"></span>
<p class="sy_cgrey fl mt3">
<span class=" mr15">教师:<%= course_teacher_link teacher_num %></span>
<span class=" mr15">学生:<%= course_student_link student_num %></span>
<span class=" mr15">资源:<%= link_to course_file_num, course_files_path(@course), :class => 'sy_cblue',:id=>'courses_files_count_info' %></span>
</p>
<div class="cl"></div>
</div>
<p class="sy_cgrey mb5">
<span class=" mr15">主讲老师:<%= link_to(@course.teacher.show_name, user_path(@course.teacher), :class => 'sy_cblue') %></span>
<span class=" mr15">学时:<span class="sy_cblack"><%= @course.class_period %>学时</span></span>
<span class=" mr15">学期:<span class="sy_cblack"><%= current_time_and_term @course %></span></span>
<span class=" mr15">单位:<span class="sy_cblack"><%= get_occupation_from_user(@course.teacher).blank? ? '无' : get_occupation_from_user(@course.teacher) %></span></span>
</p>
<% end %>
<% if is_teacher %> <% if is_teacher %>
<%= link_to "班级设置", {:controller => 'courses', :action => 'settings', :id => @course}, :class => "sy_btn_grey mr10 fl" %> <%= link_to "班级设置", {:controller => 'courses', :action => 'settings', :id => @course}, :class => "sy_btn_grey mr10 fl" %>
<% end %> <% end %>


+ 7
- 6
app/views/layouts/_user_courses.html.erb View File

@@ -1,7 +1,10 @@
<% courses.each do |course|%> <% courses.each do |course|%>
<li class="pr">
<% is_teacher = User.current.logged? && (User.current.admin? || User.current.allowed_to?(:as_teacher,course)) %>
<% count = ShieldActivity.where("container_type='User' and container_id=#{user.id} and shield_type='Course' and shield_id=#{course.id}").count %>
<% wechat_count = ShieldWechatMessage.where("container_type='User' and container_id=#{user.id} and shield_type='Course' and shield_id=#{course.id}").count %>
<% cache [:homepage_course_info,course.id.to_s+"-"+user.id.to_s+"-"+is_teacher.to_s+"-"+(User.current == user).to_s+"-"+(User.current.member_of_course?(course)).to_s+"-"+count.to_s+"-"+wechat_count.to_s+course.updated_at.to_i.to_s] do%>
<li>
<span class="user_icons_class"></span> <span class="user_icons_class"></span>
<% is_teacher = User.current.logged? && (User.current.admin? || User.current.allowed_to?(:as_teacher,course)) %>
<p href="javascript:void(0);" id="show_course_<%= course.id %>" class="course_list_menu" > <p href="javascript:void(0);" id="show_course_<%= course.id %>" class="course_list_menu" >
<%= link_to course.syllabus.title + course.name, course_path(course.id,:host=>Setting.host_course), :target => '_blank', :class => 'hidden', :style => 'display:block;'%> <%= link_to course.syllabus.title + course.name, course_path(course.id,:host=>Setting.host_course), :target => '_blank', :class => 'hidden', :style => 'display:block;'%>
</p> </p>
@@ -13,9 +16,6 @@
</div> </div>
<%#= link_to course.name+"("+current_time_and_term_short(course)+")", course_path(course.id,:host=>Setting.host_course), <%#= 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)+")"%> :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 %>
<% wechat_count = ShieldWechatMessage.where("container_type='User' and container_id=#{user.id} and shield_type='Course' and shield_id=#{course.id}").count %>
<div class="user_navmore_box"> <div class="user_navmore_box">
<ul class="<%#= count > 0 ? 'shild shildP':'subNavArrow'%>"> <ul class="<%#= count > 0 ? 'shild shildP':'subNavArrow'%>">
<li class="user_navmore_icons"> <li class="user_navmore_icons">
@@ -80,7 +80,7 @@
<% end %> <% end %>
</li> </li>
<% end %> <% end %>
<% if User.current.logged? && (User.current.admin? || User.current.allowed_to?(:as_teacher,course)) %>
<% if is_teacher %>
<li> <li>
<%= link_to course.is_public == 0 ? "设为公开" : "设为私有", {:controller => 'courses', :action => 'private_or_public', :id => course,:user_page => true}, <%= link_to course.is_public == 0 ? "设为公开" : "设为私有", {:controller => 'courses', :action => 'private_or_public', :id => course,:user_page => true},
:id => "set_course_public_#{course.id.to_s}",:remote=>true, :class => 'user_navmore_li',:confirm=>"您确定要设置为"+(course.is_public == 0 ? "公开" : "私有")+"吗"%> :id => "set_course_public_#{course.id.to_s}",:remote=>true, :class => 'user_navmore_li',:confirm=>"您确定要设置为"+(course.is_public == 0 ? "公开" : "私有")+"吗"%>
@@ -92,6 +92,7 @@
</ul> </ul>
</div> </div>
</li> </li>
<% end %>
<% end %> <% end %>
<% if all_count > (page.to_i+1) * 10%> <% if all_count > (page.to_i+1) * 10%>


+ 11
- 4
app/views/layouts/_user_projects.html.erb View File

@@ -1,9 +1,15 @@
<% projects.each do |project|%> <% projects.each do |project|%>
<% count = ShieldActivity.where("container_type='User' and container_id=#{user.id} and shield_type='Project' and shield_id=#{project.id}").count %>
<% wechat_count = ShieldWechatMessage.where("container_type='User' and container_id=#{user.id} and shield_type='Project' and shield_id=#{project.id}").count %>
<% is_logged = User.current.logged? %>
<% is_admin = User.current.admin? %>
<% current_user_isuser = User.current == @user %>
<% can_setting = User.current.allowed_to?({:controller => 'projects', :action => 'settings'}, project) %>
<% is_manager = is_project_manager?(User.current,project) %>
<% cache [:homepage_project_info,project.id.to_s+"-"+user.id.to_s+"-"+is_logged.to_s+"-"+is_admin.to_s+"-"+current_user_isuser.to_s+"-"+can_setting.to_s+"-"+count.to_s+"-"+wechat_count.to_s+"-"+is_manager.to_s+"-"+project.updated_on.to_i.to_s] do%>
<li> <li>
<span class="user_icons_class"></span> <span class="user_icons_class"></span>
<% count = ShieldActivity.where("container_type='User' and container_id=#{user.id} and shield_type='Project' and shield_id=#{project.id}").count %>
<%= link_to project.name, project_path(project.id,:host=>Setting.host_name), :target => '_blank', :class => "project_list_menu hidden",:id => "show_project_#{project.id}", :title => (project.is_public? ? "公开项目:":"私有项目:") + project.name%> <%= link_to project.name, project_path(project.id,:host=>Setting.host_name), :target => '_blank', :class => "project_list_menu hidden",:id => "show_project_#{project.id}", :title => (project.is_public? ? "公开项目:":"私有项目:") + project.name%>

<div class="user_navmore_box"> <div class="user_navmore_box">
<ul class="<%#= count > 0 ? 'shild shildP':'subNavArrow'%>"> <ul class="<%#= count > 0 ? 'shild shildP':'subNavArrow'%>">
<li class="user_navmore_icons"> <li class="user_navmore_icons">
@@ -32,7 +38,7 @@
<div class="cl"></div> <div class="cl"></div>
</li> </li>
<li> <li>
<% if ShieldActivity.where("container_type='User' and container_id=#{user.id} and shield_type='Project' and shield_id=#{project.id}").count == 0 %>
<% if count == 0 %>
<%= link_to "屏蔽动态", shield_activities_path(:user_id => user.id, :project_id => project.id), :method => 'post',:remote => true,:class => "user_navmore_li" %> <%= link_to "屏蔽动态", shield_activities_path(:user_id => user.id, :project_id => project.id), :method => 'post',:remote => true,:class => "user_navmore_li" %>
<% else %> <% else %>
<%= link_to "显示动态", show_acts_shield_activities_path(:user_id => user.id, :project_id => project.id),:method => 'delete',:remote => true,:class => "user_navmore_li" %> <%= link_to "显示动态", show_acts_shield_activities_path(:user_id => user.id, :project_id => project.id),:method => 'delete',:remote => true,:class => "user_navmore_li" %>
@@ -40,7 +46,7 @@
<div class="cl"></div> <div class="cl"></div>
</li> </li>
<li> <li>
<% if ShieldWechatMessage.where("container_type='User' and container_id=#{user.id} and shield_type='Project' and shield_id=#{project.id}").count == 0 %>
<% if wechat_count == 0 %>
<%= link_to "屏蔽微信消息", shield_wechat_messages_path(:user_id => user.id, :project_id => project.id), :method => 'post',:remote => true,:class => "user_navmore_li" %> <%= link_to "屏蔽微信消息", shield_wechat_messages_path(:user_id => user.id, :project_id => project.id), :method => 'post',:remote => true,:class => "user_navmore_li" %>
<% else %> <% else %>
<%= link_to "接收微信消息", show_messages_shield_wechat_messages_path(:user_id => user.id, :project_id => project.id),:method => 'delete',:remote => true,:class => "user_navmore_li" %> <%= link_to "接收微信消息", show_messages_shield_wechat_messages_path(:user_id => user.id, :project_id => project.id),:method => 'delete',:remote => true,:class => "user_navmore_li" %>
@@ -60,6 +66,7 @@
</ul> </ul>
</div> </div>
</li> </li>
<% end %>
<% end %> <% end %>


<% if all_count > (page.to_i+1) * 10%> <% if all_count > (page.to_i+1) * 10%>


+ 98
- 91
app/views/layouts/base_courses.html.erb View File

@@ -57,99 +57,106 @@
<div class="sy_content"> <div class="sy_content">
<div class="sy_class_l fl" id="courseLSide"> <div class="sy_class_l fl" id="courseLSide">
<div class="sy_class_leftnav mb12">
<ul class="accordion">
<% unless show_nav?(@course.course_activities.count) %>
<li id="sy_01" class="sy_icons_index">
<a href="<%=course_path(@course) %>" >动态<span><%=@course.course_activities.count %></span></a>
</li>
<% end %>
<% course_board = @course.boards.where("parent_id is NULL").first %>
<% unless show_nav?(course_board ? course_board.topics.count : 0) %>
<li id="sy_02" class="sy_icons_boards">
<% count = course_board ? (course_board.topics.count + Message.where("board_id =? and parent_id is not ?", course_board.id, nil).count) : 0 %>
<a href="<%=course_boards_path(@course) %>">讨论区<span><%=count %></span></a>
<%= link_to( "",course_boards_path(@course, :flag => true, :is_new => 1), :class => 'sy_class_add', :title =>"#{l(:label_message_new)}") if is_teacher %>
</li>
<div id="board_children_list">
<%= render :partial => 'layouts/board_children_list', :locals => {:course_board => course_board} %>
</div>
<% end %>
<% unless show_nav?(@course.homework_commons.count) %>
<li id="sy_03" class="sy_icons_hwork">
<a href="<%= homework_common_index_path(:course => @course.id) %>">作业<span><%=homework_num %></span></a>
<%= link_to( "",homework_common_index_path(:course => @course.id,:is_new => 1), :class => 'sy_class_add', :title =>"#{l(:label_course_homework_new)}") if is_teacher %>
</li>
<% end %>
<% unless show_nav?(@course.news.count) %>
<li id="sy_04" class="sy_icons_news">
<a href="<%=course_news_index_path(@course) %>">通知<span><%=@course.news.count %></span></a>
<%= link_to( "",new_course_news_path(@course,:is_new=>1), :class => 'sy_class_add', :title =>"#{l(:label_course_news_new)}") if is_teacher %>
</li>
<% end %>
<% unless show_nav?(course_file_num) %>
<li id="sy_05" class="sy_icons_files">
<a href="<%=course_files_path(@course) %>">资源库<span><%=course_file_num %></span></a>
<% if is_teacher || (@course.publish_resource == 1 && User.current.member_of_course?(@course)) %>
<a class="sy_class_add" title="上传资源" href="javascript:void(0);" onclick="course_files_upload();"> </a>
<% end %>
</li>
<% end %>
<% unless show_nav?(course_feedback_count) %>
<li id="sy_06" class="sy_icons_feedback">
<a href="<%=course_feedback_path(@course) %>">留言<span id="course_jour_count"><%=course_feedback_count %></span></a>
<%= link_to( "", course_feedback_path(@course), :class => 'sy_class_add', :title =>"#{l(:label_course_feedback)}") if is_teacher %>
</li>
<% end %>
<% unless show_nav?(course_poll_count) %>
<li id="sy_07" class="sy_icons_poll">
<a href="<%=poll_index_path(:polls_type => "Course", :polls_group_id => @course.id) %>">问卷调查<span><%=course_poll_count %></span></a>
<%= link_to( "", new_poll_path(:polls_type => "Course",:polls_group_id => @course.id), :class => 'sy_class_add', :title =>"#{l(:label_new_poll)}") if is_teacher %>
</li>
<% end %>
<% count = User.current.allowed_to?(:as_teacher,@course)? @course.exercises.count : @course.exercises.where("exercise_status <> 1").count %>
<% unless show_nav?(count) %>
<li id="sy_08" class="sy_icons_exercise">
<a href="<%= User.current.logged? ? exercise_index_path(:course_id => @course.id) : signin_url_without_domain %>">在线测验<span><%=count %></span></a>
<%= link_to( "", new_exercise_path(:course_id => @course.id), :class => 'sy_class_add', :title =>"新建试卷") if is_teacher %>
</li>
<% end %>
<% group_count = @course.course_groups.count %>
<% if !show_nav?(group_count) && ((User.current.logged? && @course.open_student == 1) || (User.current.member_of_course?(@course)) || User.current.admin?) %>
<li id="sy_09" class="sy_icons_group">
<a href="<%=course_member_path(@course, :role => 2) %>">分班<span><%=group_count %></span></a>
<!--<a href="javascript:void(0);" class="sy_class_add"></a>-->
</li>
<div id="group_children_list">
<%= render :partial => 'layouts/group_children_list', :locals => {:course => @course} %>
</div>
<% end %>
<% statistics_count = 0 %>
<% unless show_nav?(statistics_count) %>
<li id="sy_10" class="sy_icons_st">
<a href="<%=statistics_course_course_path(@course) %>">统计<span></span></a>
<!--<a href="javascript:void(0);" class="sy_class_add"></a>-->
</li>
<% end %>
<%# 工具栏展开 %>
<% if @course.homework_commons.count == 0 || @course.news.count == 0 || course_file_num == 0 || course_poll_count == 0 || @course.exercises.count == 0 ||
course_feedback_count == 0 || @course.exercises.count == 0 || (@course.boards.first ? @course.boards.first.topics.count : 0) == 0 || statistics_count == 0%>
<li id="expand_tools_expand" class="sy_icons_more"><a href="javascript:void(0)"> 更多</a>
</li>
<ul class="sub-menu undis" id="navContentCourse">
<%= render :partial => 'courses/tool_expand' %>
</ul>
<% end %>
</ul>
</div><!--sy_class_leftnav end-->
<% cache [:course_leftmenu,@course.id.to_s+"-"+is_teacher.to_s+"-"+(User.current.member_of_course?(@course)).to_s+"-"+@course.updated_at.to_i.to_s] do%>
<div class="sy_class_leftnav mb12">
<ul class="accordion">
<% actcount = @course.course_activities.count %>
<% unless show_nav?(actcount) %>
<li id="sy_01" class="sy_icons_index">
<a href="<%=course_path(@course) %>" >动态<span><%=actcount %></span></a>
</li>
<% end %>
<% course_board = @course.boards.where("parent_id is NULL").first %>
<% unless show_nav?(course_board ? course_board.topics.count : 0) %>
<li id="sy_02" class="sy_icons_boards">
<% count = course_board ? (course_board.topics.count + Message.where("board_id =? and parent_id is not ?", course_board.id, nil).count) : 0 %>
<a href="<%=course_boards_path(@course) %>">讨论区<span><%=count %></span></a>
<%= link_to( "",course_boards_path(@course, :flag => true, :is_new => 1), :class => 'sy_class_add', :title =>"#{l(:label_message_new)}") if is_teacher %>
</li>
<div id="board_children_list">
<%= render :partial => 'layouts/board_children_list', :locals => {:course_board => course_board} %>
</div>
<% end %>
<% unless show_nav?(@course.homework_commons.count) %>
<li id="sy_03" class="sy_icons_hwork">
<a href="<%= homework_common_index_path(:course => @course.id) %>">作业<span><%=homework_num %></span></a>
<%= link_to( "",homework_common_index_path(:course => @course.id,:is_new => 1), :class => 'sy_class_add', :title =>"#{l(:label_course_homework_new)}") if is_teacher %>
</li>
<% end %>
<% unless show_nav?(@course.news.count) %>
<li id="sy_04" class="sy_icons_news">
<a href="<%=course_news_index_path(@course) %>">通知<span><%=@course.news.count %></span></a>
<%= link_to( "",new_course_news_path(@course,:is_new=>1), :class => 'sy_class_add', :title =>"#{l(:label_course_news_new)}") if is_teacher %>
</li>
<% end %>
<% unless show_nav?(course_file_num) %>
<li id="sy_05" class="sy_icons_files">
<a href="<%=course_files_path(@course) %>">资源库<span><%=course_file_num %></span></a>
<% if is_teacher || (@course.publish_resource == 1 && User.current.member_of_course?(@course)) %>
<a class="sy_class_add" title="上传资源" href="javascript:void(0);" onclick="course_files_upload();"> </a>
<% end %>
</li>
<% end %>
<% unless show_nav?(course_feedback_count) %>
<li id="sy_06" class="sy_icons_feedback">
<a href="<%=course_feedback_path(@course) %>">留言<span id="course_jour_count"><%=course_feedback_count %></span></a>
<%= link_to "", course_feedback_path(@course), :class => 'sy_class_add', :title =>"#{l(:label_course_feedback)}"%>
</li>
<% end %>
<% unless show_nav?(course_poll_count) %>
<li id="sy_07" class="sy_icons_poll">
<a href="<%=poll_index_path(:polls_type => "Course", :polls_group_id => @course.id) %>">问卷调查<span><%=course_poll_count %></span></a>
<%= link_to( "", new_poll_path(:polls_type => "Course",:polls_group_id => @course.id), :class => 'sy_class_add', :title =>"#{l(:label_new_poll)}") if is_teacher %>
</li>
<% end %>
<% count = User.current.allowed_to?(:as_teacher,@course)? @course.exercises.count : @course.exercises.where("exercise_status <> 1").count %>
<% unless show_nav?(count) %>
<li id="sy_08" class="sy_icons_exercise">
<a href="<%=exercise_index_path(:course_id => @course.id) %>">在线测验<span><%=count %></span></a>
<%= link_to( "", new_exercise_path(:course_id => @course.id), :class => 'sy_class_add', :title =>"新建试卷") if is_teacher %>
</li>
<% end %>
<% statistics_count = 0 %>
<% unless show_nav?(statistics_count) %>
<li id="sy_09" class="sy_icons_st">
<a href="<%=statistics_course_course_path(@course) %>">统计<span></span></a>
<!--<a href="javascript:void(0);" class="sy_class_add"></a>-->
</li>
<% end %>
<%# 工具栏展开 %>
<% if @course.homework_commons.count == 0 || @course.news.count == 0 || course_file_num == 0 || course_poll_count == 0 || @course.exercises.count == 0 ||
course_feedback_count == 0 || @course.exercises.count == 0 || (@course.boards.first ? @course.boards.first.topics.count : 0) == 0 || statistics_count == 0%>
<li id="expand_tools_expand" class="sy_icons_more"><a href="javascript:void(0)"> 更多</a>
</li>
<ul class="sub-menu undis" id="navContentCourse">
<%= render :partial => 'courses/tool_expand' %>
</ul>
<% end %>
<% if @course.homework_commons.count == 0 || @course.news.count == 0 || course_file_num == 0 || course_poll_count == 0 || @course.exercises.count == 0 ||
course_feedback_count == 0 || @course.exercises.count == 0 || (@course.boards.first ? @course.boards.first.topics.count : 0) == 0 || statistics_count == 0%>
<li id="expand_tools_expand" class="sy_icons_more"><a href="javascript:void(0)"> 更多</a>
</li>
<ul class="sub-menu undis" id="navContentCourse">
<%= render :partial => 'courses/tool_expand' %>
</ul>
<% end %>
</ul>
</div><!--sy_class_leftnav end-->
<% end %>
<%# 课程活跃度 %> <%# 课程活跃度 %>
<%= render :partial => 'courses/course_activity_users', :locals => {:course => @course} %>
<% cache [:course_activity_users,@course.id.to_s],{ expires_in: 1.minutes } do%>
<%= render :partial => 'courses/course_activity_users', :locals => {:course => @course} %>
<% end %>
<%# 课程英雄榜 %> <%# 课程英雄榜 %>
<%= render :partial => 'courses/course_heroes', :locals => {:course => @course} %>
<div class="sy_class_leftbox" >
<h3 class="fontGrey7">班级推荐</h3>
<%= render :partial => 'courses/recommendation', :locals => {:course => @course} %>
</div>
<% cache [:course_heroes,@course.id.to_s],{ expires_in: 1.minutes } do%>
<%= render :partial => 'courses/course_heroes', :locals => {:course => @course} %>
<% end %>
<% cache [:course_recommendation,@course.id.to_s],{ expires_in: 5.minutes } do%>
<div class="sy_class_leftbox" >
<h3 class="fontGrey7">班级推荐</h3>
<%= render :partial => 'courses/recommendation', :locals => {:course => @course} %>
</div>
<% end %>
<%# 更新访问数,刷新的时候更新访问次数 %> <%# 更新访问数,刷新的时候更新访问次数 %>
<% update_visiti_count @course %> <% update_visiti_count @course %>
<div class="fontGrey5 mt10 ml20">访问计数 <%= @course.visits.to_i %> (自2016年5月)</div> <div class="fontGrey5 mt10 ml20">访问计数 <%= @course.visits.to_i %> (自2016年5月)</div>


+ 10
- 4
app/views/layouts/new_base_user.html.erb View File

@@ -102,7 +102,9 @@
<div class="homepageContent"> <div class="homepageContent">
<div class="homepageLeft mt10" id="LSide"> <div class="homepageLeft mt10" id="LSide">
<div class="user_leftinfo mb10"> <div class="user_leftinfo mb10">
<% if User.current.logged? && User.current == @user%>
<% is_current_user = (User.current.logged? && User.current == @user) %>
<% cache [:user_leftinfo,@user.id.to_s+"-"+is_current_user.to_s+"-"+@user.updated_at.to_i.to_s] do %>
<% if is_current_user %>
<div class="pr" style="width: 80px; margin:0 auto;"> <div class="pr" style="width: 80px; margin:0 auto;">
<%=link_to image_tag(url_to_avatar(@user),width:"74", height: "74", :id=>'nh_source_tx'), my_clear_user_avatar_temp_path, :class => "user_leftinfo_img", :remote => true%> <%=link_to image_tag(url_to_avatar(@user),width:"74", height: "74", :id=>'nh_source_tx'), my_clear_user_avatar_temp_path, :class => "user_leftinfo_img", :remote => true%>
<div class="homepageEditProfile undis"> <div class="homepageEditProfile undis">
@@ -153,11 +155,11 @@
</li> </li>
</ul> </ul>
</div> </div>
<% end %>
<div id="watch_user_btn_div"> <div id="watch_user_btn_div">
<%= render :partial => 'layouts/user_watch_btn', :locals => {:target => @user} %> <%= render :partial => 'layouts/user_watch_btn', :locals => {:target => @user} %>
</div> </div>
</div> </div>
<div class="user_leftnav "> <div class="user_leftnav ">
<% if hidden_unproject_infos %> <% if hidden_unproject_infos %>
<ul class="users_accordion mb10"> <ul class="users_accordion mb10">
@@ -166,7 +168,9 @@
<font class="show-all-sub"><%= link_to '全部',{:controller => "users", :action => "user_courselist", :id => @user.id}, :style => "color:#aaa;" %></font> <font class="show-all-sub"><%= link_to '全部',{:controller => "users", :action => "user_courselist", :id => @user.id}, :style => "color:#aaa;" %></font>
<% courses = @user.favorite_courses.visible.where("is_delete =?", 0).select("courses.*,(SELECT MAX(updated_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS a").order("a desc").limit(10) %> <% courses = @user.favorite_courses.visible.where("is_delete =?", 0).select("courses.*,(SELECT MAX(updated_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS a").order("a desc").limit(10) %>
<div class="<%= courses.empty? ? 'none' : ''%>" id="homepage_left_course_list"> <div class="<%= courses.empty? ? 'none' : ''%>" id="homepage_left_course_list">
<%=render :partial => 'layouts/homepage_left_course_list', :locals => {:courses => courses} %>
<%# cache [:personal_courses,@user.id,courses.count,courses[0].updated_at.to_i] do%>
<%=render :partial => 'layouts/homepage_left_course_list', :locals => {:courses => courses} %>
<%# end %>
</div> </div>
</li> </li>
<% if is_current_user %> <% if is_current_user %>
@@ -194,7 +198,9 @@
<font class="show-all-sub"><%= link_to '全部',{:controller => "users", :action => "user_projectlist", :id => @user.id}, :style => "color:#aaa;" %></font> <font class="show-all-sub"><%= link_to '全部',{:controller => "users", :action => "user_projectlist", :id => @user.id}, :style => "color:#aaa;" %></font>
<% projects = @user.favorite_projects.visible.select("projects.*, (SELECT MAX(updated_at) FROM `forge_activities` WHERE forge_activities.project_id = projects.id) AS a").order("a desc").limit(10)%> <% projects = @user.favorite_projects.visible.select("projects.*, (SELECT MAX(updated_at) FROM `forge_activities` WHERE forge_activities.project_id = projects.id) AS a").order("a desc").limit(10)%>
<div class="<%= projects.empty? ? 'none' : ''%>" id="homepage_left_project_list"> <div class="<%= projects.empty? ? 'none' : ''%>" id="homepage_left_project_list">
<%=render :partial => 'layouts/homepage_left_project_list', :locals => {:projects => projects} %>
<%# cache [:personal_projects,@user.id,projects.count,projects[0].updated_on.to_i] do%>
<%=render :partial => 'layouts/homepage_left_project_list', :locals => {:projects => projects} %>
<%# end %>
</div> </div>
</li> </li>
<% if is_current_user %> <% if is_current_user %>


+ 1
- 1
app/views/organizations/_org_activities.html.erb View File

@@ -35,7 +35,7 @@
<div class="homepagePostBrief"> <div class="homepagePostBrief">
<div class="homepagePostPortrait"> <div class="homepagePostPortrait">
<a href="javascript:void(0);"><%= image_tag(url_to_avatar(User.find(act.user_id)), :width => "45", :height => "45") %></a> <a href="javascript:void(0);"><%= image_tag(url_to_avatar(User.find(act.user_id)), :width => "45", :height => "45") %></a>
<%= render :partial => 'users/show_detail_info', :locals => {:user => User.find(act.user_id)} %>
<%#= render :partial => 'users/show_detail_info', :locals => {:user => User.find(act.user_id)} %>
</div> </div>
<div class="homepagePostDes"> <div class="homepagePostDes">
<div class="homepagePostTo"><%= link_to User.find(act.user_id), user_url_in_org(act.user_id),:class => "newsBlue mr15" %>&nbsp;&nbsp;创建了 <a href="<%= organization_path(@organization)%>" class="newsBlue ml10"><%= Organization.find(act.org_act_id).name %> <div class="homepagePostTo"><%= link_to User.find(act.user_id), user_url_in_org(act.user_id),:class => "newsBlue mr15" %>&nbsp;&nbsp;创建了 <a href="<%= organization_path(@organization)%>" class="newsBlue ml10"><%= Organization.find(act.org_act_id).name %>


+ 1
- 1
app/views/organizations/_org_course_create.html.erb View File

@@ -2,7 +2,7 @@
<div class="homepagePostBrief"> <div class="homepagePostBrief">
<div class="homepagePostPortrait"> <div class="homepagePostPortrait">
<%= link_to image_tag(url_to_avatar(activity.teacher), :width => "50", :height => "50"), user_url_in_org(activity.tea_id), :alt => "用户头像" %> <%= link_to image_tag(url_to_avatar(activity.teacher), :width => "50", :height => "50"), user_url_in_org(activity.tea_id), :alt => "用户头像" %>
<%= render :partial => 'users/show_detail_info', :locals => {:user => activity.teacher} %>
<%#= render :partial => 'users/show_detail_info', :locals => {:user => activity.teacher} %>
</div> </div>
<div class="homepagePostDes"> <div class="homepagePostDes">
<div class="homepagePostTo break_word"> <div class="homepagePostTo break_word">


+ 1
- 1
app/views/organizations/_org_course_homework.html.erb View File

@@ -3,7 +3,7 @@
<div class="homepagePostBrief"> <div class="homepagePostBrief">
<div class="homepagePostPortrait"> <div class="homepagePostPortrait">
<%= link_to image_tag(url_to_avatar(activity.user), :width => "50", :height => "50"), user_url_in_org(activity.user_id), :alt => "用户头像" %> <%= link_to image_tag(url_to_avatar(activity.user), :width => "50", :height => "50"), user_url_in_org(activity.user_id), :alt => "用户头像" %>
<%= render :partial => 'users/show_detail_info', :locals => {:user => activity.user} %>
<%#= render :partial => 'users/show_detail_info', :locals => {:user => activity.user} %>
</div> </div>
<div class="homepagePostDes"> <div class="homepagePostDes">
<div class="homepagePostTo break_word"> <div class="homepagePostTo break_word">


+ 1
- 1
app/views/organizations/_org_course_message.html.erb View File

@@ -2,7 +2,7 @@
<div class="homepagePostBrief"> <div class="homepagePostBrief">
<div class="homepagePostPortrait"> <div class="homepagePostPortrait">
<%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_url_in_org(activity.author_id), :alt => "用户头像" %> <%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_url_in_org(activity.author_id), :alt => "用户头像" %>
<%= render :partial => 'users/show_detail_info', :locals => {:user => activity.author} %>
<%#= render :partial => 'users/show_detail_info', :locals => {:user => activity.author} %>
</div> </div>
<div class="homepagePostDes"> <div class="homepagePostDes">
<div class="homepagePostTo break_word"> <div class="homepagePostTo break_word">


+ 1
- 1
app/views/organizations/_org_course_news.html.erb View File

@@ -2,7 +2,7 @@
<div class="homepagePostBrief"> <div class="homepagePostBrief">
<div class="homepagePostPortrait"> <div class="homepagePostPortrait">
<%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_url_in_org(activity.author_id), :alt => "用户头像" %> <%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_url_in_org(activity.author_id), :alt => "用户头像" %>
<%= render :partial => 'users/show_detail_info', :locals => {:user => activity.author} %>
<%#= render :partial => 'users/show_detail_info', :locals => {:user => activity.author} %>
</div> </div>
<div class="homepagePostDes"> <div class="homepagePostDes">
<div class="homepagePostTo break_word"> <div class="homepagePostTo break_word">


+ 1
- 1
app/views/organizations/_org_course_poll.html.erb View File

@@ -6,7 +6,7 @@
<div class="homepagePostPortrait"> <div class="homepagePostPortrait">
<!-- <a href="javascript:void(0);"><img src="images/homepageImage.jpg" width="90" height="90" alt="用户头像"/></a>--> <!-- <a href="javascript:void(0);"><img src="images/homepageImage.jpg" width="90" height="90" alt="用户头像"/></a>-->
<%= link_to image_tag(url_to_avatar(activity.user), :width => "50", :height => "50"), user_url_in_org(activity.user_id), :alt => "用户头像" %> <%= link_to image_tag(url_to_avatar(activity.user), :width => "50", :height => "50"), user_url_in_org(activity.user_id), :alt => "用户头像" %>
<%= render :partial => 'users/show_detail_info', :locals => {:user => activity.user} %>
<%#= render :partial => 'users/show_detail_info', :locals => {:user => activity.user} %>
</div> </div>
<div class="homepagePostDes"> <div class="homepagePostDes">
<div class="homepagePostTo break_word"> <div class="homepagePostTo break_word">


+ 1
- 1
app/views/organizations/_org_project_issue.html.erb View File

@@ -2,7 +2,7 @@
<div class="homepagePostBrief"> <div class="homepagePostBrief">
<div class="homepagePostPortrait"> <div class="homepagePostPortrait">
<%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_url_in_org(activity.author_id), :alt => "用户头像" %> <%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_url_in_org(activity.author_id), :alt => "用户头像" %>
<%= render :partial => 'users/show_detail_info', :locals => {:user => activity.author} %>
<%#= render :partial => 'users/show_detail_info', :locals => {:user => activity.author} %>
</div> </div>
<div class="homepagePostDes"> <div class="homepagePostDes">
<div class="homepagePostTo break_word"> <div class="homepagePostTo break_word">


+ 1
- 1
app/views/organizations/_org_subfield_message.html.erb View File

@@ -2,7 +2,7 @@
<div class="homepagePostBrief"> <div class="homepagePostBrief">
<div class="homepagePostPortrait"> <div class="homepagePostPortrait">
<%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_url_in_org(activity.author_id), :alt => "用户头像" %> <%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_url_in_org(activity.author_id), :alt => "用户头像" %>
<%= render :partial => 'users/show_detail_info', :locals => {:user => activity.author} %>
<%#= render :partial => 'users/show_detail_info', :locals => {:user => activity.author} %>
</div> </div>
<div class="homepagePostDes"> <div class="homepagePostDes">
<div class="homepagePostTo break_word"> <div class="homepagePostTo break_word">


+ 1
- 1
app/views/organizations/_org_subfield_news.html.erb View File

@@ -2,7 +2,7 @@
<div class="homepagePostBrief"> <div class="homepagePostBrief">
<div class="homepagePostPortrait"> <div class="homepagePostPortrait">
<%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_url_in_org(activity.author_id), :alt => "用户头像" %> <%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_url_in_org(activity.author_id), :alt => "用户头像" %>
<%= render :partial => 'users/show_detail_info', :locals => {:user => activity.author} %>
<%#= render :partial => 'users/show_detail_info', :locals => {:user => activity.author} %>
</div> </div>
<div class="homepagePostDes"> <div class="homepagePostDes">
<div class="homepagePostTo break_word"> <div class="homepagePostTo break_word">


+ 1
- 1
app/views/organizations/_project_create.html.erb View File

@@ -4,7 +4,7 @@
<div class="homepagePostBrief"> <div class="homepagePostBrief">
<div class="homepagePostPortrait"> <div class="homepagePostPortrait">
<%= link_to image_tag(url_to_avatar(user), :width => "50", :height => "50"), user_url_in_org(user.id), :alt => "用户头像" %> <%= link_to image_tag(url_to_avatar(user), :width => "50", :height => "50"), user_url_in_org(user.id), :alt => "用户头像" %>
<%= render :partial => 'users/show_detail_info', :locals => {:user => user} %>
<%#= render :partial => 'users/show_detail_info', :locals => {:user => user} %>
</div> </div>
<div class="homepagePostDes"> <div class="homepagePostDes">
<div class="homepagePostTo break_word"> <div class="homepagePostTo break_word">


+ 1
- 1
app/views/organizations/_project_message.html.erb View File

@@ -2,7 +2,7 @@
<div class="homepagePostBrief"> <div class="homepagePostBrief">
<div class="homepagePostPortrait"> <div class="homepagePostPortrait">
<%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_url_in_org(activity.author_id), :alt => "用户头像" %> <%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_url_in_org(activity.author_id), :alt => "用户头像" %>
<%= render :partial => 'users/show_detail_info', :locals => {:user => activity.author} %>
<%#= render :partial => 'users/show_detail_info', :locals => {:user => activity.author} %>
</div> </div>
<div class="homepagePostDes" > <div class="homepagePostDes" >
<div class="homepagePostTo break_word"> <div class="homepagePostTo break_word">


+ 1
- 1
app/views/organizations/_show_org_document.html.erb View File

@@ -2,7 +2,7 @@
<div class="homepagePostBrief"> <div class="homepagePostBrief">
<div class="homepagePostPortrait"> <div class="homepagePostPortrait">
<%= link_to image_tag(url_to_avatar(User.find(document.creator_id)), :width => 45, :heigth => 45), user_url_in_org(document.creator_id) %> <%= link_to image_tag(url_to_avatar(User.find(document.creator_id)), :width => 45, :heigth => 45), user_url_in_org(document.creator_id) %>
<%= render :partial => 'users/show_detail_info', :locals => {:user => User.find(document.creator_id)} %>
<%#= render :partial => 'users/show_detail_info', :locals => {:user => User.find(document.creator_id)} %>
</div> </div>
<div class="homepagePostDes"> <div class="homepagePostDes">
<div class="homepagePostTo"> <div class="homepagePostTo">


+ 1
- 1
app/views/projects/_attachment_acts.html.erb View File

@@ -2,7 +2,7 @@
<div class="homepagePostBrief"> <div class="homepagePostBrief">
<div class="homepagePostPortrait"> <div class="homepagePostPortrait">
<%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_path(activity.author_id), :alt => "用户头像" %> <%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_path(activity.author_id), :alt => "用户头像" %>
<%= render :partial => 'users/show_detail_info', :locals => {:user => activity.author} %>
<%#= render :partial => 'users/show_detail_info', :locals => {:user => activity.author} %>
</div> </div>
<div class="homepagePostDes"> <div class="homepagePostDes">
<div class="homepagePostTo break_word"> <div class="homepagePostTo break_word">


+ 1
- 1
app/views/projects/_project_commit.html.erb View File

@@ -4,7 +4,7 @@
<div class="homepagePostBrief"> <div class="homepagePostBrief">
<div class="homepagePostPortrait"> <div class="homepagePostPortrait">
<%= link_to image_tag(url_to_avatar(user), :width => "50", :height => "50"), user_path(user), :alt => "用户头像" %> <%= link_to image_tag(url_to_avatar(user), :width => "50", :height => "50"), user_path(user), :alt => "用户头像" %>
<%= render :partial => 'users/show_detail_info', :locals => {:user => user} %>
<%#= render :partial => 'users/show_detail_info', :locals => {:user => user} %>
</div> </div>
<div class="homepagePostDes"> <div class="homepagePostDes">
<div class="homepagePostTo break_word"> <div class="homepagePostTo break_word">


+ 1
- 1
app/views/projects/_project_create.html.erb View File

@@ -4,7 +4,7 @@
<div class="homepagePostBrief"> <div class="homepagePostBrief">
<div class="homepagePostPortrait"> <div class="homepagePostPortrait">
<%= link_to image_tag(url_to_avatar(user), :width => "50", :height => "50"), user_path(user), :alt => "用户头像" %> <%= link_to image_tag(url_to_avatar(user), :width => "50", :height => "50"), user_path(user), :alt => "用户头像" %>
<%= render :partial => 'users/show_detail_info', :locals => {:user => user} %>
<%#= render :partial => 'users/show_detail_info', :locals => {:user => user} %>
</div> </div>
<div class="homepagePostDes"> <div class="homepagePostDes">
<div class="homepagePostTo break_word" style="width:620px"> <div class="homepagePostTo break_word" style="width:620px">


+ 1
- 1
app/views/projects/_project_news.html.erb View File

@@ -2,7 +2,7 @@
<div class="homepagePostBrief"> <div class="homepagePostBrief">
<div class="homepagePostPortrait"> <div class="homepagePostPortrait">
<%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_path(activity.author_id), :alt => "用户头像" %> <%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_path(activity.author_id), :alt => "用户头像" %>
<%= render :partial => 'users/show_detail_info', :locals => {:user => activity.author} %>
<%#= render :partial => 'users/show_detail_info', :locals => {:user => activity.author} %>
</div> </div>
<div class="homepagePostDes"> <div class="homepagePostDes">
<div class="homepagePostTo break_word" style="width:620px"> <div class="homepagePostTo break_word" style="width:620px">


+ 1
- 1
app/views/sub_document_comments/_show_sub_document.html.erb View File

@@ -2,7 +2,7 @@
<div class="homepagePostBrief"> <div class="homepagePostBrief">
<div class="homepagePostPortrait"> <div class="homepagePostPortrait">
<%= link_to image_tag(url_to_avatar(User.find(document.creator_id)), :width => 45, :heigth => 45), user_url_in_org(document.creator_id) %> <%= link_to image_tag(url_to_avatar(User.find(document.creator_id)), :width => 45, :heigth => 45), user_url_in_org(document.creator_id) %>
<%= render :partial => 'users/show_detail_info', :locals => {:user => User.find(document.creator_id)} %>
<%#= render :partial => 'users/show_detail_info', :locals => {:user => User.find(document.creator_id)} %>
</div> </div>
<div class="homepagePostDes"> <div class="homepagePostDes">
<div class="homepagePostTo"> <div class="homepagePostTo">


+ 3
- 1
app/views/users/_course_attachment.html.erb View File

@@ -1,8 +1,9 @@
<% cache [:user_courseattachment_activity,activity.id.to_s+"-"+activity.updated_at.to_i.to_s] do%>
<div class="resources mt10"> <div class="resources mt10">
<div class="homepagePostBrief"> <div class="homepagePostBrief">
<div class="homepagePostPortrait"> <div class="homepagePostPortrait">
<%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_path(activity.author_id), :alt => "用户头像" %> <%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_path(activity.author_id), :alt => "用户头像" %>
<%= render :partial => 'users/show_detail_info', :locals => {:user => activity.author} %>
<%#= render :partial => 'users/show_detail_info', :locals => {:user => activity.author} %>
</div> </div>
<div class="homepagePostDes"> <div class="homepagePostDes">
<div class="homepagePostTo break_word"> <div class="homepagePostTo break_word">
@@ -41,6 +42,7 @@
<div class="cl"></div> <div class="cl"></div>
</div> </div>
</div> </div>
<% end %>
<script type="text/javascript"> <script type="text/javascript">
$(function(){ $(function(){
user_card_show_hide(); user_card_show_hide();


+ 1
- 1
app/views/users/_course_create.html.erb View File

@@ -2,7 +2,7 @@
<div class="homepagePostBrief"> <div class="homepagePostBrief">
<div class="homepagePostPortrait"> <div class="homepagePostPortrait">
<%= link_to image_tag(url_to_avatar(activity.teacher), :width => "50", :height => "50"), user_path(activity.tea_id), :alt => "用户头像" %> <%= link_to image_tag(url_to_avatar(activity.teacher), :width => "50", :height => "50"), user_path(activity.tea_id), :alt => "用户头像" %>
<%= render :partial => 'users/show_detail_info', :locals => {:user => activity.teacher} %>
<%#= render :partial => 'users/show_detail_info', :locals => {:user => activity.teacher} %>
</div> </div>
<div class="homepagePostDes"> <div class="homepagePostDes">
<div class="homepagePostTo break_word"> <div class="homepagePostTo break_word">


+ 4
- 2
app/views/users/_course_homework.html.erb View File

@@ -1,9 +1,10 @@
<% is_teacher = User.current.allowed_to?(:as_teacher,activity.course) %> <% is_teacher = User.current.allowed_to?(:as_teacher,activity.course) %>
<div class="resources mt10" id="user_activity_<%= user_activity_id%>"> <div class="resources mt10" id="user_activity_<%= user_activity_id%>">
<% cache [:user_homework_activity,activity.id.to_s+"-"+User.current.logged?.to_s+"-"+is_teacher.to_s+"-"+(User.current.member_of_course?(activity.course)).to_s+"-"+hw_status.to_s+"-"+activity.updated_at.to_i.to_s] do%>
<div class="homepagePostBrief"> <div class="homepagePostBrief">
<div class="homepagePostPortrait"> <div class="homepagePostPortrait">
<%= link_to image_tag(url_to_avatar(activity.user), :width => "50", :height => "50"), user_path(activity.user_id), :alt => "用户头像" %> <%= link_to image_tag(url_to_avatar(activity.user), :width => "50", :height => "50"), user_path(activity.user_id), :alt => "用户头像" %>
<%= render :partial => 'users/show_detail_info', :locals => {:user => activity.user} %>
<%#= render :partial => 'users/show_detail_info', :locals => {:user => activity.user} %>
</div> </div>
<div class="homepagePostDes"> <div class="homepagePostDes">
<div class="homepagePostTo break_word"> <div class="homepagePostTo break_word">
@@ -22,6 +23,7 @@
<% index = get_hw_index(activity, is_teacher) %> <% index = get_hw_index(activity, is_teacher) %>
<%= link_to "<span class='fontBlue2'>作业#{index+1}:</span>".html_safe+activity.name,student_work_index_path(:homework => activity.id),:class => "postGrey"%> <%= link_to "<span class='fontBlue2'>作业#{index+1}:</span>".html_safe+activity.name,student_work_index_path(:homework => activity.id),:class => "postGrey"%>
<% else %> <% else %>
<%= link_to activity.name.to_s, student_work_index_path(:homework => activity.id,:host=> Setting.host_course), :class => "postGrey"%> <%= link_to activity.name.to_s, student_work_index_path(:homework => activity.id,:host=> Setting.host_course), :class => "postGrey"%>
<% end %> <% end %>
</div> </div>
@@ -60,7 +62,7 @@
</div> </div>
<div class="cl"></div> <div class="cl"></div>
</div> </div>
<% end %>
<%= render :partial => 'users/homework_post_reply', :locals => {:activity => activity, :user_activity_id => user_activity_id, :hw_status => hw_status, :is_teacher => is_teacher} %> <%= render :partial => 'users/homework_post_reply', :locals => {:activity => activity, :user_activity_id => user_activity_id, :hw_status => hw_status, :is_teacher => is_teacher} %>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">


+ 7
- 2
app/views/users/_course_journalsformessage.html.erb View File

@@ -1,8 +1,10 @@
<% update_time = CourseActivity.where("course_act_type='#{activity.class}' and course_act_id =#{activity.id}").first.updated_at %>
<div class="resources mt10" id="user_activity_<%= user_activity_id%>"> <div class="resources mt10" id="user_activity_<%= user_activity_id%>">
<% cache [:user_coursejourformessage_activity,activity.id.to_s+"-"+User.current.logged?.to_s+"-"+update_time.to_i.to_s] do%>
<div class="homepagePostBrief"> <div class="homepagePostBrief">
<div class="homepagePostPortrait"> <div class="homepagePostPortrait">
<%= link_to image_tag(url_to_avatar(activity.user), :width => "50", :height => "50"), user_path(activity.user_id), :alt => "用户头像" %> <%= link_to image_tag(url_to_avatar(activity.user), :width => "50", :height => "50"), user_path(activity.user_id), :alt => "用户头像" %>
<%= render :partial => 'users/show_detail_info', :locals => {:user => activity.user} %>
<%#= render :partial => 'users/show_detail_info', :locals => {:user => activity.user} %>
</div> </div>
<div class="homepagePostDes"> <div class="homepagePostDes">
<div class="homepagePostTo break_word"> <div class="homepagePostTo break_word">
@@ -34,12 +36,14 @@
留言时间:<%= format_time(activity.created_on) %> 留言时间:<%= format_time(activity.created_on) %>
</div> </div>
<div class="homepagePostDate fl ml15"> <div class="homepagePostDate fl ml15">
更新时间:<%= format_time(CourseActivity.where("course_act_type='#{activity.class}' and course_act_id =#{activity.id}").first.updated_at) %>
更新时间:<%= format_time(update_time) %>
</div> </div>
<div class="cl"></div> <div class="cl"></div>
</div> </div>
<div class="cl"></div> <div class="cl"></div>
</div> </div>
<% end %>
<% cache [:user_coursejournals_reply,activity.id.to_s+"-"+User.current.id.to_s+"-"+User.current.logged?.to_s+"-"+activity.reply_updated_at.to_i.to_s] do %>
<% all_comments = []%> <% all_comments = []%>
<% all_replies = JournalsForMessage.where("root_id = #{activity.id}").reorder("created_on desc") %> <% all_replies = JournalsForMessage.where("root_id = #{activity.id}").reorder("created_on desc") %>
<% count = all_replies.count %> <% count = all_replies.count %>
@@ -79,6 +83,7 @@
<div class="cl"></div> <div class="cl"></div>
</div> </div>
</div> </div>
<% end %>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
$(function(){ $(function(){


+ 10
- 4
app/views/users/_course_message.html.erb View File

@@ -1,8 +1,10 @@
<% update_time = CourseActivity.where("course_act_type='#{activity.class}' and course_act_id =#{activity.id}").first.updated_at%>
<div class="resources mt10" id="user_activity_<%= user_activity_id%>" onmouseover="$('#message_setting_<%= user_activity_id%>').show();" onmouseout="$('#message_setting_<%= user_activity_id%>').hide();"> <div class="resources mt10" id="user_activity_<%= user_activity_id%>" onmouseover="$('#message_setting_<%= user_activity_id%>').show();" onmouseout="$('#message_setting_<%= user_activity_id%>').hide();">
<% cache [:user_coursemessage_activity,activity.id.to_s+"-"+User.current.logged?.to_s+"-"+(activity.author.id == User.current.id).to_s+"-"+(activity.course_editable_by?(User.current)).to_s+"-"+(activity.course_destroyable_by?(User.current)).to_s+"-"+update_time.to_i.to_s] do%>
<div class="homepagePostBrief"> <div class="homepagePostBrief">
<div class="homepagePostPortrait"> <div class="homepagePostPortrait">
<%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_path(activity.author_id,:host=>Setting.host_user), :alt => "用户头像" %> <%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_path(activity.author_id,:host=>Setting.host_user), :alt => "用户头像" %>
<%= render :partial => 'users/show_detail_info', :locals => {:user => activity.author} %>
<%#= render :partial => 'users/show_detail_info', :locals => {:user => activity.author} %>
</div> </div>
<div class="homepagePostDes"> <div class="homepagePostDes">
<div class="homepagePostTo break_word"> <div class="homepagePostTo break_word">
@@ -30,7 +32,7 @@
发帖时间:<%= format_time(activity.created_on) %> 发帖时间:<%= format_time(activity.created_on) %>
</div> </div>
<div class="homepagePostDate fl ml15"> <div class="homepagePostDate fl ml15">
更新时间:<%= format_time(CourseActivity.where("course_act_type='#{activity.class}' and course_act_id =#{activity.id}").first.updated_at) %>
更新时间:<%= format_time(update_time) %>
</div> </div>
<div class="cl"></div> <div class="cl"></div>
<% if activity.parent_id.nil? %> <% if activity.parent_id.nil? %>
@@ -52,7 +54,7 @@
<ul> <ul>
<li class="homepagePostSettingIcon"> <li class="homepagePostSettingIcon">
<ul class="homepagePostSettiongText"> <ul class="homepagePostSettiongText">
<% if activity.author.id == User.current.id%>
<% if activity.author_id == User.current.id%>
<li> <li>
<%= link_to( <%= link_to(
l(:button_edit), l(:button_edit),
@@ -80,6 +82,9 @@
</div> </div>
<div class="cl"></div> <div class="cl"></div>
</div> </div>
<% end %>
<% can_reply = !activity.locked? && authorize_for_course('messages', 'reply') %>
<% cache [:user_coursemessage_reply,activity.id.to_s+"-"+User.current.id.to_s+"-"+can_reply.to_s+"-"+User.current.logged?.to_s+"-"+is_course.to_s+"-"+is_board.to_s+"-"+activity.reply_updated_at.to_i.to_s] do %>
<% all_comments = []%> <% all_comments = []%>
<%# all_replies = get_all_children(all_comments, activity) %> <%# all_replies = get_all_children(all_comments, activity) %>
<% all_replies = Message.where("root_id = #{activity.id}").reorder("created_on desc") %> <% all_replies = Message.where("root_id = #{activity.id}").reorder("created_on desc") %>
@@ -94,7 +99,7 @@
</div> </div>
<% end %> <% end %>
<% if !activity.locked? && authorize_for_course('messages', 'reply') %>
<% if can_reply %>
<div class="homepagePostReplyContainer borderBottomNone minHeight48"> <div class="homepagePostReplyContainer borderBottomNone minHeight48">
<div class="homepagePostReplyPortrait mr15 imageFuzzy" id="reply_image_<%= user_activity_id%>"><%= link_to image_tag(url_to_avatar(User.current), :width => "33", :height => "33"), user_path(activity.author_id), :alt => "用户头像" %></div> <div class="homepagePostReplyPortrait mr15 imageFuzzy" id="reply_image_<%= user_activity_id%>"><%= link_to image_tag(url_to_avatar(User.current), :width => "33", :height => "33"), user_path(activity.author_id), :alt => "用户头像" %></div>
<div class="homepagePostReplyInputContainer mb10"> <div class="homepagePostReplyInputContainer mb10">
@@ -120,6 +125,7 @@
</div> </div>
<% end %> <% end %>
</div> </div>
<% end %>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
$(function(){ $(function(){


+ 5
- 2
app/views/users/_course_news.html.erb View File

@@ -1,8 +1,9 @@
<div class="resources mt10" id="user_activity_<%= user_activity_id%>"> <div class="resources mt10" id="user_activity_<%= user_activity_id%>">
<% cache [:user_coursenews_activity,activity.id.to_s+"-"+User.current.logged?.to_s+"-"+User.current.allowed_to?(:manage_news, activity.course).to_s+"-"+activity.comments.count.to_s] do%>
<div class="homepagePostBrief"> <div class="homepagePostBrief">
<div class="homepagePostPortrait"> <div class="homepagePostPortrait">
<%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_path(activity.author_id), :alt => "用户头像" %> <%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_path(activity.author_id), :alt => "用户头像" %>
<%= render :partial => 'users/show_detail_info', :locals => {:user => activity.author} %>
<%#= render :partial => 'users/show_detail_info', :locals => {:user => activity.author} %>
</div> </div>
<div class="homepagePostDes"> <div class="homepagePostDes">
<div class="homepagePostTo break_word"> <div class="homepagePostTo break_word">
@@ -64,7 +65,8 @@
</div> </div>
<div class="cl"></div> <div class="cl"></div>
</div> </div>
<% end %>
<% cache [:user_coursenews_reply,activity.id.to_s+"-"+User.current.id.to_s+"-"+activity.commentable?.to_s+"-"+User.current.logged?.to_s+"-"+user_activity_id.to_s+"-"+activity.reply_updated_at.to_i.to_s] do %>
<% count=activity.comments.count %> <% count=activity.comments.count %>
<div class="homepagePostReply"> <div class="homepagePostReply">
<%= render :partial => 'users/reply_banner', :locals => {:count => count, :activity => activity, :user_activity_id => user_activity_id} %> <%= render :partial => 'users/reply_banner', :locals => {:count => count, :activity => activity, :user_activity_id => user_activity_id} %>
@@ -99,6 +101,7 @@
</div> </div>
<% end %> <% end %>
</div> </div>
<% end %>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
$(function(){ $(function(){


+ 1
- 1
app/views/users/_course_poll.html.erb View File

@@ -6,7 +6,7 @@
<div class="homepagePostPortrait"> <div class="homepagePostPortrait">
<!-- <a href="javascript:void(0);"><img src="images/homepageImage.jpg" width="90" height="90" alt="用户头像"/></a>--> <!-- <a href="javascript:void(0);"><img src="images/homepageImage.jpg" width="90" height="90" alt="用户头像"/></a>-->
<%= link_to image_tag(url_to_avatar(activity.user), :width => "50", :height => "50"), user_path(activity.user_id), :alt => "用户头像" %> <%= link_to image_tag(url_to_avatar(activity.user), :width => "50", :height => "50"), user_path(activity.user_id), :alt => "用户头像" %>
<%= render :partial => 'users/show_detail_info', :locals => {:user => activity.user} %>
<%#= render :partial => 'users/show_detail_info', :locals => {:user => activity.user} %>
</div> </div>
<div class="homepagePostDes"> <div class="homepagePostDes">
<div class="homepagePostTo break_word"> <div class="homepagePostTo break_word">


+ 3
- 1
app/views/users/_homework_post_reply.html.erb View File

@@ -1,3 +1,4 @@
<% cache [:user_homework_reply,activity.id.to_s+"-"+User.current.id.to_s+"-"+User.current.logged?.to_s+"-"+is_teacher.to_s+"-"+hw_status.to_s+"-"+activity.reply_updated_at.to_i.to_s] do %>
<% count=activity.journals_for_messages.count %> <% count=activity.journals_for_messages.count %>
<div class="homepagePostReply" id="homework_post_reply_<%= user_activity_id %>"> <div class="homepagePostReply" id="homework_post_reply_<%= user_activity_id %>">
<%= render :partial => 'users/reply_banner', :locals => {:count => count, :activity => activity, :user_activity_id => user_activity_id, :hw_status => hw_status} %> <%= render :partial => 'users/reply_banner', :locals => {:count => count, :activity => activity, :user_activity_id => user_activity_id, :hw_status => hw_status} %>
@@ -31,4 +32,5 @@
</div> </div>
<div class="cl"></div> <div class="cl"></div>
</div> </div>
</div>
</div>
<% end %>

+ 1
- 1
app/views/users/_project_attachment.html.erb View File

@@ -2,7 +2,7 @@
<div class="homepagePostBrief"> <div class="homepagePostBrief">
<div class="homepagePostPortrait"> <div class="homepagePostPortrait">
<%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_path(activity.author_id), :alt => "用户头像" %> <%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_path(activity.author_id), :alt => "用户头像" %>
<%= render :partial => 'users/show_detail_info', :locals => {:user => activity.author} %>
<%#= render :partial => 'users/show_detail_info', :locals => {:user => activity.author} %>
</div> </div>
<div class="homepagePostDes"> <div class="homepagePostDes">
<div class="homepagePostTo break_word" style="width:620px"> <div class="homepagePostTo break_word" style="width:620px">


+ 2
- 2
app/views/users/_project_create.html.erb View File

@@ -4,7 +4,7 @@
<div class="homepagePostBrief"> <div class="homepagePostBrief">
<div class="homepagePostPortrait"> <div class="homepagePostPortrait">
<%= link_to image_tag(url_to_avatar(user), :width => "50", :height => "50"), user_path(user), :alt => "用户头像" %> <%= link_to image_tag(url_to_avatar(user), :width => "50", :height => "50"), user_path(user), :alt => "用户头像" %>
<%= render :partial => 'users/show_detail_info', :locals => {:user => user} %>
<%#= render :partial => 'users/show_detail_info', :locals => {:user => user} %>
</div> </div>
<div class="homepagePostDes"> <div class="homepagePostDes">
<div class="homepagePostTo break_word"> <div class="homepagePostTo break_word">
@@ -41,4 +41,4 @@
$(function(){ $(function(){
user_card_show_hide(); user_card_show_hide();
}); });
</script>
</script>

+ 3
- 1
app/views/users/_project_issue.html.erb View File

@@ -1,9 +1,10 @@
<% unless activity.author.nil? %> <% unless activity.author.nil? %>
<div class="resources mt10" id="user_activity_<%= user_activity_id%>"> <div class="resources mt10" id="user_activity_<%= user_activity_id%>">
<%# cache [:user_projectissue_activity,activity.id.to_s+"-"+User.current.logged?.to_s+"-"+(defined?(project_id)).to_s+"-"+(defined?(user_id)).to_s+"-"+(activity.editable?).to_s+"-"+(User.current.allowed_to?(:edit_issues, activity.project)).to_s+"-"+(User.current.allowed_to?(:delete_issues, activity.project)).to_s+"-"+(User.current.allowed_to?(:add_issues, activity.project)).to_s+"-"+activity.updated_on.to_i.to_s] do%>
<div class="homepagePostBrief"> <div class="homepagePostBrief">
<div class="homepagePostPortrait"> <div class="homepagePostPortrait">
<%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_path(activity.author_id), :alt => "用户头像" %> <%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_path(activity.author_id), :alt => "用户头像" %>
<%= render :partial => 'users/show_detail_info', :locals => {:user => activity.author} %>
<%#= render :partial => 'users/show_detail_info', :locals => {:user => activity.author} %>
</div> </div>
<div class="homepagePostDes"> <div class="homepagePostDes">
<div class="homepagePostTo break_word" style="width:620px"> <div class="homepagePostTo break_word" style="width:620px">
@@ -95,6 +96,7 @@
</div> </div>
<div class="cl"></div> <div class="cl"></div>
</div> </div>
<%# end %>
<div id="div_user_issue_reply_<%=user_activity_id%>"> <div id="div_user_issue_reply_<%=user_activity_id%>">
<%= render :partial => 'users/project_issue_reply', :locals => {:activity => activity, :user_activity_id => user_activity_id} %> <%= render :partial => 'users/project_issue_reply', :locals => {:activity => activity, :user_activity_id => user_activity_id} %>
</div> </div>


+ 3
- 1
app/views/users/_project_issue_reply.html.erb View File

@@ -1,3 +1,4 @@
<% cache [:user_projectissue_reply,activity.id.to_s+"-"+User.current.id.to_s+"-"+User.current.logged?.to_s+"-"+user_activity_id.to_s+"-"+activity.reply_updated_at.to_i.to_s] do %>
<% count = activity.journals.count %> <% count = activity.journals.count %>
<div class="homepagePostReply"> <div class="homepagePostReply">
<%= render :partial => 'users/reply_banner', :locals => {:count => count, :activity => activity, :user_activity_id => user_activity_id} %> <%= render :partial => 'users/reply_banner', :locals => {:count => count, :activity => activity, :user_activity_id => user_activity_id} %>
@@ -31,4 +32,5 @@
<div class="cl"></div> <div class="cl"></div>
</div> </div>
</div>
</div>
<% end %>

+ 7
- 2
app/views/users/_project_message.html.erb View File

@@ -1,8 +1,10 @@
<div class="resources mt10" id="user_activity_<%= user_activity_id%>"> <div class="resources mt10" id="user_activity_<%= user_activity_id%>">
<% update_time = get_forge_act_message(activity, activity.class.to_s) %>
<% cache [:user_projectmessage_activity,activity.id.to_s+"-"+User.current.logged?.to_s+"-"+(activity.author.id == User.current.id).to_s+"-"+(activity.editable_by?(User.current)).to_s+"-"+(activity.destroyable_by?(User.current)).to_s+"-"+update_time] do%>
<div class="homepagePostBrief"> <div class="homepagePostBrief">
<div class="homepagePostPortrait"> <div class="homepagePostPortrait">
<%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_path(activity.author_id), :alt => "用户头像" %> <%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_path(activity.author_id), :alt => "用户头像" %>
<%= render :partial => 'users/show_detail_info', :locals => {:user => activity.author} %>
<%#= render :partial => 'users/show_detail_info', :locals => {:user => activity.author} %>
</div> </div>
<div class="homepagePostDes"> <div class="homepagePostDes">
<div class="homepagePostTo break_word" style="width:620px"> <div class="homepagePostTo break_word" style="width:620px">
@@ -29,7 +31,7 @@
发帖时间:<%= format_time(activity.created_on) %> 发帖时间:<%= format_time(activity.created_on) %>
</div> </div>
<div class="homepagePostDate fl ml15"> <div class="homepagePostDate fl ml15">
更新时间:<%= get_forge_act_message(activity, activity.class.to_s) %>
更新时间:<%= update_time %>
</div> </div>
<div class="cl"></div> <div class="cl"></div>
<% if activity.parent_id.nil? %> <% if activity.parent_id.nil? %>
@@ -81,6 +83,8 @@
</div> </div>
<div class="cl"></div> <div class="cl"></div>
</div> </div>
<% end %>
<% cache [:user_projectmessage_reply,activity.id.to_s+"-"+User.current.id.to_s+"-"+User.current.logged?.to_s+"-"+(!activity.locked?).to_s+"-"+is_course.to_s+"-"+is_board.to_s+"-"+activity.reply_updated_at.to_i.to_s] do %>
<% all_comments = []%> <% all_comments = []%>
<% all_replies = Message.where("root_id = #{activity.id}").reorder("created_on desc") %> <% all_replies = Message.where("root_id = #{activity.id}").reorder("created_on desc") %>
<% count = all_replies.count %> <% count = all_replies.count %>
@@ -121,6 +125,7 @@
</div> </div>
<% end %> <% end %>
</div> </div>
<% end %>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
$(function(){ $(function(){


+ 1
- 1
app/views/users/_project_news.html.erb View File

@@ -2,7 +2,7 @@
<div class="homepagePostBrief"> <div class="homepagePostBrief">
<div class="homepagePostPortrait"> <div class="homepagePostPortrait">
<%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_path(activity.author_id), :alt => "用户头像" %> <%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_path(activity.author_id), :alt => "用户头像" %>
<%= render :partial => 'users/show_detail_info', :locals => {:user => activity.author} %>
<%#= render :partial => 'users/show_detail_info', :locals => {:user => activity.author} %>
</div> </div>
<div class="homepagePostDes"> <div class="homepagePostDes">
<div class="homepagePostTo break_word"> <div class="homepagePostTo break_word">


+ 3
- 2
app/views/users/_user_activities.html.erb View File

@@ -26,6 +26,7 @@
}) })
</script> </script>
<%# cache [:personal_activities,@user.id,user_activities[0].updated_at.to_i] do%>
<% user_activities.each do |user_activity| <% user_activities.each do |user_activity|
if user_activities %> if user_activities %>
<script> <script>
@@ -104,8 +105,8 @@
<% end %> <% end %>
<% end %> <% end %>
<% end %> <% end %>
<% if user_activities.count == 10%>
<%# end %>
<% if user_activities.count == 5%>
<!-- <!--
<div id="show_more_activities" class="loadMore mt10 f_grey">点击展开更多<%#=link_to "", user_activities_path(@user.id,:type => type,:page => page),:id => "more_activities_link",:remote => "true",:class => "none" %></div> <div id="show_more_activities" class="loadMore mt10 f_grey">点击展开更多<%#=link_to "", user_activities_path(@user.id,:type => type,:page => page),:id => "more_activities_link",:remote => "true",:class => "none" %></div>
--> -->


+ 3
- 1
app/views/users/_user_blog.html.erb View File

@@ -2,7 +2,7 @@
<div class="homepagePostBrief"> <div class="homepagePostBrief">
<div class="homepagePostPortrait"> <div class="homepagePostPortrait">
<%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_path(activity.author_id), :alt => "用户头像" %> <%= link_to image_tag(url_to_avatar(activity.author), :width => "50", :height => "50"), user_path(activity.author_id), :alt => "用户头像" %>
<%= render :partial => 'users/show_detail_info', :locals => {:user => activity.author} %>
<%#= render :partial => 'users/show_detail_info', :locals => {:user => activity.author} %>
</div> </div>
<div class="homepagePostDes"> <div class="homepagePostDes">
<div class="homepagePostTo break_word"> <div class="homepagePostTo break_word">
@@ -42,6 +42,7 @@
<div class="cl"></div> <div class="cl"></div>
</div> </div>
<%# all_comments = []%> <%# all_comments = []%>
<% cache [:user_blog_reply,activity.id.to_s+"-"+User.current.id.to_s+"-"+User.current.logged?.to_s+"-"+(activity.locked == false && User.current.logged?).to_s+"-"+activity.reply_updated_at.to_i.to_s] do %>
<% all_replies = BlogComment.where("root_id = #{activity.id}").reorder("created_on desc") %> <% all_replies = BlogComment.where("root_id = #{activity.id}").reorder("created_on desc") %>
<% count = all_replies.count %> <% count = all_replies.count %>
<div class="homepagePostReply"> <div class="homepagePostReply">
@@ -83,6 +84,7 @@
</div> </div>
<% end %> <% end %>
</div> </div>
<% end %>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
$("#moreProject_<%=user_activity_id %>").click(function(){ $("#moreProject_<%=user_activity_id %>").click(function(){


+ 3
- 1
app/views/users/_user_homework_detail.html.erb View File

@@ -1,5 +1,6 @@
<% is_teacher = User.current.allowed_to?(:as_teacher,homework_common.course) %> <% is_teacher = User.current.allowed_to?(:as_teacher,homework_common.course) %>
<div class="HomeWork mb10" id="homework_common_<%= homework_common.id %>"> <div class="HomeWork mb10" id="homework_common_<%= homework_common.id %>">
<%# cache [:user_homework_detail,@course.id.to_s+"-"+homework_common.id.to_s+"-"+is_teacher.to_s+"-"+(User.current.member_of_course?(homework_common.course) || User.current.admin? || homework_common.is_open == 1).to_s+"-"+homework_common.updated_at.to_i.to_s] do%>
<div class="homepagePostBrief"> <div class="homepagePostBrief">
<div class="homepagePostPortrait"> <div class="homepagePostPortrait">
<%=link_to image_tag(url_to_avatar(homework_common.user),width:"50px", height: "50px"), user_activities_path(homework_common.user.id)%> <%=link_to image_tag(url_to_avatar(homework_common.user),width:"50px", height: "50px"), user_activities_path(homework_common.user.id)%>
@@ -170,7 +171,7 @@
<% end %> <% end %>
<div class="cl"></div> <div class="cl"></div>
</div> </div>
<% end %>
<%# end %>
<% if homework_common.homework_type == 3 && homework_common.homework_detail_group.base_on_project == 1 %> <% if homework_common.homework_type == 3 && homework_common.homework_detail_group.base_on_project == 1 %>
<% projects = homework_common.student_work_projects.where("is_leader = 1 and project_id != -1") %> <% projects = homework_common.student_work_projects.where("is_leader = 1 and project_id != -1") %>
@@ -274,6 +275,7 @@
</div> </div>
<div class="cl"></div> <div class="cl"></div>
</div> </div>
<% end %>
<% count=homework_common.journals_for_messages.count %> <% count=homework_common.journals_for_messages.count %>
<div class="homepagePostReply"> <div class="homepagePostReply">


+ 1
- 1
app/views/users/_user_journalsformessage.html.erb View File

@@ -2,7 +2,7 @@
<div class="homepagePostBrief"> <div class="homepagePostBrief">
<div class="homepagePostPortrait"> <div class="homepagePostPortrait">
<%= link_to image_tag(url_to_avatar(activity.user), :width => "50", :height => "50"), user_path(activity.user_id), :alt => "用户头像" %> <%= link_to image_tag(url_to_avatar(activity.user), :width => "50", :height => "50"), user_path(activity.user_id), :alt => "用户头像" %>
<%= render :partial => 'users/show_detail_info', :locals => {:user => activity.user} %>
<%#= render :partial => 'users/show_detail_info', :locals => {:user => activity.user} %>
</div> </div>
<div class="homepagePostDes"> <div class="homepagePostDes">
<div class="homepagePostTo break_word"> <div class="homepagePostTo break_word">


+ 51
- 51
app/views/users/show.html.erb View File

@@ -1,51 +1,51 @@
<script src="/javascripts/i18n/jquery.ui.datepicker-zh-CN.js" type="text/javascript"></script>
<input type="hidden" value="<%= @type%>" name="type" id="user_activities_type">
<div class="homepageRightBanner">
<div class="NewsBannerName">最新动态</div>
<ul class="resourcesSelect">
<li class="resourcesSelected"><a href="javascript:void(0);" class="resourcesIcon"></a>
<ul class="homepagePostType">
<li>
<ul class="homepagePostTypeHomework fl">
<% if hidden_unproject_infos %>
<li class="f14">班级动态</li>
<li><%= link_to "作业动态", {:controller => "users", :action => "show", :type => "course_homework"}, :class => "homepagePostTypeAssignment postTypeGrey"%>
<!--<a href="javascript:void(0);" class="homepagePostTypeAssignment postTypeGrey">作业动态</a>--></li>
<li><%= link_to "通知动态", {:controller => "users", :action => "show", :type => "course_news"}, :class => "homepagePostTypeNotice postTypeGrey"%>
<!--<li><a href="javascript:void(0);" class="homepagePostTypeNotice postTypeGrey">通知动态</a></li>-->
<li><%= link_to "论坛动态", {:controller => "users", :action => "show", :type => "course_message"}, :class => "homepagePostTypeForum postTypeGrey"%>
<li><%= link_to "问卷动态", {:controller => "users", :action => "show", :type => "course_poll"}, :class => "homepagePostTypeQuiz postTypeGrey"%>
<li><%= link_to "班级留言", {:controller => "users", :action => "show", :type => "course_journals"}, :class =>"homepagePostTypeMessage postTypeGrey"%>
<!--<li><a href="javascript:void(0);" class="homepagePostTypeForum postTypeGrey">论坛动态</a></li>-->
<!--<li><a href="javascript:void(0);" class="homepagePostTypeQuiz postTypeGrey">问卷动态</a></li>-->
<% end %>
</ul>
</li>
<li>
<ul class="homepagePostTypeProject fl">
<li class="f14">项目动态</li>
<li><%= link_to "问题动态", {:controller => "users", :action => "show", :type => "project_issue"}, :class => "homepagePostTypeQuestion postTypeGrey"%>
<li><%= link_to "论坛动态", {:controller => "users", :action => "show", :type => "project_message"}, :class => "homepagePostTypeForum postTypeGrey"%>
<!--<li><a href="javascript:void(0);" class="homepagePostTypeQuestion postTypeGrey">问题动态</a></li>
<li><a href="javascript:void(0);" class="homepagePostTypeForum postTypeGrey">论坛动态</a></li>-->
</ul>
</li>
<li>
<ul class="homepagePostTypeProject fl">
<li class="f14">更多</li>
<li class="mt-4"><%= link_to "个人留言", {:controller => "users", :action => "show", :type => "user_journals"}, :class =>"homepagePostTypeMessage postTypeGrey"%>
<li class="mt-4"><%= link_to @user == User.current ? "我的动态" : "他的动态", {:controller => "users", :action => "show", :type => "current_user"}, :class =>"homepagePostTypeMine postTypeGrey"%>
<li class="mt-4"><%= link_to "全部动态", {:controller => "users", :action => "show", :type => "all"}, :class =>"homepagePostTypeAll postTypeGrey"%>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<!--显示个人主页-->
<%# if @user.blog.homepage_id and BlogComment.where("id=?", @user.blog.homepage_id).count > 0 %>
<%# homepage = BlogComment.find(@user.blog.homepage_id) %>
<%#= render :partial => 'blogs/homepage', :locals => {:activity => homepage, :user_activity_id => homepage.id} %>
<%# end %>
<%= render :partial => 'users/user_activities', :locals => {:user_activities => @user_activities,:page => 0,:type => @type, :user_id => (@user.type == "AnonymousUser" ? User.current.id : @user.id)} %>
<script src="/javascripts/i18n/jquery.ui.datepicker-zh-CN.js" type="text/javascript"></script>
<input type="hidden" value="<%= @type%>" name="type" id="user_activities_type">
<div class="homepageRightBanner">
<div class="NewsBannerName">最新动态</div>
<ul class="resourcesSelect">
<li class="resourcesSelected"><a href="javascript:void(0);" class="resourcesIcon"></a>
<ul class="homepagePostType">
<li>
<ul class="homepagePostTypeHomework fl">
<% if hidden_unproject_infos %>
<li class="f14">班级动态</li>
<li><%= link_to "作业动态", {:controller => "users", :action => "show", :type => "course_homework"}, :class => "homepagePostTypeAssignment postTypeGrey"%>
<!--<a href="javascript:void(0);" class="homepagePostTypeAssignment postTypeGrey">作业动态</a>--></li>
<li><%= link_to "通知动态", {:controller => "users", :action => "show", :type => "course_news"}, :class => "homepagePostTypeNotice postTypeGrey"%>
<!--<li><a href="javascript:void(0);" class="homepagePostTypeNotice postTypeGrey">通知动态</a></li>-->
<li><%= link_to "论坛动态", {:controller => "users", :action => "show", :type => "course_message"}, :class => "homepagePostTypeForum postTypeGrey"%>
<li><%= link_to "问卷动态", {:controller => "users", :action => "show", :type => "course_poll"}, :class => "homepagePostTypeQuiz postTypeGrey"%>
<li><%= link_to "班级留言", {:controller => "users", :action => "show", :type => "course_journals"}, :class =>"homepagePostTypeMessage postTypeGrey"%>
<!--<li><a href="javascript:void(0);" class="homepagePostTypeForum postTypeGrey">论坛动态</a></li>-->
<!--<li><a href="javascript:void(0);" class="homepagePostTypeQuiz postTypeGrey">问卷动态</a></li>-->
<% end %>
</ul>
</li>
<li>
<ul class="homepagePostTypeProject fl">
<li class="f14">项目动态</li>
<li><%= link_to "问题动态", {:controller => "users", :action => "show", :type => "project_issue"}, :class => "homepagePostTypeQuestion postTypeGrey"%>
<li><%= link_to "论坛动态", {:controller => "users", :action => "show", :type => "project_message"}, :class => "homepagePostTypeForum postTypeGrey"%>
<!--<li><a href="javascript:void(0);" class="homepagePostTypeQuestion postTypeGrey">问题动态</a></li>
<li><a href="javascript:void(0);" class="homepagePostTypeForum postTypeGrey">论坛动态</a></li>-->
</ul>
</li>
<li>
<ul class="homepagePostTypeProject fl">
<li class="f14">更多</li>
<li class="mt-4"><%= link_to "个人留言", {:controller => "users", :action => "show", :type => "user_journals"}, :class =>"homepagePostTypeMessage postTypeGrey"%>
<li class="mt-4"><%= link_to @user == User.current ? "我的动态" : "他的动态", {:controller => "users", :action => "show", :type => "current_user"}, :class =>"homepagePostTypeMine postTypeGrey"%>
<li class="mt-4"><%= link_to "全部动态", {:controller => "users", :action => "show", :type => "all"}, :class =>"homepagePostTypeAll postTypeGrey"%>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<!--显示个人主页-->
<%# if @user.blog.homepage_id and BlogComment.where("id=?", @user.blog.homepage_id).count > 0 %>
<%# homepage = BlogComment.find(@user.blog.homepage_id) %>
<%#= render :partial => 'blogs/homepage', :locals => {:activity => homepage, :user_activity_id => homepage.id} %>
<%# end %>
<%= render :partial => 'users/user_activities', :locals => {:user_activities => @user_activities,:page => 0,:type => @type, :user_id => (@user.type == "AnonymousUser" ? User.current.id : @user.id)} %>

+ 2
- 1
config/environments/development.rb View File

@@ -12,7 +12,8 @@ RedmineApp::Application.configure do
# Show full error reports and disable caching # Show full error reports and disable caching
config.consider_all_requests_local = true config.consider_all_requests_local = true
config.action_controller.perform_caching = true config.action_controller.perform_caching = true
config.cache_store = :file_store, "#{Rails.root }/files/cache_store/"
# config.cache_store = :file_store, "#{Rails.root }/files/cache_store/"
config.cache_store = :redis_store, 'redis://127.0.0.1:6379/0/cache', { expires_in: 90.minutes }
#config.cache_store = :dalli_store #config.cache_store = :dalli_store
# Don't care if the mailer can't send # Don't care if the mailer can't send
config.action_mailer.raise_delivery_errors = true config.action_mailer.raise_delivery_errors = true


config/environments/production.rb → config/environments/production.rb.template View File

@@ -24,7 +24,7 @@ RedmineApp::Application.configure do
# config.cache_store = :file_store, "#{Rails.root }/files/cache_store/" # config.cache_store = :file_store, "#{Rails.root }/files/cache_store/"
# config.cache_store = :redis_store, 'redis://localhost:6379/0/cache', { expires_in: 90.minutes } # config.cache_store = :redis_store, 'redis://localhost:6379/0/cache', { expires_in: 90.minutes }
# #
config.cache_store = :redis_store, 'redis://10.9.52.157:6379/0/cache', { expires_in: 90.minutes }
# Enable serving of images, stylesheets, and javascripts from an asset server # Enable serving of images, stylesheets, and javascripts from an asset server
# config.action_controller.asset_host = "http://assets.example.com" # config.action_controller.asset_host = "http://assets.example.com"



+ 38
- 0
config/environments/production.rb.test View File

@@ -0,0 +1,38 @@
# Settings specified here will take precedence over those in config/application.rb
RedmineApp::Application.configure do
# The production environment is meant for finished, "live" apps.
# Code is not reloaded between requests
config.cache_classes = true

#####
# Customize the default logger (http://ruby-doc.org/core/classes/Logger.html)
#
# Use a different logger for distributed setups
# config.logger = SyslogLogger.new
#
# Rotate logs bigger than 1MB, keeps no more than 7 rotated logs around.
# When setting a new Logger, make sure to set it's log level too.
#
# config.logger = Logger.new(config.log_path, 7, 1048576)
# config.logger.level = Logger::INFO

# Full error reports are disabled and caching is turned on
# config.logger = Logger.new('log/production.log', 'daily',1048576) # daily, weekly or monthly
config.action_controller.perform_caching = true

# to additional_environment.rb
# config.cache_store = :file_store, "#{Rails.root }/files/cache_store/"
# config.cache_store = :redis_store, 'redis://localhost:6379/0/cache', { expires_in: 90.minutes }
#
config.cache_store = :redis_store, 'redis://192.168.80.122:6379/0/cache', { expires_in: 90.minutes }
# Enable serving of images, stylesheets, and javascripts from an asset server
# config.action_controller.asset_host = "http://assets.example.com"

# Disable delivery errors if you bad email addresses should just be ignored
config.action_mailer.raise_delivery_errors = false

# No email in production log
config.action_mailer.logger = nil

config.active_support.deprecation = :log
end

+ 11
- 0
db/migrate/20161011021450_add_reply_updated_at_to_blog_comments.rb View File

@@ -0,0 +1,11 @@
class AddReplyUpdatedAtToBlogComments < ActiveRecord::Migration
def change
add_column :blog_comments, :reply_updated_at, :datetime
add_column :journals_for_messages, :reply_updated_at, :datetime
add_column :messages, :reply_updated_at, :datetime
add_column :news, :reply_updated_at, :datetime
add_column :homework_commons, :reply_updated_at, :datetime
add_column :issues, :reply_updated_at, :datetime
add_column :org_document_comments, :reply_updated_at, :datetime
end
end

+ 5
- 0
db/migrate/20161011060435_add_updated_at_to_attachments.rb View File

@@ -0,0 +1,5 @@
class AddUpdatedAtToAttachments < ActiveRecord::Migration
def change
add_column :attachments, :updated_at, :datetime
end
end

+ 5
- 0
db/migrate/20161011063828_add_updated_at_to_attachment_histories.rb View File

@@ -0,0 +1,5 @@
class AddUpdatedAtToAttachmentHistories < ActiveRecord::Migration
def change
add_column :attachment_histories, :updated_at, :datetime
end
end

+ 5
- 0
db/migrate/20161019032326_add_updated_at_to_users.rb View File

@@ -0,0 +1,5 @@
class AddUpdatedAtToUsers < ActiveRecord::Migration
def change
add_column :users, :updated_at, :datetime
end
end

+ 396
- 34
db/schema.rb View File

@@ -11,7 +11,11 @@
# #
# It's strongly recommended to check this file into your version control system. # It's strongly recommended to check this file into your version control system.
ActiveRecord::Schema.define(:version => 20161019020422) do
<<<<<<< HEAD
ActiveRecord::Schema.define(:version => 20161009053958) do
=======
ActiveRecord::Schema.define(:version => 20161015102324) do
>>>>>>> develop
create_table "activities", :force => true do |t| create_table "activities", :force => true do |t|
t.integer "act_id", :null => false t.integer "act_id", :null => false
@@ -52,6 +56,28 @@ ActiveRecord::Schema.define(:version => 20161019020422) do
add_index "api_keys", ["access_token"], :name => "index_api_keys_on_access_token" add_index "api_keys", ["access_token"], :name => "index_api_keys_on_access_token"
add_index "api_keys", ["user_id"], :name => "index_api_keys_on_user_id" add_index "api_keys", ["user_id"], :name => "index_api_keys_on_user_id"
create_table "application_settings", :force => true do |t|
t.integer "default_projects_limit"
t.boolean "signup_enabled"
t.boolean "signin_enabled"
t.boolean "gravatar_enabled"
t.text "sign_in_text"
t.datetime "created_at"
t.datetime "updated_at"
t.string "home_page_url"
t.integer "default_branch_protection", :default => 2
t.boolean "twitter_sharing_enabled", :default => true
t.text "restricted_visibility_levels"
t.boolean "version_check_enabled", :default => true
t.integer "max_attachment_size", :default => 10, :null => false
t.integer "default_project_visibility"
t.integer "default_snippet_visibility"
t.text "restricted_signup_domains"
t.boolean "user_oauth_applications", :default => true
t.string "after_sign_out_path"
t.integer "session_expire_delay", :default => 10080, :null => false
end
create_table "applied_messages", :force => true do |t| create_table "applied_messages", :force => true do |t|
t.integer "user_id" t.integer "user_id"
t.integer "applied_id" t.integer "applied_id"
@@ -117,18 +143,6 @@ ActiveRecord::Schema.define(:version => 20161019020422) do
t.integer "apply_user_id" t.integer "apply_user_id"
end end
create_table "article_homepages", :force => true do |t|
t.string "title"
t.text "content"
t.integer "user_id"
t.integer "homepage_id"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
add_index "article_homepages", ["homepage_id"], :name => "index_article_homepages_on_homepage_id"
add_index "article_homepages", ["user_id"], :name => "index_article_homepages_on_user_id"
create_table "at_messages", :force => true do |t| create_table "at_messages", :force => true do |t|
t.integer "user_id" t.integer "user_id"
t.integer "at_message_id" t.integer "at_message_id"
@@ -196,6 +210,20 @@ ActiveRecord::Schema.define(:version => 20161019020422) do
t.string "typeName", :limit => 50 t.string "typeName", :limit => 50
end end
create_table "audit_events", :force => true do |t|
t.integer "author_id", :null => false
t.string "type", :null => false
t.integer "entity_id", :null => false
t.string "entity_type", :null => false
t.text "details"
t.datetime "created_at"
t.datetime "updated_at"
end
add_index "audit_events", ["author_id"], :name => "index_audit_events_on_author_id"
add_index "audit_events", ["entity_id", "entity_type"], :name => "index_audit_events_on_entity_id_and_entity_type"
add_index "audit_events", ["type"], :name => "index_audit_events_on_type"
create_table "auth_sources", :force => true do |t| create_table "auth_sources", :force => true do |t|
t.string "type", :limit => 30, :default => "", :null => false t.string "type", :limit => 30, :default => "", :null => false
t.string "name", :limit => 60, :default => "", :null => false t.string "name", :limit => 60, :default => "", :null => false
@@ -261,11 +289,8 @@ ActiveRecord::Schema.define(:version => 20161019020422) do
t.integer "reply_id" t.integer "reply_id"
t.datetime "created_at", :null => false t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false t.datetime "updated_at", :null => false
t.integer "root_id"
end end
add_index "blog_comments", ["root_id"], :name => "index_blog_comments_on_root_id"
create_table "blogs", :force => true do |t| create_table "blogs", :force => true do |t|
t.string "name", :default => "", :null => false t.string "name", :default => "", :null => false
t.text "description" t.text "description"
@@ -296,6 +321,17 @@ ActiveRecord::Schema.define(:version => 20161019020422) do
add_index "boards", ["last_message_id"], :name => "index_boards_on_last_message_id" add_index "boards", ["last_message_id"], :name => "index_boards_on_last_message_id"
add_index "boards", ["project_id"], :name => "boards_project_id" add_index "boards", ["project_id"], :name => "boards_project_id"
create_table "broadcast_messages", :force => true do |t|
t.text "message", :null => false
t.datetime "starts_at"
t.datetime "ends_at"
t.integer "alert_type"
t.datetime "created_at"
t.datetime "updated_at"
t.string "color"
t.string "font"
end
create_table "bug_to_osps", :force => true do |t| create_table "bug_to_osps", :force => true do |t|
t.integer "osp_id" t.integer "osp_id"
t.integer "relative_memo_id" t.integer "relative_memo_id"
@@ -683,6 +719,15 @@ ActiveRecord::Schema.define(:version => 20161019020422) do
add_index "delayed_jobs", ["priority", "run_at"], :name => "delayed_jobs_priority" add_index "delayed_jobs", ["priority", "run_at"], :name => "delayed_jobs_priority"
create_table "deploy_keys_projects", :force => true do |t|
t.integer "deploy_key_id", :null => false
t.integer "project_id", :null => false
t.datetime "created_at"
t.datetime "updated_at"
end
add_index "deploy_keys_projects", ["project_id"], :name => "index_deploy_keys_projects_on_project_id"
create_table "discuss_demos", :force => true do |t| create_table "discuss_demos", :force => true do |t|
t.string "title" t.string "title"
t.text "body" t.text "body"
@@ -732,6 +777,16 @@ ActiveRecord::Schema.define(:version => 20161019020422) do
t.datetime "created_at" t.datetime "created_at"
end end
create_table "emails", :force => true do |t|
t.integer "user_id", :null => false
t.string "email", :null => false
t.datetime "created_at"
t.datetime "updated_at"
end
add_index "emails", ["email"], :name => "index_emails_on_email", :unique => true
add_index "emails", ["user_id"], :name => "index_emails_on_user_id"
create_table "enabled_modules", :force => true do |t| create_table "enabled_modules", :force => true do |t|
t.integer "project_id" t.integer "project_id"
t.string "name", :null => false t.string "name", :null => false
@@ -754,6 +809,25 @@ ActiveRecord::Schema.define(:version => 20161019020422) do
add_index "enumerations", ["id", "type"], :name => "index_enumerations_on_id_and_type" add_index "enumerations", ["id", "type"], :name => "index_enumerations_on_id_and_type"
add_index "enumerations", ["project_id"], :name => "index_enumerations_on_project_id" add_index "enumerations", ["project_id"], :name => "index_enumerations_on_project_id"
create_table "events", :force => true do |t|
t.string "target_type"
t.integer "target_id"
t.string "title"
t.text "data"
t.integer "project_id"
t.datetime "created_at"
t.datetime "updated_at"
t.integer "action"
t.integer "author_id"
end
add_index "events", ["action"], :name => "index_events_on_action"
add_index "events", ["author_id"], :name => "index_events_on_author_id"
add_index "events", ["created_at"], :name => "index_events_on_created_at"
add_index "events", ["project_id"], :name => "index_events_on_project_id"
add_index "events", ["target_id"], :name => "index_events_on_target_id"
add_index "events", ["target_type"], :name => "index_events_on_target_type"
create_table "exercise_answers", :force => true do |t| create_table "exercise_answers", :force => true do |t|
t.integer "user_id" t.integer "user_id"
t.integer "exercise_question_id" t.integer "exercise_question_id"
@@ -856,6 +930,15 @@ ActiveRecord::Schema.define(:version => 20161019020422) do
add_index "forge_messages", ["forge_message_id", "forge_message_type"], :name => "index_forge_messages_on_forge_message_id_and_forge_message_type" add_index "forge_messages", ["forge_message_id", "forge_message_type"], :name => "index_forge_messages_on_forge_message_id_and_forge_message_type"
add_index "forge_messages", ["user_id", "project_id", "created_at"], :name => "index_forge_messages_on_user_id_and_project_id_and_created_at" add_index "forge_messages", ["user_id", "project_id", "created_at"], :name => "index_forge_messages_on_user_id_and_project_id_and_created_at"
create_table "forked_project_links", :force => true do |t|
t.integer "forked_to_project_id", :null => false
t.integer "forked_from_project_id", :null => false
t.datetime "created_at"
t.datetime "updated_at"
end
add_index "forked_project_links", ["forked_to_project_id"], :name => "index_forked_project_links_on_forked_to_project_id", :unique => true
create_table "forums", :force => true do |t| create_table "forums", :force => true do |t|
t.string "name", :null => false t.string "name", :null => false
t.text "description" t.text "description"
@@ -884,16 +967,6 @@ ActiveRecord::Schema.define(:version => 20161019020422) do
add_index "groups_users", ["group_id", "user_id"], :name => "groups_users_ids", :unique => true add_index "groups_users", ["group_id", "user_id"], :name => "groups_users_ids", :unique => true
create_table "homepages", :force => true do |t|
t.string "name"
t.integer "article_id"
t.integer "user_id"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
add_index "homepages", ["user_id"], :name => "index_homepages_on_user_id"
create_table "homework_attaches", :force => true do |t| create_table "homework_attaches", :force => true do |t|
t.integer "bid_id" t.integer "bid_id"
t.integer "user_id" t.integer "user_id"
@@ -995,6 +1068,17 @@ ActiveRecord::Schema.define(:version => 20161019020422) do
t.datetime "updated_at", :null => false t.datetime "updated_at", :null => false
end end
create_table "identities", :force => true do |t|
t.string "extern_uid"
t.string "provider"
t.integer "user_id"
t.datetime "created_at"
t.datetime "updated_at"
end
add_index "identities", ["created_at", "id"], :name => "index_identities_on_created_at_and_id"
add_index "identities", ["user_id"], :name => "index_identities_on_user_id"
create_table "innodb_monitor", :id => false, :force => true do |t| create_table "innodb_monitor", :id => false, :force => true do |t|
t.integer "a" t.integer "a"
end end
@@ -1143,10 +1227,21 @@ ActiveRecord::Schema.define(:version => 20161019020422) do
t.integer "m_reply_id" t.integer "m_reply_id"
t.integer "is_comprehensive_evaluation" t.integer "is_comprehensive_evaluation"
t.integer "private", :default => 0 t.integer "private", :default => 0
t.integer "root_id"
end end
add_index "journals_for_messages", ["root_id"], :name => "index_journals_for_messages_on_root_id"
create_table "keys", :force => true do |t|
t.integer "user_id"
t.datetime "created_at"
t.datetime "updated_at"
t.text "key"
t.string "title"
t.string "type"
t.string "fingerprint"
t.boolean "public", :default => false, :null => false
end
add_index "keys", ["created_at", "id"], :name => "index_keys_on_created_at_and_id"
add_index "keys", ["user_id"], :name => "index_keys_on_user_id"
create_table "kindeditor_assets", :force => true do |t| create_table "kindeditor_assets", :force => true do |t|
t.string "asset" t.string "asset"
@@ -1159,6 +1254,27 @@ ActiveRecord::Schema.define(:version => 20161019020422) do
t.integer "owner_type", :default => 0 t.integer "owner_type", :default => 0
end end
create_table "label_links", :force => true do |t|
t.integer "label_id"
t.integer "target_id"
t.string "target_type"
t.datetime "created_at"
t.datetime "updated_at"
end
add_index "label_links", ["label_id"], :name => "index_label_links_on_label_id"
add_index "label_links", ["target_id", "target_type"], :name => "index_label_links_on_target_id_and_target_type"
create_table "labels", :force => true do |t|
t.string "title"
t.string "color"
t.integer "project_id"
t.datetime "created_at"
t.datetime "updated_at"
end
add_index "labels", ["project_id"], :name => "index_labels_on_project_id"
create_table "member_roles", :force => true do |t| create_table "member_roles", :force => true do |t|
t.integer "member_id", :null => false t.integer "member_id", :null => false
t.integer "role_id", :null => false t.integer "role_id", :null => false
@@ -1212,6 +1328,47 @@ ActiveRecord::Schema.define(:version => 20161019020422) do
t.integer "viewed_count", :default => 0 t.integer "viewed_count", :default => 0
end end
create_table "merge_request_diffs", :force => true do |t|
t.string "state"
t.text "st_commits", :limit => 2147483647
t.text "st_diffs", :limit => 2147483647
t.integer "merge_request_id", :null => false
t.datetime "created_at"
t.datetime "updated_at"
end
add_index "merge_request_diffs", ["merge_request_id"], :name => "index_merge_request_diffs_on_merge_request_id", :unique => true
create_table "merge_requests", :force => true do |t|
t.string "target_branch", :null => false
t.string "source_branch", :null => false
t.integer "source_project_id", :null => false
t.integer "author_id"
t.integer "assignee_id"
t.string "title"
t.datetime "created_at"
t.datetime "updated_at"
t.integer "milestone_id"
t.string "state"
t.string "merge_status"
t.integer "target_project_id", :null => false
t.integer "iid"
t.text "description"
t.integer "position", :default => 0
t.datetime "locked_at"
end
add_index "merge_requests", ["assignee_id"], :name => "index_merge_requests_on_assignee_id"
add_index "merge_requests", ["author_id"], :name => "index_merge_requests_on_author_id"
add_index "merge_requests", ["created_at", "id"], :name => "index_merge_requests_on_created_at_and_id"
add_index "merge_requests", ["created_at"], :name => "index_merge_requests_on_created_at"
add_index "merge_requests", ["milestone_id"], :name => "index_merge_requests_on_milestone_id"
add_index "merge_requests", ["source_branch"], :name => "index_merge_requests_on_source_branch"
add_index "merge_requests", ["source_project_id"], :name => "index_merge_requests_on_source_project_id"
add_index "merge_requests", ["target_branch"], :name => "index_merge_requests_on_target_branch"
add_index "merge_requests", ["target_project_id", "iid"], :name => "index_merge_requests_on_target_project_id_and_iid", :unique => true
add_index "merge_requests", ["title"], :name => "index_merge_requests_on_title"
create_table "message_alls", :force => true do |t| create_table "message_alls", :force => true do |t|
t.integer "user_id" t.integer "user_id"
t.integer "message_id" t.integer "message_id"
@@ -1238,7 +1395,6 @@ ActiveRecord::Schema.define(:version => 20161019020422) do
t.integer "reply_id" t.integer "reply_id"
t.integer "quotes" t.integer "quotes"
t.integer "status", :default => 0 t.integer "status", :default => 0
t.integer "root_id"
end end
add_index "messages", ["author_id"], :name => "index_messages_on_author_id" add_index "messages", ["author_id"], :name => "index_messages_on_author_id"
@@ -1246,7 +1402,39 @@ ActiveRecord::Schema.define(:version => 20161019020422) do
add_index "messages", ["created_on"], :name => "index_messages_on_created_on" add_index "messages", ["created_on"], :name => "index_messages_on_created_on"
add_index "messages", ["last_reply_id"], :name => "index_messages_on_last_reply_id" add_index "messages", ["last_reply_id"], :name => "index_messages_on_last_reply_id"
add_index "messages", ["parent_id"], :name => "messages_parent_id" add_index "messages", ["parent_id"], :name => "messages_parent_id"
add_index "messages", ["root_id"], :name => "index_messages_on_root_id"
create_table "milestones", :force => true do |t|
t.string "title", :null => false
t.integer "project_id", :null => false
t.text "description"
t.date "due_date"
t.datetime "created_at"
t.datetime "updated_at"
t.string "state"
t.integer "iid"
end
add_index "milestones", ["created_at", "id"], :name => "index_milestones_on_created_at_and_id"
add_index "milestones", ["due_date"], :name => "index_milestones_on_due_date"
add_index "milestones", ["project_id", "iid"], :name => "index_milestones_on_project_id_and_iid", :unique => true
add_index "milestones", ["project_id"], :name => "index_milestones_on_project_id"
create_table "namespaces", :force => true do |t|
t.string "name", :null => false
t.string "path", :null => false
t.integer "owner_id"
t.datetime "created_at"
t.datetime "updated_at"
t.string "type"
t.string "description", :default => "", :null => false
t.string "avatar"
end
add_index "namespaces", ["created_at", "id"], :name => "index_namespaces_on_created_at_and_id"
add_index "namespaces", ["name"], :name => "index_namespaces_on_name", :unique => true
add_index "namespaces", ["owner_id"], :name => "index_namespaces_on_owner_id"
add_index "namespaces", ["path"], :name => "index_namespaces_on_path", :unique => true
add_index "namespaces", ["type"], :name => "index_namespaces_on_type"
create_table "news", :force => true do |t| create_table "news", :force => true do |t|
t.integer "project_id" t.integer "project_id"
@@ -1273,6 +1461,31 @@ ActiveRecord::Schema.define(:version => 20161019020422) do
t.datetime "updated_at", :null => false t.datetime "updated_at", :null => false
end end
create_table "notes", :force => true do |t|
t.text "note"
t.string "noteable_type"
t.integer "author_id"
t.datetime "created_at"
t.datetime "updated_at"
t.integer "project_id"
t.string "attachment"
t.string "line_code"
t.string "commit_id"
t.integer "noteable_id"
t.boolean "system", :default => false, :null => false
t.text "st_diff", :limit => 2147483647
end
add_index "notes", ["author_id"], :name => "index_notes_on_author_id"
add_index "notes", ["commit_id"], :name => "index_notes_on_commit_id"
add_index "notes", ["created_at", "id"], :name => "index_notes_on_created_at_and_id"
add_index "notes", ["created_at"], :name => "index_notes_on_created_at"
add_index "notes", ["noteable_id", "noteable_type"], :name => "index_notes_on_noteable_id_and_noteable_type"
add_index "notes", ["noteable_type"], :name => "index_notes_on_noteable_type"
add_index "notes", ["project_id", "noteable_type"], :name => "index_notes_on_project_id_and_noteable_type"
add_index "notes", ["project_id"], :name => "index_notes_on_project_id"
add_index "notes", ["updated_at"], :name => "index_notes_on_updated_at"
create_table "notificationcomments", :force => true do |t| create_table "notificationcomments", :force => true do |t|
t.string "notificationcommented_type" t.string "notificationcommented_type"
t.integer "notificationcommented_id" t.integer "notificationcommented_id"
@@ -1282,6 +1495,49 @@ ActiveRecord::Schema.define(:version => 20161019020422) do
t.datetime "updated_at", :null => false t.datetime "updated_at", :null => false
end end
create_table "oauth_access_grants", :force => true do |t|
t.integer "resource_owner_id", :null => false
t.integer "application_id", :null => false
t.string "token", :null => false
t.integer "expires_in", :null => false
t.text "redirect_uri", :null => false
t.datetime "created_at", :null => false
t.datetime "revoked_at"
t.string "scopes"
end
add_index "oauth_access_grants", ["token"], :name => "index_oauth_access_grants_on_token", :unique => true
create_table "oauth_access_tokens", :force => true do |t|
t.integer "resource_owner_id"
t.integer "application_id"
t.string "token", :null => false
t.string "refresh_token"
t.integer "expires_in"
t.datetime "revoked_at"
t.datetime "created_at", :null => false
t.string "scopes"
end
add_index "oauth_access_tokens", ["refresh_token"], :name => "index_oauth_access_tokens_on_refresh_token", :unique => true
add_index "oauth_access_tokens", ["resource_owner_id"], :name => "index_oauth_access_tokens_on_resource_owner_id"
add_index "oauth_access_tokens", ["token"], :name => "index_oauth_access_tokens_on_token", :unique => true
create_table "oauth_applications", :force => true do |t|
t.string "name", :null => false
t.string "uid", :null => false
t.string "secret", :null => false
t.text "redirect_uri", :null => false
t.string "scopes", :default => "", :null => false
t.datetime "created_at"
t.datetime "updated_at"
t.integer "owner_id"
t.string "owner_type"
end
add_index "oauth_applications", ["owner_id", "owner_type"], :name => "index_oauth_applications_on_owner_id_and_owner_type"
add_index "oauth_applications", ["uid"], :name => "index_oauth_applications_on_uid", :unique => true
create_table "onclick_times", :force => true do |t| create_table "onclick_times", :force => true do |t|
t.integer "user_id" t.integer "user_id"
t.datetime "onclick_time" t.datetime "onclick_time"
@@ -1373,11 +1629,8 @@ ActiveRecord::Schema.define(:version => 20161019020422) do
t.integer "sticky", :default => 0 t.integer "sticky", :default => 0
t.integer "org_subfield_id" t.integer "org_subfield_id"
t.integer "status", :default => 0 t.integer "status", :default => 0
t.integer "root_id"
end end
add_index "org_document_comments", ["root_id"], :name => "index_org_document_comments_on_root_id"
create_table "org_member_roles", :force => true do |t| create_table "org_member_roles", :force => true do |t|
t.integer "org_member_id" t.integer "org_member_id"
t.integer "role_id" t.integer "role_id"
@@ -1442,6 +1695,23 @@ ActiveRecord::Schema.define(:version => 20161019020422) do
t.integer "allow_teacher", :default => 0 t.integer "allow_teacher", :default => 0
end end
create_table "permissions", :force => true do |t|
t.string "controller", :limit => 30, :default => "", :null => false
t.string "action", :limit => 30, :default => "", :null => false
t.string "description", :limit => 60, :default => "", :null => false
t.boolean "is_public", :default => false, :null => false
t.integer "sort", :default => 0, :null => false
t.boolean "mail_option", :default => false, :null => false
t.boolean "mail_enabled", :default => false, :null => false
end
create_table "permissions_roles", :id => false, :force => true do |t|
t.integer "permission_id", :default => 0, :null => false
t.integer "role_id", :default => 0, :null => false
end
add_index "permissions_roles", ["role_id"], :name => "permissions_roles_role_id"
create_table "phone_app_versions", :force => true do |t| create_table "phone_app_versions", :force => true do |t|
t.string "version" t.string "version"
t.text "description" t.text "description"
@@ -1524,6 +1794,11 @@ ActiveRecord::Schema.define(:version => 20161019020422) do
t.datetime "updated_at", :null => false t.datetime "updated_at", :null => false
end end
create_table "project_import_data", :force => true do |t|
t.integer "project_id"
t.text "data"
end
create_table "project_infos", :force => true do |t| create_table "project_infos", :force => true do |t|
t.integer "project_id" t.integer "project_id"
t.integer "user_id" t.integer "user_id"
@@ -1545,7 +1820,6 @@ ActiveRecord::Schema.define(:version => 20161019020422) do
t.integer "board_num", :default => 0 t.integer "board_num", :default => 0
t.integer "attach_num", :default => 0 t.integer "attach_num", :default => 0
t.datetime "commit_time" t.datetime "commit_time"
t.integer "pull_request_num", :default => 0
end end
create_table "project_statuses", :force => true do |t| create_table "project_statuses", :force => true do |t|
@@ -1618,6 +1892,16 @@ ActiveRecord::Schema.define(:version => 20161019020422) do
add_index "projects_trackers", ["project_id", "tracker_id"], :name => "projects_trackers_unique", :unique => true add_index "projects_trackers", ["project_id", "tracker_id"], :name => "projects_trackers_unique", :unique => true
add_index "projects_trackers", ["project_id"], :name => "projects_trackers_project_id" add_index "projects_trackers", ["project_id"], :name => "projects_trackers_project_id"
create_table "protected_branches", :force => true do |t|
t.integer "project_id", :null => false
t.string "name", :null => false
t.datetime "created_at"
t.datetime "updated_at"
t.boolean "developers_can_push", :default => false, :null => false
end
add_index "protected_branches", ["project_id"], :name => "index_protected_branches_on_project_id"
create_table "pull_requests", :force => true do |t| create_table "pull_requests", :force => true do |t|
t.integer "pull_request_id" t.integer "pull_request_id"
t.integer "gpid" t.integer "gpid"
@@ -1774,6 +2058,25 @@ ActiveRecord::Schema.define(:version => 20161019020422) do
t.integer "is_teacher_score", :default => 0 t.integer "is_teacher_score", :default => 0
end end
create_table "services", :force => true do |t|
t.string "type"
t.string "title"
t.integer "project_id"
t.datetime "created_at"
t.datetime "updated_at"
t.boolean "active", :default => false, :null => false
t.text "properties"
t.boolean "template", :default => false
t.boolean "push_events", :default => true
t.boolean "issues_events", :default => true
t.boolean "merge_requests_events", :default => true
t.boolean "tag_push_events", :default => true
t.boolean "note_events", :default => true, :null => false
end
add_index "services", ["created_at", "id"], :name => "index_services_on_created_at_and_id"
add_index "services", ["project_id"], :name => "index_services_on_project_id"
create_table "settings", :force => true do |t| create_table "settings", :force => true do |t|
t.string "name", :default => "", :null => false t.string "name", :default => "", :null => false
t.text "value" t.text "value"
@@ -1812,6 +2115,26 @@ ActiveRecord::Schema.define(:version => 20161019020422) do
t.datetime "updated_at", :null => false t.datetime "updated_at", :null => false
end end
create_table "snippets", :force => true do |t|
t.string "title"
t.text "content", :limit => 2147483647
t.integer "author_id", :null => false
t.integer "project_id"
t.datetime "created_at"
t.datetime "updated_at"
t.string "file_name"
t.datetime "expires_at"
t.string "type"
t.integer "visibility_level", :default => 0, :null => false
end
add_index "snippets", ["author_id"], :name => "index_snippets_on_author_id"
add_index "snippets", ["created_at", "id"], :name => "index_snippets_on_created_at_and_id"
add_index "snippets", ["created_at"], :name => "index_snippets_on_created_at"
add_index "snippets", ["expires_at"], :name => "index_snippets_on_expires_at"
add_index "snippets", ["project_id"], :name => "index_snippets_on_project_id"
add_index "snippets", ["visibility_level"], :name => "index_snippets_on_visibility_level"
create_table "softapplications", :force => true do |t| create_table "softapplications", :force => true do |t|
t.string "name" t.string "name"
t.text "description" t.text "description"
@@ -1965,6 +2288,17 @@ ActiveRecord::Schema.define(:version => 20161019020422) do
t.datetime "updated_at", :null => false t.datetime "updated_at", :null => false
end end
create_table "subscriptions", :force => true do |t|
t.integer "user_id"
t.integer "subscribable_id"
t.string "subscribable_type"
t.boolean "subscribed"
t.datetime "created_at"
t.datetime "updated_at"
end
add_index "subscriptions", ["subscribable_id", "subscribable_type", "user_id"], :name => "subscriptions_user_id_and_ref_fields", :unique => true
create_table "syllabus_members", :force => true do |t| create_table "syllabus_members", :force => true do |t|
t.integer "rank" t.integer "rank"
t.integer "syllabus_id" t.integer "syllabus_id"
@@ -2238,6 +2572,17 @@ ActiveRecord::Schema.define(:version => 20161019020422) do
add_index "users", ["id", "type"], :name => "index_users_on_id_and_type" add_index "users", ["id", "type"], :name => "index_users_on_id_and_type"
add_index "users", ["type"], :name => "index_users_on_type" add_index "users", ["type"], :name => "index_users_on_type"
create_table "users_star_projects", :force => true do |t|
t.integer "project_id", :null => false
t.integer "user_id", :null => false
t.datetime "created_at"
t.datetime "updated_at"
end
add_index "users_star_projects", ["project_id"], :name => "index_users_star_projects_on_project_id"
add_index "users_star_projects", ["user_id", "project_id"], :name => "index_users_star_projects_on_user_id_and_project_id", :unique => true
add_index "users_star_projects", ["user_id"], :name => "index_users_star_projects_on_user_id"
create_table "versions", :force => true do |t| create_table "versions", :force => true do |t|
t.integer "project_id", :default => 0, :null => false t.integer "project_id", :default => 0, :null => false
t.string "name", :default => "", :null => false t.string "name", :default => "", :null => false
@@ -2289,6 +2634,23 @@ ActiveRecord::Schema.define(:version => 20161019020422) do
t.datetime "updated_at", :null => false t.datetime "updated_at", :null => false
end end
create_table "web_hooks", :force => true do |t|
t.string "url"
t.integer "project_id"
t.datetime "created_at"
t.datetime "updated_at"
t.string "type", :default => "ProjectHook"
t.integer "service_id"
t.boolean "push_events", :default => true, :null => false
t.boolean "issues_events", :default => false, :null => false
t.boolean "merge_requests_events", :default => false, :null => false
t.boolean "tag_push_events", :default => false
t.boolean "note_events", :default => false, :null => false
end
add_index "web_hooks", ["created_at", "id"], :name => "index_web_hooks_on_created_at_and_id"
add_index "web_hooks", ["project_id"], :name => "index_web_hooks_on_project_id"
create_table "wechat_logs", :force => true do |t| create_table "wechat_logs", :force => true do |t|
t.string "openid", :null => false t.string "openid", :null => false
t.text "request_raw" t.text "request_raw"


+ 31
- 0
lib/tasks/mysql2redis.rake View File

@@ -0,0 +1,31 @@
#coding=utf-8

namespace :mysql2redis do

task :mysql2redis=> :environment do
puts "start mysql2redis."

mysqlTableName = ARGV[1]

puts mysqlTableName

begin
className = mysqlTableName.classify.constantize
puts "class ="+className.to_s
puts className.count
count = 0
className.where("").find_each do|tmp|
key = mysqlTableName+":"+tmp.id.to_s
tmp.attributes.each do |k,v|
$redis.hset(key,k,v)
end
count = count + 1
end
puts "count = "+count.to_s
rescue
puts "this table is not exist!"
end

puts "end mysql2redis."
end
end

Loading…
Cancel
Save