diff --git a/app/models/mailer.rb b/app/models/mailer.rb
index b3aff41d2..8488fc1d0 100644
--- a/app/models/mailer.rb
+++ b/app/models/mailer.rb
@@ -103,7 +103,7 @@ class Mailer < ActionMailer::Base
course_ids = courses.map {|course| course.id}.join(",")
# 查询user的缺陷,项目中成员都能收到
- sql = "select * from members m, issues i where i.project_id = m.project_id and m.user_id='#{user.id}'
+ sql = "select DISTINCT * from members m, issues i where i.project_id = m.project_id and m.user_id='#{user.id}'
and (i.created_on between '#{date_from}' and '#{date_to}') order by i.created_on desc"
@issues = Issue.find_by_sql(sql)
@@ -125,13 +125,19 @@ class Mailer < ActionMailer::Base
# user 提交的作业
# @homeworks = HomeworkAttach.where("user_id=#{user.id} and (created_at between '#{date_from}' and '#{date_to}')").order("created_at desc")
+ # 查询user所在项目添加wiki
+ @wiki_contents = WikiContent.find_by_sql("select DISTINCT wc.* from wikis w, members m, projects p, wiki_pages wp, wiki_contents wc where
+ m.user_id = '#{user.id}' and m.project_id = p.id and w.project_id = p.id and w.id = wp.wiki_id and wc.page_id = wp.id and w.project_id>0
+ and (wc.updated_on between '#{date_from}' and '#{date_to}') order by updated_on desc")
+
# 查询user在课程中发布的讨论帖子
- course_mesages = Message.find_by_sql("select distinct me.* from messages me, boards b, members m where
+ course_mesages = Message.find_by_sql("select DISTINCT me.* from messages me, boards b, members m where
b.id = me.board_id and b.course_id = m.course_id
and b.course_id is not Null and m.user_id = '#{user.id}'
and (me.created_on between '#{date_from}' and '#{date_to}') order by created_on desc")
+
# 查询user在项目中发布的讨论帖子
- project_messages = Message.find_by_sql("select distinct me.* from messages me, boards b, members m where
+ project_messages = Message.find_by_sql("select DISTINCT me.* from messages me, boards b, members m where
b.id = me.board_id and b.project_id = m.project_id
and b.project_id != '-1' and m.user_id = '#{user.id}' and (me.created_on between '#{date_from}' and '#{date_to}') order by created_on desc")
# messages = Message.find_by_sql("select DISTINCT * from messages where author_id = #{user.id} and (created_on between '#{date_from}' and '#{date_to}') order by created_on desc")
@@ -157,17 +163,24 @@ class Mailer < ActionMailer::Base
and (created_on between '#{date_from}' and '#{date_to}') order by created_on desc") : []
# 查询user在课程及个人中留言
- @course_journal_messages = JournalsForMessage.find_by_sql("select DISTINCT * from journals_for_messages where
- jour_type='Course' and user_id = #{user.id}
- and (created_on between '#{date_from}' and '#{date_to}') order by created_on desc")
- @user_journal_messages = user.journals_for_messages.where("m_parent_id IS NULL and (created_on between '#{date_from}' and '#{date_to}')").order('created_on DESC')
+ @course_journal_messages = JournalsForMessage.find_by_sql("select DISTINCT jfm.* from journals_for_messages jfm, members m, courses c
+ where m.user_id = '#{user.id}' and c.id = m.course_id and jfm.jour_id = c.id
+ and jfm.jour_type='Course' and (jfm.created_on between '#{date_from}' and '#{date_to}') order by created_on desc")
+
+ @user_journal_messages = user.journals_for_messages.where("jour_type='Principal' and (created_on between '#{date_from}' and '#{date_to}')").order('created_on DESC')
+
+ # 查询user在项目中留言(用户反馈)
+ @project_journal_messages = JournalsForMessage.find_by_sql("select DISTINCT jfm.* from journals_for_messages jfm, members m, projects p
+ where m.user_id = '#{user.id}' and p.id = m.project_id and jfm.jour_id = p.id
+ and jfm.jour_type='Project' and (jfm.created_on between '#{date_from}' and '#{date_to}') order by created_on desc")
+
# 查询user新建贴吧或发布帖子
@forums = Forum.find_by_sql("select DISTINCT * from forums where creator_id = #{user.id} and (created_at between '#{date_from}' and '#{date_to}') order by created_at desc")
@memos = Memo.find_by_sql("select DISTINCT m.* from memos m, forums f where (m.author_id = #{user.id} or (m.forum_id = f.id and f.creator_id = #{user.id}))
and (m.created_at between '#{date_from}' and '#{date_to}') order by m.created_at desc")
has_content = [@issues,@course_messages,@project_messages,@course_news,@project_news,
- @course_journal_messages,@user_journal_messages,@forums,@memos,@attachments,@bids].any? {|o| !o.empty?}
+ @course_journal_messages,@user_journal_messages,@project_journal_messages,@forums,@memos,@attachments,@bids,@wiki_contents].any? {|o| !o.empty?}
mylogger.debug "Sent activity mail : #{user.mail} - #{has_content}"
#有内容才发,没有不发
mail :to => user.mail,:subject => subject if has_content
diff --git a/app/views/mailer/send_for_user_activities.html.erb b/app/views/mailer/send_for_user_activities.html.erb
index 38805d837..1b4e2c255 100644
--- a/app/views/mailer/send_for_user_activities.html.erb
+++ b/app/views/mailer/send_for_user_activities.html.erb
@@ -3,7 +3,7 @@
<%= @subject %>
<% if @attachments.first || @course_news.first || @bids.first ||
- @course_journal_messages.first|| @course_messages.first %>
+ @course_journal_messages.first|| @course_messages.first || @attachments.first %>
<%= l(:label_course_overview)%>
<% unless @course_news.first.nil? %>
@@ -29,7 +29,7 @@
:class => 'wmail_info',
:style => "color:#2E8DD7;float:left; font-weight:normal;margin-right:5px; display:block;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;"
%>
-
<%= format_time(course_new.created_on) %>
+
<%= format_time(course_new.created_on) %>
<% end %>
@@ -62,7 +62,7 @@
:class => 'wmail_info',
:style => "color:#2E8DD7;float:left; font-weight:normal;margin-right:5px; display:block;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;"
%>
-
<%= format_time(bid.created_at) %>
+
<%= format_time(bid.created_at) %>
<% end %>
<% end %>
@@ -93,11 +93,11 @@
:style => "color:#2E8DD7; float:left;display:block; margin-right:5px; margin-left:5px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;"%>
<%= l(:label_send_course_journals_for_messages) %>
- <%= link_to truncate(course_journal_message.notes,length: 30,omission: '...'), course_feedback_url(course_journal_message.course,:token => @token.value),
+ <%= link_to truncate(course_journal_message.notes.html_safe,length: 30,omission: '...'), course_feedback_url(course_journal_message.course,:token => @token.value),
:class => 'wmail_info',
:style => "color:#2E8DD7;float:left; font-weight:normal;margin-right:5px; display:block;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;"
%>
-
<%= format_time(course_journal_message.created_on) %>
+
<%= format_time(course_journal_message.created_on) %>
<% end %>
@@ -125,7 +125,7 @@
<%= link_to truncate(course_message.subject,length: 30,omission: '...'),board_message_url(course_message, :board_id => course_message.board_id,:token => @token.value),
:class => 'wmail_info',
:style => "color:#2E8DD7;float:left; font-weight:normal;margin-right:5px; display:block;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" %>
-
<%= format_time(course_message.created_on) %>
+
<%= format_time(course_message.created_on) %>
<% end %>
@@ -157,7 +157,7 @@
:class => 'wmail_info',
:style => "color:#2E8DD7;float:left; font-weight:normal;margin-right:5px; display:block;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;"
%>
-
<%= format_time(attachment.created_on) %>
+
<%= format_time(attachment.created_on) %>
<% end %>
@@ -167,7 +167,7 @@
<% end %>
-<% if @issues.first || @project_messages.first %>
+<% if @issues.first || @project_messages.first || @wiki_contents.first || @project_news.first || @project_journal_messages.first %>
<%= l(:label_project_overview_new)%>
<% unless @issues.first.nil? %>
@@ -190,7 +190,7 @@
<%= link_to truncate(issue.subject,length: 30,omission: '...'),issue_url(issue, :token => @token.value),
:style => "color:#2E8DD7;float:left; font-weight:normal;margin-right:5px; display:block;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;"
%>
-
<%= format_time(issue.created_on) %>
+
<%= format_time(issue.created_on) %>
<% end %>
@@ -213,7 +213,7 @@
<%= link_to truncate(project_message.project.name,length: 30,omission: '...'), project_url(project_message.project, :token => @token.value),
:class=> "wmail_column",
:style=> " font-weight: bold; display:block; float:left; color:#666;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" %>
-
]
+
]
<%= link_to project_message.author, user_activities_url(project_message.author,:token => @token.value), :class => "wmail_name",
:style => "color:#2E8DD7; float:left;display:block; margin-right:5px; margin-left:5px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;"%>
@@ -223,7 +223,7 @@
:class => 'wmail_info',
:style => "color:#2E8DD7;float:left; font-weight:normal;margin-right:5px; display:block;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;"
%>
-
<%= format_time(project_message.created_on) %>
+
<%= format_time(project_message.created_on) %>
<% end %>
@@ -231,6 +231,38 @@
<% end %>
+
+ <% unless @wiki_contents.first.nil? %>
+
+
+ <%= l(:label_wiki) %>
+
+
+ <% @wiki_contents.each do |wikicontent|%>
+ -
+ ▪
+ [
+ <% unless wikicontent.page.nil? %>
+ <%= link_to truncate(wikicontent.page.wiki.project.name,length: 30,omission: '...'), project_url(wikicontent.page.wiki.project, :token => @token.value),
+ :class=> "wmail_column",
+ :style=> " font-weight: bold; display:block; float:left; color:#666;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" %>
+ <% end %>
+ ]
+ <%= link_to wikicontent.author, user_activities_url(wikicontent.author,:token => @token.value), :class => "wmail_name",
+ :style => "color:#2E8DD7; float:left;display:block; margin-right:5px; margin-left:5px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;"%>
+ <%= l(:label_wiki_mail_notification) %>
+ <% unless wikicontent.page.nil? %>
+ <%= link_to truncate(wikicontent.text.html_safe, length: 30,omission: '...'), project_wiki_url(wikicontent.page.wiki,:token => @token.value),
+ :class => 'wmail_info',
+ :style => "color:#2E8DD7;float:left; font-weight:normal;margin-right:5px; display:block;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" %>
+ <% end %>
+ <%= format_time(wikicontent.updated_on) %>
+
+ <% end %>
+
+
+ <% end %>
+
<% unless @project_news.first.nil? %>
@@ -249,18 +281,50 @@
]
<%= link_to project_new.author, user_activities_url(project_new.author,:token => @token.value), :class => "wmail_name",
:style => "color:#2E8DD7; float:left;display:block; margin-right:5px; margin-left:5px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;"%>
- <%= l(:label_project_notice) %>
+ <%= l(:label_project_mail_notice) %>
<%= link_to truncate(project_new.title,length: 30,omission: '...'), news_url(project_new,:token => @token.value),
:class => 'wmail_info',
:style => "color:#2E8DD7;float:left; font-weight:normal;margin-right:5px; display:block;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" %>
- <%= format_time(project_new.created_on) %>
+ <%= format_time(project_new.created_on) %>
<% end %>
<% end %>
+
+ <% unless @project_journal_messages.first.nil? %>
+
+
+ <%= l(:label_project_mail_feedback) %>
+
+
+
+ <% @project_journal_messages.each do |project_journal_message|%>
+ -
+ ▪
+ [
+
+ <%= link_to truncate(project_journal_message.project.name,length: 30,omission: '...'), project_url(project_journal_message.project, :token => @token.value),
+ :class=> "wmail_column",
+ :style=> " font-weight: bold; display:block; float:left; color:#666;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;" %>
+ ]
+
+ <%= link_to project_journal_message.user, user_activities_url(project_journal_message.user,:token => @token.value), :class => "wmail_name",
+ :style => "color:#2E8DD7; float:left;display:block; margin-right:5px; margin-left:5px; overflow:hidden; white-space: nowrap; text-overflow:ellipsis;"%>
+ <%= l(:label_send_course_journals_for_messages) %>
+
+ <%= link_to truncate(project_journal_message.notes.html_safe,length: 30,omission: '...'), project_feedback_url(project_journal_message.project,:token => @token.value),
+ :class => 'wmail_info',
+ :style => "color:#2E8DD7;float:left; font-weight:normal;margin-right:5px; display:block;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;"
+ %>
+ <%= format_time(project_journal_message.created_on) %>
+
+ <% end %>
+
+
+ <% end %>
<% end %>
@@ -288,7 +352,7 @@
:class => 'wmail_info',
:style => "color:#2E8DD7;float:left; font-weight:normal;margin-right:5px; display:block;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;"
%>
-
<%= format_time(user_journal_message.created_on) %>
+
<%= format_time(user_journal_message.created_on) %>
<% end %>
@@ -320,7 +384,7 @@
:class => 'wmail_info',
:style => "color:#2E8DD7;float:left; font-weight:normal;margin-right:5px; display:block;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;"
%>
-
<%= format_time(forum.created_at) %>
+
<%= format_time(forum.created_at) %>
<% end %>
@@ -347,7 +411,7 @@
:class => 'wmail_info',
:style => "color:#2E8DD7;float:left; font-weight:normal;margin-right:5px; display:block;overflow:hidden; white-space: nowrap; text-overflow:ellipsis;"
%>
-
<%= format_time(memo.created_at) %>
+
<%= format_time(memo.created_at) %>
<% end %>
diff --git a/app/views/mailer/send_for_user_activities.text.erb b/app/views/mailer/send_for_user_activities.text.erb
index 1bfbca4a1..f09dcb299 100644
--- a/app/views/mailer/send_for_user_activities.text.erb
+++ b/app/views/mailer/send_for_user_activities.text.erb
@@ -4,7 +4,7 @@
<%= l(:label_course_overview)%>
<% unless @course_news.first.nil? %>
<%= l(:label_course_news) %>
- (<%= @course_news.count %>)
+
<% @course_news.each do |course_new|%>
@@ -28,7 +28,7 @@
<% end %>
<% unless @bids.empty? %>
- <%= l(:label_homework_overview) %><%= @bids.count %>
+ <%= l(:label_homework_overview) %>
<% unless @bids.first.nil?%>
<% @bids.each do |bid| %>
▪
@@ -58,7 +58,7 @@
<% unless @course_journal_messages.first.nil? %>
- <%= l(:view_course_journals_for_messages) %> (<%= @course_journal_messages.count %>)
+ <%= l(:view_course_journals_for_messages) %>
<% @course_journal_messages.each do |course_journal_message|%>
@@ -88,7 +88,7 @@
<% unless @course_messages.first.nil? %>
<%= l(:view_borad_course) %>
- (<%= @course_messages.count %>)
+
<% @course_messages.each do |course_message|%>
@@ -119,7 +119,7 @@
<% unless @attachments.first.nil? %>
<%= l(:label_course_attendingcontestwork_download) %>
- (<%= @attachments.count %>)
+
<% @attachments.each do |attachment|%>
@@ -146,12 +146,12 @@
<% end %>
<% end %>
-<% @issues.first || @project_messages.first %>
+<% @issues.first || @project_messages.first || @wiki_contents.first || @project_news.first || @project_journal_messages.first %>
<%= l(:label_project_overview_new)%>
<% unless @issues.first.nil? %>
<%= l(:label_issue_tracking) %>
- (<%= @issues.count %>)
+
<% @issues.each do |issue|%>
▪
@@ -179,7 +179,7 @@
<% unless @project_messages.first.nil? %>
<%= l(:project_moule_boards_show) %>
- (<%= @project_messages.count %>)
+
<% @project_messages.each do |project_message|%>
▪[
@@ -200,6 +200,68 @@
<%= format_time(project_message.created_on) %>
<% end %>
+ <% unless @wiki_contents.first.nil? %>
+
+ <%= l(:label_wiki) %>
+
+ <% @wiki_contents.each do |wikicontent|%>
+ ▪[
+ <% unless wikicontent.page.nil? %>
+ <%= link_to truncate(wikicontent.page.wiki.project.name,length: 30,omission: '...'), project_url(wikicontent.page.wiki.project, :token => @token.value)
+ %>
+ <% end %>
+ ]
+ <%= link_to wikicontent.author, user_activities_url(wikicontent.author,:token => @token.value) %>
+ <%= l(:label_project_notice) %>
+ <% unless wikicontent.page.nil? %>
+ <%= link_to truncate(wikicontent.text.html_safe, length: 30,omission: '...'), project_wiki_url(wikicontent.page.wiki,:token => @token.value) %>
+ <% end %>
+ <%= format_time(wikicontent.updated_on) %>
+
+ <% end %>
+ <% end %>
+
+
+ <% unless @project_news.first.nil? %>
+
+ <%= l(:label_project_news) %>
+
+ <% @project_news.each do |project_new|%>
+ ▪[
+
+ <%= link_to truncate(project_new.project.name,length: 30,omission: '...'), project_url(project_new.project, :token => @token.value)
+ %>
+ ]
+ <%= link_to project_new.author, user_activities_url(project_new.author,:token => @token.value)
+ %>
+ <%= l(:label_project_notice) %>
+
+ <%= link_to truncate(project_new.title,length: 30,omission: '...'), news_url(project_new,:token => @token.value)
+ %>
+ <%= format_time(project_new.created_on) %>
+
+ <% end %>
+ <% end %>
+
+
+ <% unless @project_journal_messages.first.nil? %>
+ <%= l(:label_project_mail_feedback) %>
+
+ <% @project_journal_messages.each do |project_journal_message|%>
+ ▪[
+
+ <%= link_to truncate(project_journal_message.project.name,length: 30,omission: '...'), project_url(project_journal_message.project, :token => @token.value)
+ %>
+ ]
+
+ <%= link_to project_journal_message.user, user_activities_url(project_journal_message.user,:token => @token.value) %>
+ <%= l(:label_send_course_journals_for_messages) %>
+
+ <%= link_to truncate(project_journal_message.notes.html_safe,length: 30,omission: '...'), project_feedback_url(project_journal_message.project,:token => @token.value)
+ %>
+ <%= format_time(project_journal_message.created_on) %>
+ <% end %>
+ <% end %>
<% end %>
@@ -234,7 +296,7 @@
<% unless @forums.first.nil? %>
<%= l(:label_user_forum) %>
- (<%= @forums.count %>)
+
<% @forums.each do |forum|%>
▪
@@ -253,7 +315,7 @@
<% unless @memos.first.nil? %>
<%= l(:label_user_message_forum) %>
- (<%= @memos.count %>)
+
<% @memos.each do |memo|%>
▪
diff --git a/config/locales/mailers/zh.yml b/config/locales/mailers/zh.yml
index 8a6aa5168..46666ee25 100644
--- a/config/locales/mailers/zh.yml
+++ b/config/locales/mailers/zh.yml
@@ -20,4 +20,4 @@ zh:
mail_issue_sent_from: "来源:"
mail_issue_from_project: "项目问题跟踪"
mail_issue_attachments: "附件:"
- mail_issue_reply: "我要回复"
\ No newline at end of file
+ mail_issue_reply: "我要回复"
diff --git a/config/locales/projects/zh.yml b/config/locales/projects/zh.yml
index e01e2992c..42eea8dcc 100644
--- a/config/locales/projects/zh.yml
+++ b/config/locales/projects/zh.yml
@@ -395,7 +395,8 @@ zh:
label_issue_score: issue得分
label_issue_number: issue的数量
- label_issue_journal_number: issue的留言数量
+ label_issue_journal_number: issue的留言数量
+ label_project_mail_feedback: 项目留言
label_news_score: 新闻得分
label_new_number: 新闻的数量
diff --git a/config/locales/zh.yml b/config/locales/zh.yml
index 46d6c31bd..b327b1d5f 100644
--- a/config/locales/zh.yml
+++ b/config/locales/zh.yml
@@ -783,6 +783,7 @@ zh:
label_project_newother: "查看其他评论"
label_project_newshare: "分享了"
label_project_notice: "发布了通知:"
+ label_project_mail_notice: "发布了新闻:"
label_project_issue: "发布了问题:"
label_project_newadd: "添加了"
label_project_unadd: "暂无项目,赶快去创建吧!"
@@ -1505,6 +1506,7 @@ zh:
label_news_number: 新闻的数量
label_wiki_number: wiki的数量
+ label_wiki_mail_notification: 发布了wiki