+
{{discussion.subject}}
+
+ 发布者: |
+ {{discussion.user.realname}} |
+
+
+ 来 源: |
+ {{discussion.course_project_name}} | 项目讨论区 |
+
+
diff --git a/public/javascripts/wechat/app.js b/public/javascripts/wechat/app.js
index 4dce14c3a..ddfede164 100644
--- a/public/javascripts/wechat/app.js
+++ b/public/javascripts/wechat/app.js
@@ -1,6 +1,6 @@
var app = angular.module('wechat', ['ngRoute','ngCookies']);
var apiUrl = '/api/v1/';
-var debug = false; //调试标志,如果在本地请置为true
+var debug = true; //调试标志,如果在本地请置为true
if(debug===true){
apiUrl = 'http://localhost:3000/api/v1/';
@@ -10,7 +10,7 @@ app.factory('auth', function($http,$routeParams, $cookies, $q){
var _openid = '';
if(debug===true){
- _openid = "oCnvgvz8R7QheXE-R9Kkr39j8Ndg";
+ _openid = "1";
}
var getOpenId = function() {
diff --git a/public/stylesheets/weui/weixin.css b/public/stylesheets/weui/weixin.css
index f587a3e50..3872bb649 100644
--- a/public/stylesheets/weui/weixin.css
+++ b/public/stylesheets/weui/weixin.css
@@ -33,6 +33,8 @@ a.underline {text-decoration:underline;}
.hidden {overflow:hidden; white-space:nowrap; text-overflow:ellipsis;}
.inline-block {display:inline-block;}
.undis {display:none;}
+.text-nowrap {white-space:nowrap;}
+.v-top {vertical-align:top;}
/*动态样式*/
.post-container {width:100%;}
@@ -40,6 +42,7 @@ a.underline {text-decoration:underline;}
.post-main {padding:10px; color:#9a9a9a;}
.post-avatar {width:45px; height:45px; margin-right:10px;}
.post-title {font-size:13px; text-align:left;}
+.post-detail-info {font-size:13px; text-align:left; color:#9a9a9a;}
.fl {float:left;}
.fr {float:right;}
.cl {clear:both; overflow:hidden;}
From 2898805aa78c55ea4280b88475637f15bf04c537 Mon Sep 17 00:00:00 2001
From: cxt
Date: Tue, 12 Apr 2016 15:12:40 +0800
Subject: [PATCH 08/28] =?UTF-8?q?=E5=9B=9E=E5=A4=8D=E7=9A=84=E6=A8=A1?=
=?UTF-8?q?=E6=9D=BF=E6=B6=88=E6=81=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
1234567 | 1 +
app/models/blog_comment.rb | 42 +++----------------
app/models/homework_common.rb | 4 +-
app/models/issue.rb | 4 ++
app/models/journals_for_message.rb | 2 +-
app/models/mailer.rb | 67 +-----------------------------
app/models/news.rb | 4 ++
config/locales/zh.yml | 8 ++--
8 files changed, 22 insertions(+), 110 deletions(-)
create mode 100644 1234567
diff --git a/1234567 b/1234567
new file mode 100644
index 000000000..2954ee65a
--- /dev/null
+++ b/1234567
@@ -0,0 +1 @@
+{"access_token":"8_uw_0k7gzuGR_jM5OHas7VXxNKScuDVYDAFT0MCXckv53f9QBUtlUxs4baMASygfA-Y45NVaeEFefOcfB8xcyBRdyZjVrEj_A7fr9qxYxWT7RCB8J4whon2_uE5np28JQVcABAFMR","expires_in":7200,"got_token_at":1460444599}
\ No newline at end of file
diff --git a/app/models/blog_comment.rb b/app/models/blog_comment.rb
index cfe6fe3f3..8f618476a 100644
--- a/app/models/blog_comment.rb
+++ b/app/models/blog_comment.rb
@@ -78,44 +78,12 @@ class BlogComment < ActiveRecord::Base
#博客回复微信模板消息
def blog_wechat_message
- uw = UserWechat.where(user_id: self.parent.author_id).first
- #unless uw.nil? && self.parent.author_id != User.current.id
- unless uw.nil?
- data = {
- touser:uw.openid,
- template_id:"A_3f5v90-zK73V9Kijm-paDkl9S-NuM8Cf-1UJi92_c",
- url:"http://www.trustie.net/",
- topcolor:"#FF0000",
- data:{
- first: {
- value:"您的博客有新回复了",
- color:"#173177"
- },
- keyword1:{
- value:self.author.try(:realname),
- color:"#173177"
- },
- keyword2:{
- value:format_time(self.created_at),
- color:"#173177"
- },
- keyword3:{
- value:self.content.html_safe,
- color:"#173177"
- },
- remark:{
- value:"具体内容请点击详情查看网站",
- color:"#173177"
- }
- }
- }
- logger.info "start send template message: #{data}"
- begin
- req = Wechat.api.template_message_send Wechat::Message.to(uw.openid).template(data)
- rescue Exception => e
- logger.error "[blog_comment] ===> #{e}"
+ if self.parent_id.nil?
+ self.author.watcher_users.each do |watcher|
+ Wechat.api.message_update_template watcher.id, "#{l(:label_new_blog_template)}", self.author.try(:realname) + " 发表了博客:" + self.title.html_safe, format_time(self.created_at)
end
- logger.info "send over. #{req}"
+ else
+ Wechat.api.comment_template self.parent.author_id, "#{l(:label_blog_comment_template)}", self.author.try(:realname), format_time(self.created_at), self.content.html_safe
end
end
end
diff --git a/app/models/homework_common.rb b/app/models/homework_common.rb
index c34c63f2d..2774295a1 100644
--- a/app/models/homework_common.rb
+++ b/app/models/homework_common.rb
@@ -59,7 +59,7 @@ class HomeworkCommon < ActiveRecord::Base
self.course.members.each do |m|
# if m.user_id != self.user_id
self.course_messages << CourseMessage.new(:user_id => m.user_id, :course_id => self.course_id, :viewed => false)
- Wechat.api.homework_template(m.user_id, "#{l(:label_new_homework_template)}", self.course.name, self.name, self.end_time.to_s + " 23:59:59")
+ Wechat.api.homework_template(m.user_id, "#{l(:label_new_homework_template)}", self.course.name, self.name.html_safe, self.end_time.to_s + " 23:59:59")
# end
end
end
@@ -105,7 +105,7 @@ class HomeworkCommon < ActiveRecord::Base
#修改作业后发送微信模板消息
def wechat_message
self.course.members.each do |member|
- Wechat.api.homework_template(member.user_id, "#{l(:label_update_homework_template)}", self.course.name, self.name, self.end_time.to_s + " 23:59:59")
+ Wechat.api.homework_template(member.user_id, "#{l(:label_update_homework_template)}", self.course.name, self.name.html_safe, self.end_time.to_s + " 23:59:59")
end
end
diff --git a/app/models/issue.rb b/app/models/issue.rb
index 0d72407ba..45347b5ad 100644
--- a/app/models/issue.rb
+++ b/app/models/issue.rb
@@ -1,3 +1,4 @@
+#encoding: utf-8
# Redmine - project management software
# Copyright (C) 2006-2013 Jean-Philippe Lang
#
@@ -16,6 +17,8 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
class Issue < ActiveRecord::Base
+ require 'net/http'
+ require 'json'
include Redmine::SafeAttributes
include Redmine::Utils::DateCalculation
include UserScoreHelper
@@ -156,6 +159,7 @@ class Issue < ActiveRecord::Base
# 指派给自己的缺陷不提示消息
unless self.author_id == self.assigned_to_id
self.forge_messages << ForgeMessage.new(:user_id => self.assigned_to_id, :project_id => self.project_id, :viewed => false)
+ Wechat.api.message_update_template self.assigned_to_id, "#{l(:label_new_issue_template)}", self.author.try(:realname) + " 给您指派了缺陷:" + self.subject.html_safe, format_time(self.created_on)
end
if self.tracker_id == 5
self.project.members.each do |m|
diff --git a/app/models/journals_for_message.rb b/app/models/journals_for_message.rb
index c975bcaa6..ce18e1bdb 100644
--- a/app/models/journals_for_message.rb
+++ b/app/models/journals_for_message.rb
@@ -269,7 +269,7 @@ class JournalsForMessage < ActiveRecord::Base
if self.reply_id == 0
if self.user_id != self.jour_id # 过滤自己给自己的留言消息
receivers << self.jour
- Wechat.api.comment_template self.jour_id, "#{l(:label_new_journals_template)}", self.user.try(:realname), format_time(self.created_on), self.notes.html_safe
+ Wechat.api.message_update_template self.jour_id, "#{l(:label_new_journals_template)}", self.notes.html_safe, format_time(self.created_on)
end
else # 留言回复
reply_to = User.find(self.reply_id)
diff --git a/app/models/mailer.rb b/app/models/mailer.rb
index 4b7180857..664e5cfac 100644
--- a/app/models/mailer.rb
+++ b/app/models/mailer.rb
@@ -17,8 +17,6 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
class Mailer < ActionMailer::Base
- require 'net/http'
- require 'json'
layout 'mailer'
helper :application
helper :issues
@@ -642,9 +640,6 @@ class Mailer < ActionMailer::Base
mail :to => recipients,
:subject => "[ #{l(:label_user_homework)} : #{homework_common.name} #{l(:label_memo_create_succ)}]",
:filter => true
- @homework_common.course.members.each do |member|
- mail_wechat_message member.user_id, "3e5Dj2GIx8MOcMyRKpTUEQnM7Tg0ASSCNc01NS9HCGI", "您的课程有新作业了", @homework_common.course.name, @homework_common.name, @homework_common.end_time.to_s + " 23:59:59"
- end
end
# Builds a Mail::Message object used to email recipients of a news' project when a news item is added.
@@ -710,8 +705,6 @@ class Mailer < ActionMailer::Base
mail :to => recipients,
:subject => "[#{news.course.name}] #{l(:label_news)}: #{news.title}",
:filter => true
-
- mail_wechat_message news.author_id, "A_3f5v90-zK73V9Kijm-paDkl9S-NuM8Cf-1UJi92_c", "您的课程通知有新回复了", @author.try(:realname), format_time(comment.created_on), comment.comments.html_safe
end
end
@@ -736,14 +729,7 @@ class Mailer < ActionMailer::Base
:cc => cc,
:subject => "[#{message.board.project.name} - #{message.board.name} - msg#{message.root.id}] #{message.subject}",
:filter => true
- if message.parent_id == nil
- message.project.members.each do |member|
- mail_wechat_message member.user_id, "oKzFCdk7bsIHnGbscA__N8LPQrBkUShvpjV3-kuwWDQ", "项目讨论区有新帖子发布了", message.subject, @author.try(:realname), format_time(message.created_on)
- end
- else
- mail_wechat_message message.parent.author_id, "A_3f5v90-zK73V9Kijm-paDkl9S-NuM8Cf-1UJi92_c", "您的帖子有新回复了", @author.try(:realname), format_time(message.created_on), message.content.html_safe
- end
- elsif message.course
+ elsif message.course
redmine_headers 'Course' => message.course.id,
'Topic-Id' => (message.parent_id || message.id)
@author = message.author
@@ -758,14 +744,7 @@ class Mailer < ActionMailer::Base
:cc => cc,
:subject => "[#{message.board.course.name} - #{message.board.name} - msg#{message.root.id}] #{message.subject}",
:filter => true
- if message.parent_id == nil
- message.course.members.each do |member|
- mail_wechat_message member.user_id, "oKzFCdk7bsIHnGbscA__N8LPQrBkUShvpjV3-kuwWDQ", "课程问答区有新帖子发布了", message.subject, @author.try(:realname), format_time(message.created_on)
- end
- else
- mail_wechat_message message.parent.author_id, "A_3f5v90-zK73V9Kijm-paDkl9S-NuM8Cf-1UJi92_c", "您的帖子有新回复了", @author.try(:realname), format_time(message.created_on), message.content.html_safe
end
- end
end
# Builds a Mail::Message object used to email the recipients of a project of the specified wiki content was added.
@@ -1119,48 +1098,4 @@ class Mailer < ActionMailer::Base
1.upto(len) { |i| newpass << chars[rand(chars.size-1)] }
return newpass
end
-
- #微信模板消息
- def mail_wechat_message user_id, template_id, first, key1, key2, key3, remark="具体内容请点击详情查看网站"
- uw = UserWechat.where(user_id: user_id).first
- logger.info "mail_wechat_message #{user_id} #{uw}"
- unless uw.nil?
- data = {
- touser:uw.openid,
- template_id:template_id,
- url:"http://www.trustie.net/",
- topcolor:"#FF0000",
- data:{
- first: {
- value:first,
- color:"#173177"
- },
- keyword1:{
- value:key1,
- color:"#173177"
- },
- keyword2:{
- value:key2,
- color:"#173177"
- },
- keyword3:{
- value:key3,
- color:"#173177"
- },
- remark:{
- value:remark,
- color:"#173177"
- }
- }
- }
-
- logger.info "start send template message: #{data}"
- begin
- req = Wechat.api.template_message_send Wechat::Message.to(uw.openid).template(data)
- rescue Exception => e
- logger.error "[mailer] ===> #{e}"
- end
- logger.info "send over. #{req}"
- end
- end
end
diff --git a/app/models/news.rb b/app/models/news.rb
index 6746d90cd..967516e65 100644
--- a/app/models/news.rb
+++ b/app/models/news.rb
@@ -1,3 +1,4 @@
+#encoding: utf-8
# Redmine - project management software
# Copyright (C) 2006-2013 Jean-Philippe Lang
#
@@ -16,6 +17,8 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
class News < ActiveRecord::Base
+ require 'net/http'
+ require 'json'
include Redmine::SafeAttributes
belongs_to :project,:touch => true
include ApplicationHelper
@@ -167,6 +170,7 @@ class News < ActiveRecord::Base
self.course.members.each do |m|
if m.user_id != self.author_id
self.course_messages << CourseMessage.new(:user_id => m.user_id, :course_id => self.course_id, :viewed => false)
+ Wechat.api.message_update_template m.user_id, "#{l(:label_new_notice_template)}", self.author.try(:realname) + " 发布了通知:" + self.title.html_safe, format_time(self.created_on)
end
end
else
diff --git a/config/locales/zh.yml b/config/locales/zh.yml
index 8990f2490..4f0c6b701 100644
--- a/config/locales/zh.yml
+++ b/config/locales/zh.yml
@@ -2137,10 +2137,10 @@ zh:
label_homework_comment_template: 您的作业有新回复了
label_new_journals_template: 您有新留言了
label_journals_comment_template: 您的留言有新回复了
- label_resource_name: 您的课程有新作业了
- label_resource_name: 您的课程有新作业了
- label_resource_name: 您的课程有新作业了
- label_resource_name: 您的课程有新作业了
+ label_blog_comment_template: 您的博客有新回复了
+ label_new_blog_template: 您的课程有新作业了
+ label_new_issue_template: 您有新缺陷了
+ label_new_notice_template: 您的课程有新通知了
label_resource_name: 您的课程有新作业了
label_resource_name: 您的课程有新作业了
label_resource_name: 您的课程有新作业了
From 1882cd8f4f8ab28e91efd9603fdfc856008f8b2a Mon Sep 17 00:00:00 2001
From: cxt
Date: Tue, 12 Apr 2016 15:42:59 +0800
Subject: [PATCH 09/28] =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=A7=93=E5=90=8D?=
=?UTF-8?q?=E4=B8=8D=E6=98=BE=E7=A4=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/api/mobile/entities/user.rb | 4 +++-
app/helpers/api_helper.rb | 4 ++++
public/javascripts/wechat/app.js | 4 ++--
3 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/app/api/mobile/entities/user.rb b/app/api/mobile/entities/user.rb
index 16048c61a..e33c6a845 100644
--- a/app/api/mobile/entities/user.rb
+++ b/app/api/mobile/entities/user.rb
@@ -24,6 +24,8 @@ module Mobile
u.nil? || u.user_extensions.nil? ? "" : u.user_extensions.brief_introduction
when :student_num
u.nil? || u.user_extensions.nil? ? "" : u.user_extensions.student_id
+ when :realname
+ u.nil? ? "" : get_user_realname(u)
end
end
end
@@ -37,7 +39,7 @@ module Mobile
#昵称
expose :nickname
#真名
- expose :realname
+ user_expose :realname
#性别
user_expose :gender
#我的二维码
diff --git a/app/helpers/api_helper.rb b/app/helpers/api_helper.rb
index bd7ba8751..274bfc552 100644
--- a/app/helpers/api_helper.rb
+++ b/app/helpers/api_helper.rb
@@ -27,6 +27,10 @@ module ApiHelper
location
end
+ def get_user_realname user
+ name = user.lastname + user.firstname
+ name.empty? || name.nil? ? user.login : name
+ end
def get_assigned_homeworks(homeworks, n, index)
homeworks += homeworks
diff --git a/public/javascripts/wechat/app.js b/public/javascripts/wechat/app.js
index ddfede164..713c98863 100644
--- a/public/javascripts/wechat/app.js
+++ b/public/javascripts/wechat/app.js
@@ -1,6 +1,6 @@
var app = angular.module('wechat', ['ngRoute','ngCookies']);
var apiUrl = '/api/v1/';
-var debug = true; //调试标志,如果在本地请置为true
+var debug = false; //调试标志,如果在本地请置为true
if(debug===true){
apiUrl = 'http://localhost:3000/api/v1/';
@@ -10,7 +10,7 @@ app.factory('auth', function($http,$routeParams, $cookies, $q){
var _openid = '';
if(debug===true){
- _openid = "1";
+ _openid = "2";
}
var getOpenId = function() {
From 70afbb3323db186ed1f8c5ac4c0a5eded3a2c016 Mon Sep 17 00:00:00 2001
From: cxt
Date: Tue, 12 Apr 2016 15:46:56 +0800
Subject: [PATCH 10/28] =?UTF-8?q?=E5=A7=93=E5=90=8D=E7=9A=84=E5=88=A4?=
=?UTF-8?q?=E6=96=AD=E3=80=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/helpers/api_helper.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/helpers/api_helper.rb b/app/helpers/api_helper.rb
index 274bfc552..49640d889 100644
--- a/app/helpers/api_helper.rb
+++ b/app/helpers/api_helper.rb
@@ -29,7 +29,7 @@ module ApiHelper
def get_user_realname user
name = user.lastname + user.firstname
- name.empty? || name.nil? ? user.login : name
+ name.empty? || name.nil? || name == " " ? user.login : name
end
def get_assigned_homeworks(homeworks, n, index)
From 38c182d76a28ab40a05f5d78802c6587fe398234 Mon Sep 17 00:00:00 2001
From: txz
Date: Tue, 12 Apr 2016 15:51:18 +0800
Subject: [PATCH 11/28] =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E5=8F=91=E5=B8=83?=
=?UTF-8?q?=E8=80=85=E7=9C=9F=E5=90=8D=E4=B8=BA=E7=A9=BA=E6=97=B6=EF=BC=8C?=
=?UTF-8?q?=E6=98=BE=E7=A4=BA=E6=98=B5=E7=A7=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
public/assets/wechat/homework_detail.html | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/public/assets/wechat/homework_detail.html b/public/assets/wechat/homework_detail.html
index 708d8b420..776ecb4ce 100644
--- a/public/assets/wechat/homework_detail.html
+++ b/public/assets/wechat/homework_detail.html
@@ -6,7 +6,9 @@
{{homework.name}}
发布者: |
- {{homework.author.realname}} |
+
+ {{homework.author.realname}}
+ {{homework.author.nickname}} |
来 源: |
From 5a3b68816ae277bbdb6080e97e7f1f1d4acdad37 Mon Sep 17 00:00:00 2001
From: cxt
Date: Tue, 12 Apr 2016 15:57:18 +0800
Subject: [PATCH 12/28] =?UTF-8?q?=E5=86=B2=E7=AA=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/models/blog_comment.rb | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/models/blog_comment.rb b/app/models/blog_comment.rb
index ba31cc320..359522f9a 100644
--- a/app/models/blog_comment.rb
+++ b/app/models/blog_comment.rb
@@ -81,7 +81,7 @@ class BlogComment < ActiveRecord::Base
if self.parent_id.nil?
self.author.watcher_users.each do |watcher|
Wechat.api.message_update_template watcher.id, "#{l(:label_new_blog_template)}", self.author.try(:realname) + " 发表了博客:" + self.title.html_safe, format_time(self.created_at)
-
+ end
else
Wechat.api.comment_template self.parent.author_id, "#{l(:label_blog_comment_template)}", self.author.try(:realname), format_time(self.created_at), self.content.html_safe
end
From a6f4b7f5055d35a694c547bab28d3025ae0df69d Mon Sep 17 00:00:00 2001
From: cxt
Date: Tue, 12 Apr 2016 16:23:52 +0800
Subject: [PATCH 13/28] =?UTF-8?q?=E6=B5=8B=E8=AF=95=E7=89=88?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
public/javascripts/wechat/app.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/public/javascripts/wechat/app.js b/public/javascripts/wechat/app.js
index 136557634..5c60681a0 100644
--- a/public/javascripts/wechat/app.js
+++ b/public/javascripts/wechat/app.js
@@ -3,7 +3,7 @@ var apiUrl = '/api/v1/';
var debug = false; //调试标志,如果在本地请置为true
if(debug===true){
- apiUrl = 'http://www.trustie.net/api/v1/';
+ apiUrl = 'https://test.course.trustie.net/api/v1/';
}
app.factory('auth', function($http,$routeParams, $cookies, $q){
From 59f49f586be04c25e1b3e9897f49e192da708396 Mon Sep 17 00:00:00 2001
From: cxt
Date: Tue, 12 Apr 2016 16:32:53 +0800
Subject: [PATCH 14/28] =?UTF-8?q?=E4=B8=8A=E7=BA=BF=E6=B5=8B=E8=AF=95?=
=?UTF-8?q?=E7=89=88?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
config/menu.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/config/menu.yml b/config/menu.yml
index e289a8cac..fe2159e8c 100644
--- a/config/menu.yml
+++ b/config/menu.yml
@@ -2,7 +2,7 @@ button:
-
type: "view"
name: "最新动态"
- url: "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxc09454f171153c2d&redirect_uri=http://www.trustie.net/assets/wechat/app.html#/activities?response_type=code&scope=snsapi_base&state=123#wechat_redirect"
+ url: "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxc09454f171153c2d&redirect_uri=https://test.course.trustie.net/assets/wechat/app.html#/activities?response_type=code&scope=snsapi_base&state=123#wechat_redirect"
-
type: "click"
name: "意见返馈"
From 7fcd229f854070faacc51d9f6bd93c3d4327e87f Mon Sep 17 00:00:00 2001
From: cxt
Date: Wed, 13 Apr 2016 10:09:54 +0800
Subject: [PATCH 15/28] =?UTF-8?q?=E5=88=86=E7=BB=84=E4=BD=9C=E4=B8=9A--?=
=?UTF-8?q?=E4=BD=9C=E5=93=81=E5=88=97=E8=A1=A8=E4=B8=AD=EF=BC=9A=E7=82=B9?=
=?UTF-8?q?=E5=87=BB=E5=85=B3=E8=81=94=E7=9A=84=E9=A1=B9=E7=9B=AE=E8=B7=B3?=
=?UTF-8?q?=E8=BD=AC=E8=87=B3=E8=AF=A5=E9=A1=B9=E7=9B=AE=E4=B8=BB=E9=A1=B5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../student_work/_evaluation_un_work.html.erb | 18 ++++++++++++------
.../student_work/_evaluation_work.html.erb | 16 +++++++++++-----
2 files changed, 23 insertions(+), 11 deletions(-)
diff --git a/app/views/student_work/_evaluation_un_work.html.erb b/app/views/student_work/_evaluation_un_work.html.erb
index 884bb8eb1..57dd786eb 100644
--- a/app/views/student_work/_evaluation_un_work.html.erb
+++ b/app/views/student_work/_evaluation_un_work.html.erb
@@ -5,8 +5,8 @@
<%= link_to(image_tag(url_to_avatar(student_work.user),:width =>"40",:height => "40"),user_activities_path(student_work.user)) %>
-
-
+
+
<% student_work_name = student_work.name.nil? || student_work.name.empty? ? student_work.user.show_name + '的作品' : student_work.name%>
<%= link_to student_work_name,"javascript:void(0)" ,:title => student_work_name, :class => "linkGrey f14 StudentName break_word #{@homework.homework_type == 2 ? '' : 'width165'}"%>
@@ -14,7 +14,7 @@
<% if @homework.homework_type != 3 %>
-
+
-
<%= student_work.user.show_name%>
@@ -24,9 +24,15 @@
<% elsif @homework.homework_type == 3 && @homework.homework_detail_group.base_on_project == 1 %>
- -
- <%= student_work.project.name %>
-
+ <% if student_work.project.is_public || User.current.member_of?(student_work.project) || User.current.admin? %>
+ -
+ <%= link_to( student_work.project.name, project_path(student_work.project.id))%>
+
+ <% else %>
+ -
+ <%= student_work.project.name %>
+
+ <% end %>
<% end %>
diff --git a/app/views/student_work/_evaluation_work.html.erb b/app/views/student_work/_evaluation_work.html.erb
index f97a8dd2d..ad2ee56c3 100644
--- a/app/views/student_work/_evaluation_work.html.erb
+++ b/app/views/student_work/_evaluation_work.html.erb
@@ -18,9 +18,9 @@
<%= link_to student_work_name, student_work_path(student_work),:remote => true,:title => student_work_name, :class => "linkGrey f14 StudentName break_word w230"%>
-
+
<% if @homework.homework_type != 3 %>
-
+
-
<%= student_work.user.show_name%>
@@ -30,9 +30,15 @@
<% elsif @homework.homework_type == 3 && @homework.homework_detail_group.base_on_project == 1 %>
- -
- <%= student_work.project.name %>
-
+ <% if student_work.project.is_public || User.current.member_of?(student_work.project) || User.current.admin? %>
+ -
+ <%= link_to( student_work.project.name, project_path(student_work.project.id))%>
+
+ <% else %>
+ -
+ <%= student_work.project.name %>
+
+ <% end %>
<% end %>
From fcd168465861bf850cb2cdad91bdc2e785e9cbd0 Mon Sep 17 00:00:00 2001
From: cxt
Date: Wed, 13 Apr 2016 11:20:38 +0800
Subject: [PATCH 16/28] =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E5=88=97=E8=A1=A8?=
=?UTF-8?q?=E6=8C=89=E6=9B=B4=E6=96=B0=E6=97=B6=E9=97=B4=E6=8E=92=E5=BA=8F?=
=?UTF-8?q?=20=20=E4=BD=9C=E4=B8=9A=E5=88=97=E8=A1=A8=E5=B7=A6=E4=B8=8A?=
=?UTF-8?q?=E8=A7=92=E6=B7=BB=E5=8A=A0=E4=BD=9C=E4=B8=9A=E7=9A=84=E4=B8=8B?=
=?UTF-8?q?=E6=8B=89=E5=88=97=E8=A1=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/controllers/homework_common_controller.rb | 6 ++++--
app/views/homework_common/index.html.erb | 16 +++++++++++++++-
public/stylesheets/public.css | 2 +-
3 files changed, 20 insertions(+), 4 deletions(-)
diff --git a/app/controllers/homework_common_controller.rb b/app/controllers/homework_common_controller.rb
index 091e2b86b..e52b8434b 100644
--- a/app/controllers/homework_common_controller.rb
+++ b/app/controllers/homework_common_controller.rb
@@ -17,9 +17,11 @@ class HomeworkCommonController < ApplicationController
@page = params[:page] ? params[:page].to_i + 1 : 0
@is_teacher = User.current.logged? && (User.current.admin? || User.current.allowed_to?(:as_teacher,@course))
if @is_teacher
- @homeworks = @course.homework_commons.order("created_at desc").limit(10).offset(@page * 10)
+ @homeworks = @course.homework_commons.order("updated_at desc").limit(10).offset(@page * 10)
+ @homework_commons = @course.homework_commons.order("created_at desc").limit(10).offset(@page * 10)
else
- @homeworks = @course.homework_commons.where("publish_time <= '#{Date.today}'").order("created_at desc").limit(10).offset(@page * 10)
+ @homeworks = @course.homework_commons.where("publish_time <= '#{Date.today}'").order("updated_at desc").limit(10).offset(@page * 10)
+ @homework_commons = @course.homework_commons.where("publish_time <= '#{Date.today}'").order("created_at desc").limit(10).offset(@page * 10)
end
@is_student = User.current.logged? && (User.current.admin? || (User.current.member_of_course?(@course) && !@is_teacher))
@is_new = params[:is_new]
diff --git a/app/views/homework_common/index.html.erb b/app/views/homework_common/index.html.erb
index ac4ac9853..6a3528e51 100644
--- a/app/views/homework_common/index.html.erb
+++ b/app/views/homework_common/index.html.erb
@@ -39,7 +39,21 @@
- <% projects = @user.projects.visible.select("projects.*,(SELECT MAX(created_at) FROM `forge_activities` WHERE forge_activities.project_id = projects.id) AS a").order("a desc").limit(5)%>
+ <% projects = @user.projects.visible.select("projects.*,(SELECT MAX(updated_at) FROM `forge_activities` WHERE forge_activities.project_id = projects.id) AS a").order("a desc").limit(5)%>
+
+
\ No newline at end of file
diff --git a/app/views/courses/_compare_code_tips_2.html.erb b/app/views/courses/_compare_code_tips_2.html.erb
new file mode 100644
index 000000000..f926a1a84
--- /dev/null
+++ b/app/views/courses/_compare_code_tips_2.html.erb
@@ -0,0 +1,22 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/views/courses/_show_compare_code.html.erb b/app/views/courses/_show_compare_code.html.erb
new file mode 100644
index 000000000..39f8e0565
--- /dev/null
+++ b/app/views/courses/_show_compare_code.html.erb
@@ -0,0 +1,16 @@
+
+<% content_for :header_tags do %>
+ <%= javascript_include_tag "/assets/codemirror/codemirror_python_ruby_c" %>
+ <%= stylesheet_link_tag "/assets/codemirror/codemirror" %>
+ <%= stylesheet_link_tag "/assets/codemirror/merge" %>
+ <%= javascript_include_tag "https://cdnjs.cloudflare.com/ajax/libs/diff_match_patch/20121119/diff_match_patch.js"%>
+ <%= javascript_include_tag "/assets/codemirror/merge" %>
+<% end %>
+
+
+ <%=src_name%>
+ <%=dst_name%>
+ <%= src_code if src_code%>
+ <%= dst_code if dst_code%>
+
+
diff --git a/app/views/courses/code_repeat.html.erb b/app/views/courses/code_repeat.html.erb
new file mode 100644
index 000000000..9e026c293
--- /dev/null
+++ b/app/views/courses/code_repeat.html.erb
@@ -0,0 +1,79 @@
+
+
查重结果
+
+
+
+ - 作品名称
+ - 姓名
+ - 学号
+ - 时间
+ - 作品名称
+ - 姓名
+ - 学号
+ - 时间
+ - 相似度
+ - 对比
+
+
+ <%if @homework.homework_type == 2 %>
+ <% @student_works.each do |student_work|%>
+
+ <% student_work_name = student_work.name.nil? || student_work.name.empty? ? student_work.user.show_name + '的作品' : student_work.name%>
+
+ - <%=student_work_name%>
+ - <%=student_work.user.show_name%>
+ - <%= student_work.user.user_extensions.nil? ? "--" : student_work.user.user_extensions.student_id%>
+ - <%= Time.parse(format_time(student_work.created_at)).strftime("%m-%d %H:%M")%>
+ <% if student_work.simi_id > 0 && @works_hash[student_work.simi_id] %>
+ <% simi_student_work = @works_hash[student_work.simi_id] %>
+ <% simi_student_work_name = simi_student_work.name.nil? || simi_student_work.name.empty? ? simi_student_work.user.show_name + '的作品' : simi_student_work.name%>
+ - <%=simi_student_work_name%>
+ - <%=simi_student_work.user.show_name%>
+ - <%= simi_student_work.user.user_extensions.nil? ? "--" : simi_student_work.user.user_extensions.student_id%>
+ - <%= Time.parse(format_time(simi_student_work.created_at)).strftime("%m-%d %H:%M")%>
+ <% if student_work.simi_value >= 90 %>
+ - <%=student_work.simi_value%>%
+ <% else %>
+ - <%=student_work.simi_value%>%
+ <% end %>
+
+
+
+ -
+ <%= link_to("查看", show_comparecode_course_path(:homework_id => @homework.id,:src_id => student_work.id,:dst_id => student_work.simi_id),:class => "cha-btn",:remote => true ) %>
+
+ <%else%>
+ - 无
+ - --
+ - --
+ - --
+ - --
+ <% end %>
+
+ <%end%>
+ <%end%>
+
+
+
+
+
\ No newline at end of file
diff --git a/app/views/courses/show_comparecode.js.erb b/app/views/courses/show_comparecode.js.erb
new file mode 100644
index 000000000..5cfae9428
--- /dev/null
+++ b/app/views/courses/show_comparecode.js.erb
@@ -0,0 +1,101 @@
+$("#ajax-modal").html('<%= escape_javascript( render :partial => 'courses/show_compare_code' ,:locals => {:src_code=> @src_code,:src_name=> @src_username,:dst_name=> @dst_username, :dst_code=> @dst_code,})%>');
+showModal('ajax-modal', '1250px');
+$('#ajax-modal').siblings().remove();
+$('#ajax-modal').before("");
+$('#ajax-modal').parent().css("top","20%").css("left","20%").css("position","absolute");
+//$('#ajax-modal').parent().addClass("resourceUploadPopup");
+$('#ajax-modal').css("padding-left","16px").css("padding-bottom","16px").css("padding-top","10px");
+
+function closeModal(){
+ hideModal($(".program-compare-code"));
+}
+
+var program_name = "text/x-csrc";
+var language = <%= @homework.language.to_i %>;
+if (language == 1) {
+ program_name = 'text/x-csrc';
+} else if(language==2){
+ program_name = 'text/x-c++src';
+}else if(language==3){
+ program_name = 'text/x-cython';
+} else if(language==4){
+ program_name = 'text/x-java';
+}
+//
+//var editor_1 = CodeMirror(document.getElementById("program-code_1"), {
+// mode: {name: program_name,
+// version: 2,
+// singleLineStringErrors: false},
+// lineNumbers: true,
+// indentUnit: 2,
+// matchBrackets: true,
+// readOnly: true,
+// value: $("#program-src_1").text()
+// }
+//);
+//
+//var editor_2 = CodeMirror(document.getElementById("program-code_2"), {
+// mode: {name: program_name,
+// version: 2,
+// singleLineStringErrors: false},
+// lineNumbers: true,
+// indentUnit: 2,
+// matchBrackets: true,
+// readOnly: true,
+// value: $("#program-src_2").text()
+// }
+//);
+
+var value, orig1, orig2, dv, panes = 2, highlight = true, connect = null, collapse = false;
+function initUI() {
+ if (value == null) return;
+ var target = document.getElementById("program-compare-code");
+ target.innerHTML = "";
+ dv = CodeMirror.MergeView(target, {
+ value: value,
+ origLeft: panes == 3 ? orig1 : null,
+ orig: orig2,
+ lineNumbers: true,
+ mode: program_name,
+ highlightDifferences: highlight,
+ connect: connect,
+ collapseIdentical: collapse
+ });
+}
+
+function toggleDifferences() {
+ dv.setShowDifferences(highlight = !highlight);
+}
+
+
+value = $("#program-src_1").text();
+orig1 = $("#program-src_1").text();
+orig2 = $("#program-src_2").text();
+initUI();
+
+
+function mergeViewHeight(mergeView) {
+ function editorHeight(editor) {
+ if (!editor) return 0;
+ return editor.getScrollInfo().height;
+ }
+ return Math.max(editorHeight(mergeView.leftOriginal()),
+ editorHeight(mergeView.editor()),
+ editorHeight(mergeView.rightOriginal()));
+}
+
+function resize(mergeView) {
+ var height = mergeViewHeight(mergeView);
+ for(;;) {
+ if (mergeView.leftOriginal())
+ mergeView.leftOriginal().setSize(null, height);
+ mergeView.editor().setSize(null, height);
+ if (mergeView.rightOriginal())
+ mergeView.rightOriginal().setSize(null, height);
+
+ var newHeight = mergeViewHeight(mergeView);
+ if (newHeight >= height) break;
+ else height = newHeight;
+ }
+ mergeView.wrap.style.height = height + "px";
+}
\ No newline at end of file
diff --git a/app/views/student_work/_evaluation_work.html.erb b/app/views/student_work/_evaluation_work.html.erb
index f97a8dd2d..1e96a2771 100644
--- a/app/views/student_work/_evaluation_work.html.erb
+++ b/app/views/student_work/_evaluation_work.html.erb
@@ -1,10 +1,10 @@
<% if @homework.homework_type != 3 %>
- <% is_my_work = student_work.user == User.current%>
+ <% is_my_work = student_work.user == User.current%>
<% else %>
- <% pro = @homework.student_work_projects.where(:user_id => User.current.id).first %>
- <% is_my_work = pro && pro.student_work_id == student_work.id%>
+ <% pro = @homework.student_work_projects.where(:user_id => User.current.id).first %>
+ <% is_my_work = pro && pro.student_work_id == student_work.id%>
<% end %>
-
diff --git a/app/views/student_work/_programing_work_show.html.erb b/app/views/student_work/_programing_work_show.html.erb
index 6009dfbb5..bc516f994 100644
--- a/app/views/student_work/_programing_work_show.html.erb
+++ b/app/views/student_work/_programing_work_show.html.erb
@@ -1,3 +1,4 @@
+
+ <%if @homework.homework_type == 2 %>
+ 代码查重
+ <% end %>
<%= select_tag(:student_work_in_group,options_for_select(course_group_list(@course),@group), {:class => "classSplit"}) unless course_group_list(@course).empty? %>
<% end%>
[ 显示作业信息 ]
@@ -45,6 +48,7 @@
<% end%>
\ No newline at end of file
diff --git a/app/views/student_work/show_allwork_test.html.erb b/app/views/student_work/show_allwork_test.html.erb
new file mode 100644
index 000000000..139597f9c
--- /dev/null
+++ b/app/views/student_work/show_allwork_test.html.erb
@@ -0,0 +1,2 @@
+
+
diff --git a/app/views/users/new_user_commit_homework.html.erb b/app/views/users/new_user_commit_homework.html.erb
index f8635194d..e84b7a95e 100644
--- a/app/views/users/new_user_commit_homework.html.erb
+++ b/app/views/users/new_user_commit_homework.html.erb
@@ -2,7 +2,6 @@
<%= javascript_include_tag "/assets/codemirror/codemirror_python_ruby_c" %>
<%= javascript_include_tag 'homework','baiduTemplate' %>
<%= stylesheet_link_tag "/assets/codemirror/codemirror" %>
-
<% end %>