diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb
index a44b58789..25536615a 100644
--- a/app/controllers/admin_controller.rb
+++ b/app/controllers/admin_controller.rb
@@ -395,4 +395,74 @@ class AdminController < ApplicationController
end
+ #留言列表
+ def leave_messages
+ @jour = JournalsForMessage.where("jour_type = 'Principal' or jour_type = 'Course'").reorder('created_on desc')
+ case params[:format]
+ when 'xml', 'json'
+ @offset, @limit = api_offset_and_limit({:limit => 30})
+ else
+ @limit = 30#per_page_option
+ end
+
+ @jour_count = @jour.count
+ @jour_pages = Paginator.new @jour_count, @limit, params['page']
+ @offset ||= @jour_pages.offset
+ @jour = @jour.limit(@limit).offset(@offset).all
+
+ respond_to do |format|
+ format.html
+ end
+ end
+
+ #帖子
+ def messages_list
+ @memo = Memo.reorder("created_at desc")
+
+=begin
+ case params[:format]
+ when 'xml', 'json'
+ @offset, @limit = api_offset_and_limit({:limit => 30})
+ else
+ @limit = 30#per_page_option
+ end
+
+ @memo_count = @memo.count
+ @memo_pages = Paginator.new @memo_count, @limit, params['page']
+ @offset ||= @memo_pages.offset
+ @memo = @memo.limit(@limit).offset(@offset).all
+=end
+
+ respond_to do |format|
+ format.html
+ end
+ end
+
+ #课程讨论区的帖子
+ def course_messages
+ #@boards=Board.where('course_id is NULL')
+ #@course_ms = Message.reorder('created_on desc')
+ @course_ms=Message.joins("join boards on messages.board_id=boards.id where boards.course_id is not NULL").reorder('created_on desc')
+ end
+
+ #项目讨论区的帖子
+ def project_messages
+ @project_ms=Message.joins("join boards on messages.board_id=boards.id where boards.project_id != -1").reorder('created_on desc')
+ end
+
+ #通知
+ def notices
+ @news = News.where('course_id is not NULL').order('created_on desc')
+ end
+
+ #最近登录用户列表
+ def latest_login_users
+ @user = User.order('last_login_on desc')
+ end
+
+ #作业
+ def homework
+ @homework = HomeworkCommon.order('end_time desc')
+ end
+
end
diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb
index 71715035e..29f2e00f4 100644
--- a/app/controllers/courses_controller.rb
+++ b/app/controllers/courses_controller.rb
@@ -106,74 +106,17 @@ class CoursesController < ApplicationController
# 课程搜索
# add by nwb
def search
- courses_all = Course.all_course
- name = params[:name]
- if name.blank?
- @courses = []
- @courses_all = []
- @course_count = 0
- @course_pages = Paginator.new @course_count, per_page_option, params['page']
+ if params[:name].empty?
+ courses = Course.visible
+ @courses = paginateHelper courses,10
else
- @courses = courses_all.visible
- if params[:name].present?
- @courses_all = @courses.like(params[:name])
- else
- @courses_all = @courses;
- end
- @course_count = @courses_all.count
- @course_pages = Paginator.new @course_count, per_page_option, params['page']
-
- # 课程的动态数
- # @course_activity_count=Hash.new
- # @courses_all.each do |course|
- # @course_activity_count[course.id]=0
- # end
- #
- # case params[:course_sort_type]
- # when '0'
- # @courses = @courses_all.order("created_at desc")
- # @s_type = 0
- # @courses = @courses.offset(@course_pages.offset).limit(@course_pages.per_page)
- #
- # @course_activity_count=get_course_activity @courses,@course_activity_count
- #
- # when '1'
- # @courses = @courses_all.order("course_ac_para desc")
- # @s_type = 1
- # @courses = @courses.offset(@course_pages.offset).limit(@course_pages.per_page)
- #
- # @course_activity_count=get_course_activity @courses,@course_activity_count
- #
- # when '2'
- # @courses = @courses_all.order("watchers_count desc")
- # @s_type = 2
- # @courses = @courses.offset(@course_pages.offset).limit(@course_pages.per_page)
- #
- # @course_activity_count=get_course_activity @courses,@course_activity_count
- #
- # when '3'
- # @course_activity_count=get_course_activity @courses_all,@course_activity_count_array
- # @courses=handle_course @courses_all,@course_activity_count
- # @s_type = 3
- # @courses = @courses[@course_pages.offset, @course_pages.per_page]
- #
- # else
- # @s_type = 0
- # @courses = @courses_all.order("created_at desc")
- # @courses = @courses.offset(@course_pages.offset).limit(@course_pages.per_page)
- #
- # @course_activity_count=get_course_activity @courses,@course_activity_count
- #
- # end
+ courses = Course.visible.where("LOWER(name) like '%#{params[:name].to_s.downcase}%'")
+ @courses = paginateHelper courses,10
end
respond_to do |format|
format.html {
render :layout => 'course_base'
- scope = Course
- unless params[:closed]
- scope = scope.active
- end
}
format.atom {
courses = Course.visible.order('created_on DESC').limit(Setting.feeds_limit.to_i).all
diff --git a/app/controllers/homework_common_controller.rb b/app/controllers/homework_common_controller.rb
index 21f781a1a..87c1e288b 100644
--- a/app/controllers/homework_common_controller.rb
+++ b/app/controllers/homework_common_controller.rb
@@ -19,28 +19,28 @@ class HomeworkCommonController < ApplicationController
end
def new
- # @homework_type = "1"
- #
- # @homework = HomeworkCommon.new
- # @homework.safe_attributes = params[:homework_common]
- # @homework.late_penalty = 2
- # @homework.end_time = (Time.now + 3600 * 24).strftime('%Y-%m-%d')
- # @homework.publish_time = Time.now.strftime('%Y-%m-%d')
- #
- # if @homework_type == "1"
- # #匿评作业相关属性
- # @homework_detail_manual = HomeworkDetailManual.new
- # @homework_detail_manual.ta_proportion = 0.6
- # @homework_detail_manual.absence_penalty = 2
- # @homework_detail_manual.evaluation_num = 3
- # @homework_detail_manual.evaluation_start = Time.now.strftime('%Y-%m-%d')
- # @homework_detail_manual.evaluation_end = (Time.now + 3600 * 24).strftime('%Y-%m-%d')
- # @homework.homework_detail_manual = @homework_detail_manual
- # elsif @homework_type == "2"
- # #编程作业相关属性
- # @homework_detail_programing = HomeworkDetailPrograming.new
- # @homework.homework_detail_programing = @homework_detail_programing
- # end
+ @homework_type = "1"
+
+ @homework = HomeworkCommon.new
+ @homework.safe_attributes = params[:homework_common]
+ @homework.late_penalty = 2
+ @homework.end_time = (Time.now + 3600 * 24).strftime('%Y-%m-%d')
+ @homework.publish_time = Time.now.strftime('%Y-%m-%d')
+
+ if @homework_type == "1"
+ #匿评作业相关属性
+ @homework_detail_manual = HomeworkDetailManual.new
+ @homework_detail_manual.ta_proportion = 0.6
+ @homework_detail_manual.absence_penalty = 2
+ @homework_detail_manual.evaluation_num = 3
+ @homework_detail_manual.evaluation_start = Time.now.strftime('%Y-%m-%d')
+ @homework_detail_manual.evaluation_end = (Time.now + 3600 * 24).strftime('%Y-%m-%d')
+ @homework.homework_detail_manual = @homework_detail_manual
+ elsif @homework_type == "2"
+ #编程作业相关属性
+ @homework_detail_programing = HomeworkDetailPrograming.new
+ @homework.homework_detail_programing = @homework_detail_programing
+ end
respond_to do |format|
format.html
end
diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
index bc155dbbe..3d5f613aa 100644
--- a/app/controllers/users_controller.rb
+++ b/app/controllers/users_controller.rb
@@ -104,24 +104,24 @@ class UsersController < ApplicationController
end
# 当前用户查看消息,则设置消息为已读
querys = @user.course_messages
- if User.current.id == @user.id
- querys.update_all(:viewed => true)
- end
+ # if User.current.id == @user.id
+ # querys.update_all(:viewed => true)
+ # end
if @user.course_messages
if params[:type].nil?
- @user_course_messages = @user.course_messages
- @user_project_messges = @user.forge_messages
+ @user_course_messages = @user.course_messages.reverse
+ @user_project_messges = @user.forge_messages.reverse
else
case params[:type]
when 'homework'
- @user_course_messages = @user.course_messages.select{|x| x.course_message_type == "HomeworkCommon"}
+ @user_course_messages = @user.course_messages.reverse.select{|x| x.course_message_type == "HomeworkCommon"}
#@user_course_messages = ForgeMessage.find_by_sql("select * from course_messages where user_id='#{@user.id}' and course_message_type = 'HomeworkCommon' order by created_at desc;")
when 'message'
- @user_course_messages = @user.course_messages.select{|x| x.course_message_type == "Message"}
+ @user_course_messages = @user.course_messages.reverse.select{|x| x.course_message_type == "Message"}
when 'news'
- @user_course_messages = @user.course_messages.select{|x| x.course_message_type == "News"}
+ @user_course_messages = @user.course_messages.reverse.select{|x| x.course_message_type == "News"}
when 'poll'
- @user_course_messages = @user.course_messages.select{|x| x.course_message_type == "Poll"}
+ @user_course_messages = @user.course_messages.reverse.select{|x| x.course_message_type == "Poll"}
end
end
respond_to do |format|
diff --git a/app/helpers/courses_helper.rb b/app/helpers/courses_helper.rb
index ac142f5a1..f9fb31969 100644
--- a/app/helpers/courses_helper.rb
+++ b/app/helpers/courses_helper.rb
@@ -704,7 +704,7 @@ module CoursesHelper
url = course_feedback_path(activity.course)
when "Poll"
title = "问卷 " + activity.course_act.polls_name
- url = poll_index_path(:polls_type => "Course", :polls_group_id => activity.course_id)
+ url = poll_path(activity.course_act_id)
end
end
link_to title.gsub(/<(?!img)[^>]*>/,'').html_safe, url, :class => "problem_tit c_dblue fl fb"
diff --git a/app/models/poll.rb b/app/models/poll.rb
index c5a6a294d..62f91380b 100644
--- a/app/models/poll.rb
+++ b/app/models/poll.rb
@@ -10,6 +10,7 @@ class Poll < ActiveRecord::Base
has_many :acts, :class_name => 'Activity', :as => :act, :dependent => :destroy
# 课程动态
has_many :course_acts, :class_name => 'CourseActivity',:as =>:course_act ,:dependent => :destroy
+ after_create :act_as_activity, :act_as_course_activity
# 课程消息
has_many :course_messages, :class_name =>'CourseMessage', :as => :course_message, :dependent => :destroy
after_create :act_as_activity, :act_as_course_activity, :act_as_course_message
@@ -34,7 +35,11 @@ class Poll < ActiveRecord::Base
#课程动态公共表记录
def act_as_course_activity
if self.polls_type == "Course"
- self.course_acts << CourseActivity.new(:user_id => self.user_id,:course_id => self.polls_group_id)
+ if self.polls_status == 2 #问卷是发布状态
+ self.course_acts << CourseActivity.new(:user_id => self.user_id,:course_id => self.polls_group_id)
+ elsif self.polls_status == 1 #问卷是新建状态
+ self.course_acts.destroy_all
+ end
end
end
diff --git a/app/views/admin/_tab_messages.erb b/app/views/admin/_tab_messages.erb
new file mode 100644
index 000000000..ec04246ba
--- /dev/null
+++ b/app/views/admin/_tab_messages.erb
@@ -0,0 +1,8 @@
+
+
+ - <%= link_to l(:label_forum), {:action => 'messages_list'}, class: "#{current_page?(messages_list_path)? 'selected' : nil }" %>
+ - <%= link_to l(:label_borad_course), {:action => 'course_messages'}, class: "#{current_page?(course_messages_path)? 'selected' : nil }" %>
+ - <%= link_to l(:label_borad_project), {:action => 'project_messages'}, class: "#{current_page?(project_messages_path)? 'selected' : nil }" %>
+
+
+
\ No newline at end of file
diff --git a/app/views/admin/course_messages.html.erb b/app/views/admin/course_messages.html.erb
new file mode 100644
index 000000000..8564d13dc
--- /dev/null
+++ b/app/views/admin/course_messages.html.erb
@@ -0,0 +1,66 @@
+
+ <%=l(:label_message_plural)%>
+
+
+<%= render 'tab_messages' %>
+<%=l(:label_borad_course) %>
+
+
+<% html_title(l(:label_message_plural)) -%>
diff --git a/app/views/admin/homework.html.erb b/app/views/admin/homework.html.erb
new file mode 100644
index 000000000..360ca4e39
--- /dev/null
+++ b/app/views/admin/homework.html.erb
@@ -0,0 +1,62 @@
+
+ <%=l(:label_user_homework)%>
+
+
+
+
+<% html_title(l(:label_user_homework)) -%>
diff --git a/app/views/admin/latest_login_users.html.erb b/app/views/admin/latest_login_users.html.erb
new file mode 100644
index 000000000..dc35daec8
--- /dev/null
+++ b/app/views/admin/latest_login_users.html.erb
@@ -0,0 +1,73 @@
+
+ <%=l(:label_latest_login_user_list)%>
+
+
+
+
+<% html_title(l(:label_latest_login_user_list)) -%>
diff --git a/app/views/admin/leave_messages.html.erb b/app/views/admin/leave_messages.html.erb
new file mode 100644
index 000000000..975c60b15
--- /dev/null
+++ b/app/views/admin/leave_messages.html.erb
@@ -0,0 +1,79 @@
+
+ <%=l(:label_leave_message_list)%>
+
+
+
+
+
+
+<% html_title(l(:label_leave_message_list)) -%>
diff --git a/app/views/admin/messages_list.html.erb b/app/views/admin/messages_list.html.erb
new file mode 100644
index 000000000..77cdbbc69
--- /dev/null
+++ b/app/views/admin/messages_list.html.erb
@@ -0,0 +1,69 @@
+
+ <%=l(:label_message_plural)%>
+
+
+<%= render 'tab_messages' %>
+<%=l(:label_forum) %>
+
+
+
+<% html_title(l(:label_message_plural)) -%>
diff --git a/app/views/admin/notices.html.erb b/app/views/admin/notices.html.erb
new file mode 100644
index 000000000..56f212720
--- /dev/null
+++ b/app/views/admin/notices.html.erb
@@ -0,0 +1,74 @@
+
+ <%=l(:label_notification_list)%>
+
+
+
+
+<% html_title(l(:label_notification_list)) -%>
diff --git a/app/views/admin/project_messages.html.erb b/app/views/admin/project_messages.html.erb
new file mode 100644
index 000000000..af2978422
--- /dev/null
+++ b/app/views/admin/project_messages.html.erb
@@ -0,0 +1,66 @@
+
+ <%=l(:label_message_plural)%>
+
+
+<%= render 'tab_messages' %>
+<%=l(:label_borad_project) %>
+
+
+<% html_title(l(:label_message_plural)) -%>
diff --git a/app/views/boards/_form.html.erb b/app/views/boards/_form.html.erb
index 47ae0672d..a4f58dcc3 100644
--- a/app/views/boards/_form.html.erb
+++ b/app/views/boards/_form.html.erb
@@ -1,7 +1,7 @@
<%= error_messages_for @board %>
-
+
<%= f.text_field :name, :required => true %>
diff --git a/app/views/boards/show.html.erb b/app/views/boards/show.html.erb
index 5520f526d..609294161 100644
--- a/app/views/boards/show.html.erb
+++ b/app/views/boards/show.html.erb
@@ -1,12 +1,5 @@