diff --git a/app/controllers/homework_common_controller.rb b/app/controllers/homework_common_controller.rb
index 5530886df..9d5768948 100644
--- a/app/controllers/homework_common_controller.rb
+++ b/app/controllers/homework_common_controller.rb
@@ -217,7 +217,9 @@ class HomeworkCommonController < ApplicationController
end
@homework_detail_manual.update_column('comment_status', 2)
@statue = 1
- # send_message_homework(@homework)
+ # 匿评开启消息邮件通知
+ send_message_anonymous_comment(@homework, m_status = 2)
+ Mailer.send_mail_anonymous_comment_open(@homework).deliver
else
@statue = 2
end
@@ -236,21 +238,22 @@ class HomeworkCommonController < ApplicationController
student_work.absence_penalty = absence_penalty_count > 0 ? absence_penalty_count * @homework_detail_manual.absence_penalty : 0
student_work.save
end
- # send_message_homework(@homework)
+ # 匿评关闭消息邮件通知
+ send_message_anonymous_comment(@homework, m_status = 3)
+ Mailer.send_mail_anonymous_comment_close(@homework).deliver
respond_to do |format|
format.js
end
end
# 开启/关闭匿评消息通知
- # def send_message_homework(homework)
- # # status 标记匿评状态 1为关闭 0为开启
- # course = @homework.course
- # course.student.each do |st|
- # @homework.course_messages << CourseMessage.new(:user_id => st.user_id, :course_id => course.id, :viewed => false, :status => false)
- # end
- # end
-
+ def send_message_anonymous_comment(homework, m_status )
+ # status 标记匿评状态 1为关闭 0为开启
+ course = @homework.course
+ course.student.each do |st|
+ @homework.course_messages << CourseMessage.new(:user_id => st.student_id, :course_id => course.id, :viewed => false, :status => m_status)
+ end
+ end
#提示
def alert_anonymous_comment
@cur_size = 0
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb
index 6da45c10b..71b852e01 100644
--- a/app/controllers/projects_controller.rb
+++ b/app/controllers/projects_controller.rb
@@ -464,6 +464,10 @@ class ProjectsController < ApplicationController
# by young
# include CoursesHelper
def member
+ # 消息"同意加入项目"
+ if params[:message_id]
+ message_invite(params[:message_id], params[:key])
+ end
# params[:login]为邮箱邀请用户加入,主要功能:
# 1、自动注册
# 2、加入项目、创建角色
@@ -519,6 +523,14 @@ class ProjectsController < ApplicationController
@members = paginateHelper @members
end
+ def message_invite(message_id, key)
+ forge_message = ForgeMessage.find(message_id)
+ if key == forge_message.secret_key
+ Member.create(:role_ids => [4], :user_id => forge_message.user_id, :project_id => forge_message.project_id)
+ UserGrade.create(:user_id => forge_message.user_id, :project_id => forge_message.project_id)
+ end
+ end
+
#判断指定用户是否为课程教师
def isCourseTeacher(id)
result = false
diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb
index 7b4b9d2e4..6a865b203 100644
--- a/app/helpers/projects_helper.rb
+++ b/app/helpers/projects_helper.rb
@@ -83,7 +83,7 @@ module ProjectsHelper
elsif ivite_list.user.active?
value = "邀请已发送,等待用户加入!"
else
- value = "账号尚未激活,等待用户应答!"
+ value = "邀请已发送,等待用户激活账号!"
end
end
diff --git a/app/models/forge_message.rb b/app/models/forge_message.rb
index 0c8b3384f..0dce57598 100644
--- a/app/models/forge_message.rb
+++ b/app/models/forge_message.rb
@@ -8,7 +8,7 @@ class ForgeMessage < ActiveRecord::Base
TYPE_OF_WIKI_ACT = "Wiki"
TYPE_OF_NEWS_ACT = "News"
- attr_accessible :forge_message_id, :forge_message_type, :project_id, :user_id, :viewed
+ attr_accessible :forge_message_id, :forge_message_type, :project_id, :user_id, :viewed, :secret_key
belongs_to :forge_message ,:polymorphic => true
belongs_to :project
diff --git a/app/models/mailer.rb b/app/models/mailer.rb
index c9ab6e58e..07b2a345c 100644
--- a/app/models/mailer.rb
+++ b/app/models/mailer.rb
@@ -47,6 +47,42 @@ class Mailer < ActionMailer::Base
MailerProxy.new(self)
end
+ # 作业匿评开启
+ def send_mail_anonymous_comment_open(homework_common)
+ course = homework_common.course
+ recipients ||= []
+ course.student.each do |student|
+ user = User.find(student.student_id)
+ @subject = "#{l(:mail_homework)}#{homework_common.name} #{l(:mail_anonymous_comment_open)}"
+ @token = Token.get_token_from_user(user, 'autologin')
+ @anonymous_comment_close_url = url_for(student_work_index_url(:homework => homework_common.id, :token => @token.value))
+ @anonymous_comment_close_name = homework_common.name
+ @author = homework_common.user
+ #收件人邮箱
+ recipients << user.mail
+ end
+ mail :to => recipients,
+ :subject => @subject
+ end
+
+ # 作业匿评关闭
+ def send_mail_anonymous_comment_close(homework_common)
+ course = homework_common.course
+ recipients ||= []
+ course.student.each do |student|
+ user = User.find(student.student_id)
+ @subject = "#{l(:mail_homework)}#{homework_common.name} #{l(:mail_anonymous_comment_open)}"
+ @token = Token.get_token_from_user(user, 'autologin')
+ @anonymous_comment_close_url = url_for(student_work_index_url(:homework => homework_common.id, :token => @token.value))
+ @anonymous_comment_close_name = homework_common.name
+ @author = homework_common.user
+ #收件人邮箱
+ recipients << user.mail
+ end
+ mail :to => recipients,
+ :subject => @subject
+ end
+
# author: alan
# 邀请未注册用户加入项目
# 功能: 在加入项目的同时自动注册用户
@@ -82,14 +118,15 @@ class Mailer < ActionMailer::Base
@token = Token.get_token_from_user(user, 'autologin')
@project_url = url_for(:controller => 'projects', :action => 'member', :id => project.id, :user_id => user.id, :mail => true, :token => @token.value)
# 发送消息邀请
- send_message(user,project)
+ send_message_request_member(user,project)
# end
mail :to => email, :subject => @subject
end
# 邀请信息消息 注:forge_message_id 为邀请人ID(特殊情况)
- def send_message(user, project)
- ForgeMessage.create(:user_id => user.id, :project_id => project.id, :forge_message_type => "Project_Invite",:forge_message_id => User.current.id, :viewed => false)
+ def send_message_request_member(user, project)
+ key = newpass(6).to_s
+ ForgeMessage.create(:user_id => user.id, :project_id => project.id, :forge_message_type => "ProjectInvite",:forge_message_id => User.current.id, :viewed => false, :secret_key =>key)
end
# author: alan
diff --git a/app/views/mailer/send_mail_anonymous_comment_close.html.erb b/app/views/mailer/send_mail_anonymous_comment_close.html.erb
new file mode 100644
index 000000000..128f9fae8
--- /dev/null
+++ b/app/views/mailer/send_mail_anonymous_comment_close.html.erb
@@ -0,0 +1,10 @@
+
+
+ - <%= l(:mail_issue_content)%>
+
+
<%=link_to @author, user_url(@author) %> 发布的作业:<%=link_to @anonymous_comment_close_name, @anonymous_comment_close_url%> 已经关闭了匿评!
+
+
+
+
+
\ No newline at end of file
diff --git a/app/views/mailer/send_mail_anonymous_comment_close.text.erb b/app/views/mailer/send_mail_anonymous_comment_close.text.erb
new file mode 100644
index 000000000..e69de29bb
diff --git a/app/views/mailer/send_mail_anonymous_comment_open.html.erb b/app/views/mailer/send_mail_anonymous_comment_open.html.erb
new file mode 100644
index 000000000..5409ade55
--- /dev/null
+++ b/app/views/mailer/send_mail_anonymous_comment_open.html.erb
@@ -0,0 +1,10 @@
+
+
+ - <%= l(:mail_issue_content)%>
+
+
<%=link_to @author, user_url(@author) %> 发布的作业:<%=link_to @anonymous_comment_close_name, @anonymous_comment_close_url%> 已经开启匿评了!
+
+
+
+
+
\ No newline at end of file
diff --git a/app/views/mailer/send_mail_anonymous_comment_open.text.erb b/app/views/mailer/send_mail_anonymous_comment_open.text.erb
new file mode 100644
index 000000000..e69de29bb
diff --git a/app/views/users/user_messages.html.erb b/app/views/users/user_messages.html.erb
index 5ac9f7e8e..a5cc70f99 100644
--- a/app/views/users/user_messages.html.erb
+++ b/app/views/users/user_messages.html.erb
@@ -74,9 +74,10 @@
<% end %>
<% end %>
- <%# 课程消息 %>
+
<% unless @message_alls.nil? %>
<% @message_alls.each do |ma| %>
+ <%# 课程消息 %>
<% if ma.class == CourseMessage %>
<% if ma.course_message_type == "News" %>
@@ -88,7 +89,11 @@
:onmouseover =>"message_titile_show($(this),event)",
:onmouseout => "message_titile_hide($(this))" %>
- <%= ma.course_message.title.html_safe %>
+
标题:<%= ma.course_message.title %>
+ <% unless ma.course_message.description.nil? %>
+
内容:
+
<%= ma.course_message.description.html_safe %>
+ <% end %>
- <%= time_tag(ma.created_at).html_safe %>
@@ -103,12 +108,16 @@
:onmouseover =>"message_titile_show($(this),event)",
:onmouseout => "message_titile_hide($(this))" %>
- <%= ma.course_message.comments.html_safe %>
+
标题:<%= ma.course_message.commented.title %>
+ <% unless ma.course_message.comments.nil? %>
+
内容:
+
<%= ma.course_message.comments.html_safe %>
+ <% end %>
<%= time_tag(ma.created_at).html_safe %>
<% end %>
- <% if ma.course_message_type == "HomeworkCommon" && ma.status != 1 %>
+ <% if ma.course_message_type == "HomeworkCommon" && ma.status.nil? %>
- <%=link_to image_tag(url_to_avatar(ma.course_message.user), :width => "30", :height => "30"), user_path(ma.course_message.user) %>
- <%=link_to ma.course_message.user, user_path(ma.course_message.user), :class => "newsBlue homepageNewsPublisher" %>">发布了作业:
@@ -118,7 +127,11 @@
:onmouseover =>"message_titile_show($(this),event)",
:onmouseout => "message_titile_hide($(this))" %>
- <%= ma.course_message.name %>
+
标题:<%= ma.course_message.name %>
+ <% unless ma.course_message.description.nil? %>
+
内容:
+
<%= ma.course_message.description.html_safe %>
+ <% end %>
- <%= time_tag(ma.created_at).html_safe %>
@@ -151,6 +164,65 @@
<%= time_tag(ma.created_at).html_safe %>
<% end %>
+
+ <% if ma.course_message_type == "HomeworkCommon" && ma.status == 2 %>
+
+ - <%=link_to image_tag(url_to_avatar(ma.course_message.user), :width => "30", :height => "30"), user_path(ma.course_message.user) %>
+ - <%=link_to ma.course_message.user, user_path(ma.course_message.user), :class => "newsBlue homepageNewsPublisher" %>">发布的作业:
+ <% if ma.viewed == 0 %>
+ -
+ <%= link_to ma.course_message.name, student_work_index_path(:homework => ma.course_message.id),
+ :class =>"#{ma.viewed == 0 ? "newsBlack" : "newsGrey"}",
+ :onmouseover =>"message_titile_show($(this),event)",
+ :onmouseout => "message_titile_hide($(this))" %>
+
+
+ <%= ma.course_message.name %>
+
+ - 开启匿评了!
+ <% else %>
+ -
+ <%= link_to ma.course_message.name, student_work_index_path(:homework => ma.course_message.id), :class =>"#{ma.viewed == 0 ? "newsBlack" : "newsGrey"}",
+ :onmouseover =>"message_titile_show($(this),event)",
+ :onmouseout => "message_titile_hide($(this))"%>
+
+
+ <%= ma.course_message.name %>
+
+ <% end %>
+ - <%= time_tag(ma.created_at).html_safe %>
+
+ <% end %>
+
+ <% if ma.course_message_type == "HomeworkCommon" && ma.status == 3 %>
+
+ - <%=link_to image_tag(url_to_avatar(ma.course_message.user), :width => "30", :height => "30"), user_path(ma.course_message.user) %>
+ - <%=link_to ma.course_message.user, user_path(ma.course_message.user), :class => "newsBlue homepageNewsPublisher" %>">发布的作业:
+ <% if ma.viewed == 0 %>
+ -
+ <%= link_to ma.course_message.name, student_work_index_path(:homework => ma.course_message.id),
+ :class =>"#{ma.viewed == 0 ? "newsBlack" : "newsGrey"}",
+ :onmouseover =>"message_titile_show($(this),event)",
+ :onmouseout => "message_titile_hide($(this))" %>
+
+
+ <%= ma.course_message.name %>
+
+ - 匿评已经关闭!
+ <% else %>
+ -
+ <%= link_to ma.course_message.name, student_work_index_path(:homework => ma.course_message.id), :class =>"#{ma.viewed == 0 ? "newsBlack" : "newsGrey"}",
+ :onmouseover =>"message_titile_show($(this),event)",
+ :onmouseout => "message_titile_hide($(this))"%>
+
+
+ <%= ma.course_message.name %>
+
+ <% end %>
+ - <%= time_tag(ma.created_at).html_safe %>
+
+ <% end %>
+
<% if ma.course_message_type == "Poll" %>
- <%=link_to image_tag(url_to_avatar(ma.course_message.user), :width => "30", :height => "30"), user_path(ma.course_message.user) %>
@@ -174,7 +246,15 @@
-
<%= link_to ma.course_message.subject, course_boards_path(ma.course_message.course, :parent_id => ma.course_message.parent_id ? ma.course_message.parent_id : ma.course_message.id, :topic_id => ma.course_message.id),
:class => "#{ma.viewed==0 ? "newsBlack" : "newsGrey"}",
- :title => "#{ma.course_message.subject.html_safe}" %>
+ :onmouseover =>"message_titile_show($(this),event)",
+ :onmouseout => "message_titile_hide($(this))" %>
+
+
主题:<%= ma.course_message.subject %>
+ <% unless ma.course_message.content.nil? %>
+
内容:
+
<%= ma.course_message.content.html_safe %>
+ <% end %>
+
<% else %>
-
<%= link_to ma.course_message.content.html_safe, course_boards_path(ma.course_message.course, :parent_id => ma.course_message.parent_id ? ma.course_message.parent_id : ma.course_message.id, :topic_id => ma.course_message.id),
@@ -182,7 +262,11 @@
:onmouseover =>"message_titile_show($(this),event)",
:onmouseout => "message_titile_hide($(this))" %>
- <%= ma.course_message.content.html_safe %>
+
主题:<%= ma.course_message.subject %>
+ <% unless ma.course_message.content.nil? %>
+
内容:
+
<%= ma.course_message.content.html_safe %>
+ <% end %>
<% end %>
- <%= time_tag(ma.created_at).html_safe %>
@@ -250,6 +334,7 @@
<% end %>
<% if ma.class == ForgeMessage %>
+
<% if ma.forge_message_type == "AppliedProject" %>
-
@@ -270,6 +355,37 @@
- <%= time_tag(ma.created_at).html_safe %>
<% end %>
+
+ <% if ma.forge_message_type == "ProjectInvite" %>
+ <% inviter = User.find(ma.forge_message_id) %>
+
+ -
+ <%=link_to image_tag(url_to_avatar(inviter), :width => "30", :height => "30"), user_path(inviter) %>
+
+ -
+ <%=link_to inviter, user_path(inviter), :class => "newsBlue homepageNewsPublisher" %>
+ ">邀请你加入项目:
+
+ -
+ <%= link_to ma.project, project_path(ma.project),
+ :class => "#{ma.viewed == 0 ? "newsBlack" : "newsGrey"}",
+ :onmouseover => "message_titile_show($(this),event)",
+ :onmouseout => "message_titile_hide($(this))" %>
+
+
+ <%= ma.project %>
+
+ <% if User.current == @user %>
+ -
+ <%=link_to "同意加入", {:controller => 'projects', :action => 'member', :id => ma.project_id, :message_id =>ma.id, :key => ma.secret_key},
+ :value => ma.secret_key,
+ :class => "green_btn_cir ml10",
+ :style => "color:#fff" %>
+
+ <% end %>
+ - <%= time_tag(ma.created_at).html_safe %>
+
+ <% end %>
<% if ma.forge_message_type == "Issue" %>
-
@@ -285,7 +401,11 @@
:onmouseout => "message_titile_hide($(this))" %>
- <%= ma.forge_message.subject %>
+
主题:<%= ma.forge_message.subject %>
+ <% unless ma.forge_message.description.nil? || ma.forge_message.description == "" %>
+
描述:
+
<%= ma.forge_message.description.html_safe %>
+ <% end %>
- <%= time_tag(ma.created_at).html_safe %>
@@ -309,7 +429,7 @@
问题标题:<%= ma.forge_message.journalized.subject %>
更新内容:
-
<%= get_issue_des_update(ma.forge_message).html_safe %>
+
<%= get_issue_des_update(ma.forge_message).html_safe %>
- <%= time_tag(ma.created_at).html_safe %>
@@ -327,7 +447,11 @@
:onmouseover => "message_titile_show($(this),event)",
:onmouseout => "message_titile_hide($(this))" %>
- <%= ma.forge_message.subject.html_safe %>
+
主题:<%= ma.forge_message.subject %>
+ <% unless ma.forge_message.content.nil? %>
+
内容:
+
<%= ma.forge_message.content.html_safe %>
+ <% end %>
<% else %>
@@ -337,7 +461,11 @@
:onmouseover => "message_titile_show($(this),event)",
:onmouseout => "message_titile_hide($(this))" %>
- <%= ma.forge_message.content.html_safe %>
+
主题:<%= ma.forge_message.subject %>
+ <% unless ma.forge_message.content.nil? %>
+
内容:
+
<%= ma.forge_message.content.html_safe %>
+ <% end %>
<% end %>
<%= time_tag(ma.created_at).html_safe %>
@@ -359,8 +487,11 @@
:onmouseout => "message_titile_hide($(this))" %>
-
- <%= ma.forge_message.title.html_safe %>
+
标题:<%= ma.forge_message.title %>
+ <% unless ma.forge_message.description.nil? %>
+
内容:
+
<%= ma.forge_message.description.html_safe %>
+ <% end %>
<%= time_tag(ma.created_at).html_safe %>
@@ -377,7 +508,9 @@
:onmouseout => "message_titile_hide($(this))" %>
- <%= ma.forge_message.comments.html_safe %>
+
新闻标题:<%= ma.forge_message.commented.title %>
+
评论内容:
+
<%= ma.forge_message.comments.html_safe %>
<%= time_tag(ma.created_at).html_safe %>
@@ -402,8 +535,10 @@
标题:<%= ma.memo.subject %>
-
内容:
-
<%= ma.memo.content.html_safe %>
+ <% unless ma.memo.content.nil? %>
+
内容:
+
<%= ma.memo.content.html_safe %>
+ <% end %>
<% else %>
@@ -413,8 +548,10 @@
标题:<%= ma.memo.subject %>
-
内容:
-
<%= ma.memo.content.html_safe %>
+ <% unless ma.memo.content.nil? %>
+
内容:
+
<%= ma.memo.content.html_safe %>
+ <% end %>
<% end %>
<%= time_tag(ma.memo.created_at).html_safe %>
diff --git a/config/configuration.yml b/config/configuration.yml
index 5c58c705a..87a54a976 100644
--- a/config/configuration.yml
+++ b/config/configuration.yml
@@ -103,7 +103,7 @@ default:
# autologin_cookie_name: the name of the cookie (default: autologin)
# autologin_cookie_path: the cookie path (default: /)
# autologin_cookie_secure: true sets the cookie secure flag (default: false)
- autologin_cookie_name: "autologin_trustie"
+ autologin_cookie_name:
autologin_cookie_path:
autologin_cookie_secure:
@@ -197,16 +197,10 @@ default:
#max_concurrent_ajax_uploads: 2
#pic_types: "bmp,jpeg,jpg,png,gif"
- repository_root_path: '/tmp/htdocs'
-
- judge_server: 'http://judge.trustie.net/'
-
# specific configuration options for production environment
# that overrides the default ones
production:
- judge_server: 'http://192.168.80.21:8080/'
- repository_root_path: '/home/pdl/redmine-2.3.2-0/apache2/htdocs'
- cookie_domain: ".trustie.net"
+ # CJK support
rmagick_font_path: /usr/share/fonts/ipa-mincho/ipam.ttf
email_delivery:
delivery_method: :smtp
@@ -224,9 +218,9 @@ development:
email_delivery:
delivery_method: :smtp
smtp_settings:
- address: smtp.163.com
+ address: mail.trustie.net
port: 25
- domain: smtp.163.com
+ domain: mail.trustie.net
authentication: :login
- user_name: "huang.jingquan@163.com"
- password: "xinhu1ji2qu366"
+ user_name: "mail@trustie.net"
+ password: "loong2010"
diff --git a/config/locales/mailers/zh.yml b/config/locales/mailers/zh.yml
index fea392421..c2dd5c7e0 100644
--- a/config/locales/mailers/zh.yml
+++ b/config/locales/mailers/zh.yml
@@ -25,4 +25,6 @@ zh:
mail_course_homework_active: "中发布了作业"
mail_attention: "请您关注!"
mail_homework_endtime: "作业截止时间快到了!"
- mail_homework: "作业:"
\ No newline at end of file
+ mail_homework: "作业:"
+ mail_anonymous_comment_close: "作业匿评已经关闭!"
+ mail_anonymous_comment_open: "作业匿评已经开启!"
\ No newline at end of file
diff --git a/db/migrate/20150918134804_add_secret_key_to_forge_message.rb b/db/migrate/20150918134804_add_secret_key_to_forge_message.rb
new file mode 100644
index 000000000..1de5a8ae9
--- /dev/null
+++ b/db/migrate/20150918134804_add_secret_key_to_forge_message.rb
@@ -0,0 +1,5 @@
+class AddSecretKeyToForgeMessage < ActiveRecord::Migration
+ def change
+ add_column :forge_messages, :secret_key, :string
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index d0c60e724..90f814ea2 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -11,7 +11,7 @@
#
# It's strongly recommended to check this file into your version control system.
-ActiveRecord::Schema.define(:version => 20150917081214) do
+ActiveRecord::Schema.define(:version => 20150918134804) do
create_table "activities", :force => true do |t|
t.integer "act_id", :null => false
@@ -575,6 +575,7 @@ ActiveRecord::Schema.define(:version => 20150917081214) do
t.integer "viewed"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
+ t.string "secret_key"
end
create_table "forums", :force => true do |t|