guange_homework
sw 10 years ago
commit 0a5d1c255a

@ -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

@ -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

@ -83,7 +83,7 @@ module ProjectsHelper
elsif ivite_list.user.active?
value = "邀请已发送,等待用户加入!"
else
value = "账号尚未激活,等待用户应答"
value = "邀请已发送,等待用户激活账号"
end
end

@ -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

@ -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

@ -0,0 +1,10 @@
<div class="mail_box" style="border:1px solid #c8c8c8; width:570px; height: auto; padding:15px; margin-top:10px; margin-bottom:10px;">
<ul style="list-style-type:none; margin:0; padding:0;">
<li style="list-style-type:none; margin:0; padding:0;"><span style="float: left;"><strong><%= l(:mail_issue_content)%></strong></span>
<span style="float: left; width: 526px">
<p><%=link_to @author, user_url(@author) %> 发布的作业:<%=link_to @anonymous_comment_close_name, @anonymous_comment_close_url%> <span style="color: red; padding-left: 10px;">已经关闭了匿评!</span></p>
</span>
</li>
</ul>
<div class="cl" style="margin-top: 30px; clear:both; overflow:hidden;"></div>
</div>

@ -0,0 +1,10 @@
<div class="mail_box" style="border:1px solid #c8c8c8; width:570px; height: auto; padding:15px; margin-top:10px; margin-bottom:10px;">
<ul style="list-style-type:none; margin:0; padding:0;">
<li style="list-style-type:none; margin:0; padding:0;"><span style="float: left;"><strong><%= l(:mail_issue_content)%></strong></span>
<span style="float: left; width: 526px">
<p><%=link_to @author, user_url(@author) %> 发布的作业:<%=link_to @anonymous_comment_close_name, @anonymous_comment_close_url%> <span style="color: red; padding-left: 10px;">已经开启匿评了!</span></p>
</span>
</li>
</ul>
<div class="cl" style="margin-top: 30px; clear:both; overflow:hidden;"></div>
</div>

File diff suppressed because it is too large Load Diff

@ -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"

@ -26,3 +26,5 @@ zh:
mail_attention: "请您关注!"
mail_homework_endtime: "作业截止时间快到了!"
mail_homework: "作业:"
mail_anonymous_comment_close: "作业匿评已经关闭!"
mail_anonymous_comment_open: "作业匿评已经开启!"

@ -0,0 +1,5 @@
class AddSecretKeyToForgeMessage < ActiveRecord::Migration
def change
add_column :forge_messages, :secret_key, :string
end
end

@ -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|

Loading…
Cancel
Save