From a42c79cea2cdb9448e32a25fb58a8245584795a5 Mon Sep 17 00:00:00 2001 From: z9hang Date: Thu, 12 Jun 2014 16:35:59 +0800 Subject: [PATCH 01/10] =?UTF-8?q?=20=E6=B7=BB=E5=8A=A0=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=8D=87=E7=BA=A7=E5=8A=9F=E8=83=BD=EF=BC=88=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E8=BE=BE=E5=88=B0=E4=B8=80=E5=AE=9A=E6=9D=A1=E4=BB=B6=E6=97=B6?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=8D=87=E7=BA=A7=EF=BC=8C=E6=9C=AA=E5=9C=A8?= =?UTF-8?q?=E5=89=8D=E7=AB=AF=E4=BD=93=E7=8E=B0=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/changeset.rb | 2 ++ app/models/praise_tread.rb | 2 ++ app/models/project_info.rb | 7 ++++++- app/models/user_score.rb | 20 ++++++++++---------- 4 files changed, 20 insertions(+), 11 deletions(-) diff --git a/app/models/changeset.rb b/app/models/changeset.rb index 93248850b..36f78d32f 100644 --- a/app/models/changeset.rb +++ b/app/models/changeset.rb @@ -302,6 +302,8 @@ class Changeset < ActiveRecord::Base def be_user_score if self.new_record? UserScore.project(:push_code, self.user, { changeset_id: self.id }) + #更新用户等级 + self.user.update_user_level end end diff --git a/app/models/praise_tread.rb b/app/models/praise_tread.rb index 8fc604671..fba48629f 100644 --- a/app/models/praise_tread.rb +++ b/app/models/praise_tread.rb @@ -37,6 +37,8 @@ class PraiseTread < ActiveRecord::Base obj = find_object_by_type_and_id(self.praise_tread_object_type,praise_tread_object_id) target_user = obj.author UserScore.skill(:praised_by_user, User.current,target_user,{ praise_tread_id: self.id }) + #更新用户等级 + target_user.update_user_level end end end diff --git a/app/models/project_info.rb b/app/models/project_info.rb index c6edab81c..4cb984b06 100644 --- a/app/models/project_info.rb +++ b/app/models/project_info.rb @@ -5,7 +5,7 @@ class ProjectInfo < ActiveRecord::Base belongs_to :user validates_presence_of :project_id, :user_id validates_uniqueness_of :project_id, :scope => :user_id - + after_save :update_user_level def self.manager? (user_id, project) for project_info in project.project_infos if project_info.user_id == user_id @@ -14,4 +14,9 @@ class ProjectInfo < ActiveRecord::Base end return false end + + #更新用户等级 + def update_user_level + self.user.update_user_level + end end diff --git a/app/models/user_score.rb b/app/models/user_score.rb index 288370845..3e052f110 100644 --- a/app/models/user_score.rb +++ b/app/models/user_score.rb @@ -110,11 +110,11 @@ class UserScore < ActiveRecord::Base current_user, target_user = get_users(current_user, target_user) user_score = target_user.user_score_attr case operate - when :followed_by # current_user 关注了target_user + when :followed_by # current_user 关注了target_user Add watcher user_score.influence = user_score.influence.to_i + 2 user_score.save Rails.logger.info "[UserScore#influence] ===> User: #{current_user} be followed. options => (#{options.to_s})" - when :cancel_followed # current_uer 取消了对 target_user的关注 + when :cancel_followed # current_uer 取消了对 target_user的关注 delete watcher user_score.influence = user_score.influence.to_i - 2 user_score.save Rails.logger.info "[UserScore#influence] ===> User: #{current_user} canceled followed. options => (#{options.to_s})" @@ -144,7 +144,7 @@ class UserScore < ActiveRecord::Base # when :treading # current_user 踩了 target_user 的帖子 # Rails.logger.info "[UserScore#skill] ===> User: #{current_user} treading #{target_user}'s posting. options => (#{options.to_s})" when :treaded_by_user # current_user 踩了 target_user 的帖子 - current_user_score.skill = current_user_score.skill.to_i - 2 #踩别人的帖子减2分 + current_user_score.skill = current_user_score.skill.to_i - 2 #踩别人的帖子减2分 add praise_tread current_user_score.save if current_user.id == target_user.id target_user.reload @@ -152,13 +152,13 @@ class UserScore < ActiveRecord::Base end level = current_user.get_level if level == 1 - target_user_score.skill = target_user_score.skill.to_i - 2 #帖子被一级会员踩-2分 + target_user_score.skill = target_user_score.skill.to_i - 2 #帖子被一级会员踩-2分 add praise_tread target_user_score.save elsif level == 2 - target_user_score.skill = target_user_score.skill.to_i - 4 #帖子被二级会员踩-4分 + target_user_score.skill = target_user_score.skill.to_i - 4 #帖子被二级会员踩-4分 add praise_tread target_user_score.save elsif level == 3 - target_user_score.skill = target_user_score.skill.to_i - 6 #帖子被三级会员踩-6分 + target_user_score.skill = target_user_score.skill.to_i - 6 #帖子被三级会员踩-6分 add praise_tread target_user_score.save end @@ -166,13 +166,13 @@ class UserScore < ActiveRecord::Base when :praised_by_user # current_user 顶了 target_user 的帖子 level = current_user.get_level if level == 1 - target_user_score.skill = target_user_score.skill.to_i + 4 #帖子被一级会员顶+4分 + target_user_score.skill = target_user_score.skill.to_i + 4 #帖子被一级会员顶+4分 add praise_tread target_user_score.save elsif level == 2 - target_user_score.skill = target_user_score.skill.to_i + 6 #帖子被二级会员顶+6分 + target_user_score.skill = target_user_score.skill.to_i + 6 #帖子被二级会员顶+6分 add praise_tread target_user_score.save elsif level == 3 - target_user_score.skill = target_user_score.skill.to_i + 8 #帖子被三级会员顶+8分 + target_user_score.skill = target_user_score.skill.to_i + 8 #帖子被三级会员顶+8分 add praise_tread target_user_score.save end @@ -200,7 +200,7 @@ class UserScore < ActiveRecord::Base user_score = current_user.try(:user_score_attr) return false if current_user.nil? case operate - when :push_code # current_user 提交了代码 + when :push_code # current_user 提交了代码 changeset user_score = user_score.active.to_i + 4 user_score.save Rails.logger.debug "[UserScore#project] ===> User: [#{current_user.id},#{current_user.name}] pushed code one time. options => (#{options.to_s})" From 4fb96bacdc7a3a94da15de7382181719f494626f Mon Sep 17 00:00:00 2001 From: z9hang Date: Thu, 12 Jun 2014 16:41:48 +0800 Subject: [PATCH 02/10] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=AD=89=E7=BA=A7=E6=96=B9=E6=B3=95=EF=BC=8C?= =?UTF-8?q?=E4=BF=9D=E8=AF=81=E6=AF=8F=E4=B8=AA=E7=94=A8=E6=88=B7=E5=8F=AA?= =?UTF-8?q?=E6=9C=89=E4=B8=80=E6=9D=A1=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/user.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/user.rb b/app/models/user.rb index b4aaea49f..448dcda14 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -890,7 +890,7 @@ class User < Principal #更新用户等级 - by zjc def update_user_level - user_level = UserLevels.new + user_level = self.level.nil? ? UserLevels.new : self.level user_level.user = self #判断user的等级 From f7fc4d06a2901c787aede124d7f31ac9913cba3d Mon Sep 17 00:00:00 2001 From: z9hang Date: Thu, 12 Jun 2014 16:46:54 +0800 Subject: [PATCH 03/10] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=B4=B4=E5=90=A7?= =?UTF-8?q?=E5=B8=96=E5=AD=90=E9=A1=B6=E8=B8=A9=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/memos/show.html.erb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/views/memos/show.html.erb b/app/views/memos/show.html.erb index 5f1fcdc65..06bdb5bf3 100644 --- a/app/views/memos/show.html.erb +++ b/app/views/memos/show.html.erb @@ -1,4 +1,6 @@
+ + <%= render :partial => "/praise_tread/praise_tread",:locals => {:obj => @memo,:show_flag => true,:user_id =>User.current.id}%>
<%= link_to image_tag(url_to_avatar(@memo.author), :class => "avatar"), user_path(@memo.author) %>

<%=link_to @memo.author.name, user_path(@memo.author) %>

From e8d561b4bae29b139c2b13ddd33246f450049a5a Mon Sep 17 00:00:00 2001 From: z9hang Date: Thu, 12 Jun 2014 17:39:44 +0800 Subject: [PATCH 04/10] =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E8=B4=B4=E5=90=A7?= =?UTF-8?q?=E9=A1=B6=E8=B8=A9=E5=8A=A0=E5=88=86=E6=97=A0=E6=95=88=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/praise_tread.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/praise_tread.rb b/app/models/praise_tread.rb index fba48629f..577391ae9 100644 --- a/app/models/praise_tread.rb +++ b/app/models/praise_tread.rb @@ -33,7 +33,7 @@ class PraiseTread < ActiveRecord::Base target_user = obj.author UserScore.skill(:treaded_by_user, User.current,target_user, { praise_tread_id: self.id }) #顶贴吧或讨论区帖子 - elsif self.new_record? && self.praise_or_tread == 1 && (self.praise_tread_object_id == 'Memo' || self.praise_tread_object_type == 'Message') + elsif self.new_record? && self.praise_or_tread == 1 && (self.praise_tread_object_type == 'Memo' || self.praise_tread_object_type == 'Message') obj = find_object_by_type_and_id(self.praise_tread_object_type,praise_tread_object_id) target_user = obj.author UserScore.skill(:praised_by_user, User.current,target_user,{ praise_tread_id: self.id }) From eff2da732b250f3483cf5940f79f6693a605d22a Mon Sep 17 00:00:00 2001 From: yanxd Date: Fri, 13 Jun 2014 12:02:29 +0800 Subject: [PATCH 05/10] home --- app/controllers/welcome_controller.rb | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/app/controllers/welcome_controller.rb b/app/controllers/welcome_controller.rb index c92f39d34..c20dfa36d 100644 --- a/app/controllers/welcome_controller.rb +++ b/app/controllers/welcome_controller.rb @@ -18,7 +18,7 @@ class WelcomeController < ApplicationController caches_action :robots # before_filter :fake, :only => [:index, :course] - before_filter :entry_select_course, :entry_select_contest, :entry_select_user, :only => [:index] + before_filter :entry_select, :only => [:index] def index @@ -92,9 +92,27 @@ class WelcomeController < ApplicationController private + def entry_select + url = request.original_url + if url.include?("course.trustie.net") + render :course + return 0 + elsif url.include?("contest.trustie.net") + contest + render :contest + return 0 + elsif url.include?("user.trustie.net") + redirect_to(:controller => "users", :action => "index") + end + + + end + # 判断网站的入口,是课程 course 则跳过index去渲染 course 方法 def entry_select_course - (course() and render :course and return 0) if request.original_url.match(/course\.trustie\.net/) + if request.original_url.match(/course\.trustie\.net/) + (course() and render :course and return 0) + end end def entry_select_contest From eae391807412d4ebcc9bf1d6060fcc35d89d4756 Mon Sep 17 00:00:00 2001 From: z9hang Date: Fri, 13 Jun 2014 16:09:43 +0800 Subject: [PATCH 06/10] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E5=BE=97=E6=95=B0=E7=BB=9F=E8=AE=A1=E5=8A=9F=E8=83=BD=20?= =?UTF-8?q?=E5=B8=96=E5=AD=90=E5=86=85=E7=9A=84=E8=B8=A9=E9=A1=B6=E6=A8=AA?= =?UTF-8?q?=E6=8E=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/praise_tread_controller.rb | 2 + app/models/praise_tread.rb | 6 +- app/views/contests/show_contest.html.erb | 2 +- app/views/issues/_list.html.erb | 2 +- app/views/issues/show.html.erb | 2 +- app/views/memos/show.html.erb | 2 +- app/views/messages/show.html.erb | 2 +- app/views/praise_tread/_praise_tread.html.erb | 148 ++++++++++++------ app/views/praise_tread/praise_minus.js.erb | 2 +- app/views/praise_tread/praise_plus.js.erb | 2 +- app/views/praise_tread/tread_plus.js.erb | 2 +- lib/tasks/userscore.rake | 107 +++++++++++-- public/stylesheets/application.css | 2 +- 13 files changed, 208 insertions(+), 73 deletions(-) diff --git a/app/controllers/praise_tread_controller.rb b/app/controllers/praise_tread_controller.rb index 53c74519b..97cf3cdac 100644 --- a/app/controllers/praise_tread_controller.rb +++ b/app/controllers/praise_tread_controller.rb @@ -9,6 +9,7 @@ class PraiseTreadController < ApplicationController if request.get? @obj_id = params[:obj_id] @obj_type = params[:obj_type] + @horizontal = params[:horizontal] @obj = find_object_by_type_and_id(@obj_type,@obj_id) praise_tread_plus(@obj_type,@obj_id,1) end @@ -44,6 +45,7 @@ class PraiseTreadController < ApplicationController if request.get? @obj_id = params[:obj_id] @obj_type = params[:obj_type] + @horizontal = params[:horizontal] @obj = find_object_by_type_and_id(@obj_type,@obj_id) praise_tread_plus(@obj_type,@obj_id,0) end diff --git a/app/models/praise_tread.rb b/app/models/praise_tread.rb index 577391ae9..11d68157b 100644 --- a/app/models/praise_tread.rb +++ b/app/models/praise_tread.rb @@ -4,7 +4,7 @@ class PraiseTread < ActiveRecord::Base belongs_to :praise_tread_object, polymorphic: true before_save :be_user_score - def find_object_by_type_and_id(type,id) + def self.find_object_by_type_and_id(type,id) @obj = nil case type when 'User' @@ -29,12 +29,12 @@ class PraiseTread < ActiveRecord::Base def be_user_score #踩贴吧或讨论区帖子 if self.new_record? && self.praise_or_tread == 0 && (self.praise_tread_object_type == 'Memo' || self.praise_tread_object_type == 'Message') - obj = find_object_by_type_and_id(self.praise_tread_object_type,praise_tread_object_id) + obj = PraiseTread.find_object_by_type_and_id(self.praise_tread_object_type,praise_tread_object_id) target_user = obj.author UserScore.skill(:treaded_by_user, User.current,target_user, { praise_tread_id: self.id }) #顶贴吧或讨论区帖子 elsif self.new_record? && self.praise_or_tread == 1 && (self.praise_tread_object_type == 'Memo' || self.praise_tread_object_type == 'Message') - obj = find_object_by_type_and_id(self.praise_tread_object_type,praise_tread_object_id) + obj = PraiseTread.find_object_by_type_and_id(self.praise_tread_object_type,praise_tread_object_id) target_user = obj.author UserScore.skill(:praised_by_user, User.current,target_user,{ praise_tread_id: self.id }) #更新用户等级 diff --git a/app/views/contests/show_contest.html.erb b/app/views/contests/show_contest.html.erb index 67414b0c8..c379bc668 100644 --- a/app/views/contests/show_contest.html.erb +++ b/app/views/contests/show_contest.html.erb @@ -15,7 +15,7 @@
<%= render :partial => "/praise_tread/praise_tread", - :locals => {:obj => @contest,:show_flag => true,:user_id =>User.current.id}%> + :locals => {:obj => @contest,:show_flag => true,:user_id =>User.current.id,:horizontal => false}%>
diff --git a/app/views/issues/_list.html.erb b/app/views/issues/_list.html.erb index 2b17b4fb1..dd3487258 100644 --- a/app/views/issues/_list.html.erb +++ b/app/views/issues/_list.html.erb @@ -10,7 +10,7 @@ <% column_content = ( query.inline_columns.map {|column| "#{column_content_new(column, issue)}"}) %> - <%= render :partial => "/praise_tread/praise_tread",:locals => {:obj => issue,:show_flag => true,:user_id =>User.current.id}%> + <%= render :partial => "/praise_tread/praise_tread",:locals => {:obj => issue,:show_flag => true,:user_id =>User.current.id,:horizontal => false}%> <% if issue.tracker_id == 1 %> <%= image_tag("/images/task.png", :class => "img-tag-issues") %> diff --git a/app/views/issues/show.html.erb b/app/views/issues/show.html.erb index d261957c6..8e6ad803c 100644 --- a/app/views/issues/show.html.erb +++ b/app/views/issues/show.html.erb @@ -33,7 +33,7 @@ - <%= render :partial => "/praise_tread/praise_tread",:locals => {:obj => @issue,:show_flag => true,:user_id =>User.current.id}%> + <%= render :partial => "/praise_tread/praise_tread",:locals => {:obj => @issue,:show_flag => true,:user_id =>User.current.id,:horizontal => false}%>

diff --git a/app/views/memos/show.html.erb b/app/views/memos/show.html.erb index 06bdb5bf3..5ffcedacc 100644 --- a/app/views/memos/show.html.erb +++ b/app/views/memos/show.html.erb @@ -1,6 +1,6 @@

- <%= render :partial => "/praise_tread/praise_tread",:locals => {:obj => @memo,:show_flag => true,:user_id =>User.current.id}%> + <%= render :partial => "/praise_tread/praise_tread",:locals => {:obj => @memo,:show_flag => true,:user_id =>User.current.id,:horizontal => true}%>
<%= link_to image_tag(url_to_avatar(@memo.author), :class => "avatar"), user_path(@memo.author) %>

<%=link_to @memo.author.name, user_path(@memo.author) %>

diff --git a/app/views/messages/show.html.erb b/app/views/messages/show.html.erb index 92b62cb60..aeae4c7ab 100644 --- a/app/views/messages/show.html.erb +++ b/app/views/messages/show.html.erb @@ -61,7 +61,7 @@
- <%= render :partial => "/praise_tread/praise_tread",:locals => {:obj => @topic,:show_flag => true,:user_id =>User.current.id}%> + <%= render :partial => "/praise_tread/praise_tread",:locals => {:obj => @topic,:show_flag => true,:user_id =>User.current.id,:horizontal => true}%>
<%= watcher_link(@topic, User.current) %> <%= link_to( diff --git a/app/views/praise_tread/_praise_tread.html.erb b/app/views/praise_tread/_praise_tread.html.erb index 5fee2a593..8d2545f91 100644 --- a/app/views/praise_tread/_praise_tread.html.erb +++ b/app/views/praise_tread/_praise_tread.html.erb @@ -1,57 +1,101 @@ <% if User.current.logged? %> -
+ <% if horizontal %> + +
- <% @is_valuate = is_praise_or_tread(obj,user_id)%> - <% if @is_valuate.size > 0 %> - <% @flag = @is_valuate.first.praise_or_tread %> - <% if @flag == 1 %> - - - - - - - - - - - -
<%= image_tag "/images/praise_tread/praise_false.png" , weight:"22px", height:"22px",:title => l(:label_issue_praise_over) %>
<%= get_praise_num(obj)%>
<%= image_tag "/images/praise_tread/tread_false.png",weight:"22px", height:"22px",:title => l(:label_issue_appraise_over) %>
- - <% elsif @flag == 0 %> - - - - - - - - - - - - -
<%= image_tag "/images/praise_tread/praise_false.png",weight:"22px", height:"22px", :title => l(:label_issue_appraise_over) %>
<%= get_praise_num(obj)%>
<%= image_tag "/images/praise_tread/tread_false.png",weight:"22px", height:"22px",:title => l(:label_issue_tread_over) %>
- <% end %> + <% @is_valuate = is_praise_or_tread(obj,user_id)%> + <% if @is_valuate.size > 0 %> + <% @flag = @is_valuate.first.praise_or_tread %> + <% if @flag == 1 %> + + + + + + +
<%= image_tag "/images/praise_tread/praise_false.png" , weight:"22px", height:"22px",:title => l(:label_issue_praise_over) %><%= get_praise_num(obj)%><%= image_tag "/images/praise_tread/tread_false.png",weight:"22px", height:"22px",:title => l(:label_issue_appraise_over) %>
- <% else %> - - - - - - - - - - - -
<%= link_to image_tag("/images/praise_tread/praise_true.png",weight:"22px", height:"22px",:title => l(:label_issue_praise)), - :controller=>"praise_tread",:action=>"praise_plus",:remote=>true,:obj_id => obj.id,:obj_type => obj.class%>
<%= get_praise_num(obj)%>
<%= link_to image_tag("/images/praise_tread/tread_true.png",weight:"22px", height:"22px",:title => l(:label_issue_tread)),:controller=>"praise_tread", - :action=>"tread_plus",:remote=>true,:obj_id => obj.id,:obj_type => obj.class %>
- - <% end %> -
+ <% elsif @flag == 0 %> -<% end %> + + + + + + +
<%= image_tag "/images/praise_tread/praise_false.png",weight:"22px", height:"22px", :title => l(:label_issue_appraise_over) %><%= get_praise_num(obj)%><%= image_tag "/images/praise_tread/tread_false.png",weight:"22px", height:"22px",:title => l(:label_issue_tread_over) %>
+ <% end %> + + <% else %> + + + + + + + +
<%= link_to image_tag("/images/praise_tread/praise_true.png",weight:"22px", height:"22px",:title => l(:label_issue_praise)), + :controller=>"praise_tread",:action=>"praise_plus",:remote=>true,:obj_id => obj.id,:obj_type => obj.class,:horizontal => horizontal %> <%= get_praise_num(obj)%> <%= link_to image_tag("/images/praise_tread/tread_true.png",weight:"22px", height:"22px",:title => l(:label_issue_tread)),:controller=>"praise_tread", + :action=>"tread_plus",:remote=>true,:obj_id => obj.id,:obj_type => obj.class,:horizontal => horizontal %>
+ + <% end %> +
+ + <% else %> + +
+ + <% @is_valuate = is_praise_or_tread(obj,user_id)%> + <% if @is_valuate.size > 0 %> + <% @flag = @is_valuate.first.praise_or_tread %> + <% if @flag == 1 %> + + + + + + + + + + + +
<%= image_tag "/images/praise_tread/praise_false.png" , weight:"22px", height:"22px",:title => l(:label_issue_praise_over) %>
<%= get_praise_num(obj)%>
<%= image_tag "/images/praise_tread/tread_false.png",weight:"22px", height:"22px",:title => l(:label_issue_appraise_over) %>
+ + <% elsif @flag == 0 %> + + + + + + + + + + + + +
<%= image_tag "/images/praise_tread/praise_false.png",weight:"22px", height:"22px", :title => l(:label_issue_appraise_over) %>
<%= get_praise_num(obj)%>
<%= image_tag "/images/praise_tread/tread_false.png",weight:"22px", height:"22px",:title => l(:label_issue_tread_over) %>
+ <% end %> + + <% else %> + + + + + + + + + + + +
<%= link_to image_tag("/images/praise_tread/praise_true.png",weight:"22px", height:"22px",:title => l(:label_issue_praise)), + :controller=>"praise_tread",:action=>"praise_plus",:remote=>true,:obj_id => obj.id,:obj_type => obj.class ,:horizontal => horizontal %>
<%= get_praise_num(obj)%>
<%= link_to image_tag("/images/praise_tread/tread_true.png",weight:"22px", height:"22px",:title => l(:label_issue_tread)),:controller=>"praise_tread", + :action=>"tread_plus",:remote=>true,:obj_id => obj.id,:obj_type => obj.class ,:horizontal => horizontal %>
+ + <% end %> +
+ <% end %> + <% end %> diff --git a/app/views/praise_tread/praise_minus.js.erb b/app/views/praise_tread/praise_minus.js.erb index 74f7d6bfe..ab298ba2e 100644 --- a/app/views/praise_tread/praise_minus.js.erb +++ b/app/views/praise_tread/praise_minus.js.erb @@ -1,3 +1,3 @@ $('#praise_tread').html('<%= j( -render :partial => "/praise_tread/praise_tread",:locals => {:obj => @obj,:show_flag => false,:user_id => User.current.id} +render :partial => "/praise_tread/praise_tread",:locals => {:obj => @obj,:show_flag => false,:user_id => User.current.id,:horizontal=>@horizontal} )%>'); diff --git a/app/views/praise_tread/praise_plus.js.erb b/app/views/praise_tread/praise_plus.js.erb index c2584dcd2..d56ff0e68 100644 --- a/app/views/praise_tread/praise_plus.js.erb +++ b/app/views/praise_tread/praise_plus.js.erb @@ -1,4 +1,4 @@ $('#praise_tread_<%= @obj.id %>').html('<%= j( -render :partial => "/praise_tread/praise_tread",:locals => {:obj => @obj,:user_id => User.current.id} +render :partial => "/praise_tread/praise_tread",:locals => {:obj => @obj,:user_id => User.current.id,:horizontal => @horizontal} )%>'); diff --git a/app/views/praise_tread/tread_plus.js.erb b/app/views/praise_tread/tread_plus.js.erb index 89efec2dc..1104440ec 100644 --- a/app/views/praise_tread/tread_plus.js.erb +++ b/app/views/praise_tread/tread_plus.js.erb @@ -1,5 +1,5 @@ $('#praise_tread_<%= @obj.id %>').html('<%= j( -render :partial => "/praise_tread/praise_tread",:locals => {:obj => @obj,:user_id => User.current.id} +render :partial => "/praise_tread/praise_tread",:locals => {:obj => @obj,:user_id => User.current.id,:horizontal => @horizontal} )%>'); diff --git a/lib/tasks/userscore.rake b/lib/tasks/userscore.rake index eefca6d7a..144b9c9b9 100644 --- a/lib/tasks/userscore.rake +++ b/lib/tasks/userscore.rake @@ -14,47 +14,136 @@ namespace :user_score do Message.includes(:author).where("parent_id IS NULL").all.each do |m| users[m.author.id] = users[m.author.id].to_i + 2 end - puts ":post_message calculate Completed. users count: #{users.count}" + puts ":post_message calculate Completed. collaboration users count: #{users.count}" # 对缺陷的留言 Journal.includes(:user).all.each do |j| users[j.user.id] = users[j.user.id].to_i + 1 end - puts ":post_issue calculate Completed. users count: #{users.count}" + puts ":post_issue calculate Completed. collaboration users count: #{users.count}" # 更改一次缺陷状态 Journal.joins(:details, :user).where("#{JournalDetail.table_name}.prop_key = 'status_id'").each do |j| users[j.user.id] = users[j.user.id].to_i + 1 end - puts ":change_issue_status calculate Completed. users count: #{users.count}" + puts ":change_issue_status calculate Completed. collaboration users count: #{users.count}" # 对留言的回复 JournalsForMessage.includes(:user).where("m_parent_id IS NOT NULL").each do |jfm| users[jfm.user.id] = users[jfm.user.id].to_i + 1 end - puts ":reply_message calculate Completed. users count: #{users.count}" + puts ":reply_message calculate Completed. collaboration users count: #{users.count}" # 对帖子的回复 Message.includes(:author).where("parent_id IS NOT NULL").each do |m| users[m.author.id] = users[m.author.id].to_i + 1 end - puts ":reply_posting calculate Completed. users count: #{users.count}" + puts ":reply_posting calculate Completed. collaboration users count: #{users.count}" users.each do |user_id, score| UserScore.find_or_create_by_user_id(user_id).update_attribute(:collaboration, score) end - puts "=== UserScore#collaboration calculate Completed. users count: #{users.count}" + puts "=== UserScore#collaboration calculate Completed. collaboration users count: #{users.count}" users.clear # influence 影响力得分 - # ... + #关注 + users_influence = {} + Watcher.includes(:watchable).where("watchable_type = 'Principal'").all.each do |w| + users_influence[w.watchable.id] = users_influence[w.watchable.id].to_i + 2 + end + puts ":followed_by calculate Completed. influence users count: #{users_influence.count}" + users_influence.each do |user_id, score| + UserScore.find_or_create_by_user_id(user_id).update_attribute(:influence, score) + end + puts "=== UserScore#influence calculate Completed. influence users count: #{users_influence.count}" # skill 技术得分 - # ... + # 顶踩帖 + users_skill = {} + PraiseTread.where("praise_tread_object_type = 'Memo' || praise_tread_object_type = 'Message'").all.each do |pt| + obj = PraiseTread.find_object_by_type_and_id(pt.praise_tread_object_type, pt.praise_tread_object_id) + if obj.nil? + next + end + target_user = obj.author + level = pt.user.get_level + if pt.praise_or_tread == 0 + #踩帖 + users_skill[pt.user.id] = users_skill[pt.user.id].to_i - 2 #踩别人帖-2分 + if level == 1 + users_skill[target_user.id] = users_skill[target_user.id].to_i - 2 #帖子被一级会员踩-2分 add praise_tread + elsif level == 2 + users_skill[target_user.id] = users_skill[target_user.id].to_i - 4 #帖子被二级会员踩-4分 add praise_tread + elsif level == 3 + users_skill[target_user.id] = users_skill[target_user.id].to_i - 6 #帖子被三级会员踩-6分 add praise_tread + end + elsif pt.praise_or_tread == 1 + #顶贴 + if level == 1 + users_skill[target_user.id] = users_skill[target_user.id].to_i + 4 #帖子被一级会员顶+4分 add praise_tread + elsif level == 2 + users_skill[target_user.id] = users_skill[target_user.id].to_i + 6 #帖子被二级会员顶+6分 add praise_tread + elsif level == 3 + users_skill[target_user.id] = users_skill[target_user.id].to_i + 8 #帖子被三级会员顶+8分 add praise_tread + end + end + end + puts ":praised_by_user and :treaded_by_user calculate Completed. skill users count: #{users_skill.count}" + users_skill.each do |user_id, score| + UserScore.find_or_create_by_user_id(user_id).update_attribute(:skill, score) + end + puts "=== UserScore#skill calculate Completed. skill users count: #{users_skill.count}" # active 项目贡献得分 - # ... + users_active = {} + # 提交代码 + Changeset.includes(:user).all.each do |changeset| + if changeset.user.nil? + next + end + users_active[changeset.user.id] = users_active[changeset.user.id].to_i + 4 + end + puts ":push_code calculate Completed. active users count: #{users_active.count}" + #提交文档 + Document.includes(:user).all.each do |document| + if document.user.nil? + next + end + users_active[document.user.id] = users_active[document.user.id].to_i + 4 + end + puts ":push_document calculate Completed. active users count: #{users_active.count}" + #提交附件 + Attachment.includes(:author).all.each do |attachment| + #if attachment.container_id_changed? + # type = attachment.container_type + # types = %w|Document News Version Project Issue Message WikiPage| + # if types.include?(type) + if attachment.author.nil? + next + end + users_active[attachment.author.id] = users_active[attachment.author.id].to_i + 4 + # end + #end + end + puts ":push_file calculate Completed. active users count: #{users_active.count}" + #更新完成度 + Journal.joins(:details, :user).where("#{JournalDetail.table_name}.prop_key = 'done_ratio'").each do |j| + users_active[j.user.id] = users_active[j.user.id].to_i + 2 + end + puts ":update_issue_ratio calculate Completed. active users count: #{users_active.count}" + #发布缺陷 + Issue.includes(:author).all.each do |issue| + users_active[issue.author.id] = users_active[issue.author.id].to_i + 4 + end + puts ":post_issue calculate Completed. active users count: #{users_active.count}" + + users_active.each do |user_id, score| + UserScore.find_or_create_by_user_id(user_id).update_attribute(:active, score) + end + puts "=== UserScore#active calculate Completed. active users count: #{users_active.count}" + end end diff --git a/public/stylesheets/application.css b/public/stylesheets/application.css index f5a21da5f..6bf8fc2da 100644 --- a/public/stylesheets/application.css +++ b/public/stylesheets/application.css @@ -1449,7 +1449,7 @@ div.square { overflow: hidden; width: .6em; height: .6em; } -.contextual {float:right; white-space: nowrap; line-height:1.4em;/*margin-top:5px;*/ padding-left: 10px; font-size:0.9em;} +.contextual {float:right; white-space: nowrap; line-height:1.4em;/*margin-top:5px;*/ padding-left: 10px;padding-right: 10px;padding-top: 5px; font-size:0.9em;} .contextual input, .contextual select {font-size:0.9em;} .message .contextual { margin-top: 0; } From 47e6c3eeddaed94b77575b461a6245b2b685597c Mon Sep 17 00:00:00 2001 From: yanxd Date: Mon, 16 Jun 2014 09:19:21 +0800 Subject: [PATCH 07/10] home cache --- app/helpers/welcome_helper.rb | 27 +++++++++++++++++++++++++++ app/views/welcome/index.html.erb | 6 +++--- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/app/helpers/welcome_helper.rb b/app/helpers/welcome_helper.rb index d35fd8275..62cb451cc 100644 --- a/app/helpers/welcome_helper.rb +++ b/app/helpers/welcome_helper.rb @@ -22,6 +22,33 @@ module WelcomeHelper include CoursesHelper include ProjectsHelper + def get_timestamp(obj) + if obj.respond_to? :updated_on + :updated_on + elsif obj.respond_to? :updated_at + :updated_at + elsif obj.respond_to? :created_on + :created_on + elsif obj.respond_to? :created_at + :created_at + else + Time.now.to_i.to_s.to_sym + end + end + + def cache_key_for_project(obj) + timestamp = get_timestamp(obj) + "welcome_index_project_ul_#{obj.class}_li_#{obj.id}_#{obj.__send__ timestamp}" + end + def cache_key_for_event(obj) + timestamp = get_timestamp(obj) + "welcome_index_event_ul_#{obj.class}_li_#{obj.id}_#{obj.__send__ timestamp}" + end + def cache_key_for_topic(obj) + timestamp = get_timestamp(obj) + "welcome_index_topic_ul_#{obj.class}_li_#{obj.id}_#{obj.__send__ timestamp}" + end + def welcome_join_in_course(project, user) if(user.logged? && !(course_endTime_timeout? project) && diff --git a/app/views/welcome/index.html.erb b/app/views/welcome/index.html.erb index 08d7d13d4..79001a3f5 100644 --- a/app/views/welcome/index.html.erb +++ b/app/views/welcome/index.html.erb @@ -54,7 +54,7 @@
    <% projects = find_miracle_project(10, 3) %> <% projects.map do |project| %> - <% cache "welcome_index_hotProject_ul_project_#{project.id}_li" do %> + <% cache cache_key_for_project(project) do %>
  • <%= image_tag(get_project_avatar(project), :class => "avatar-4") %> @@ -88,7 +88,7 @@
    <%activities = find_all_activities%> <% activities.each do |event| %> - <% cache "welcome_index_userActivity_ul_event_#{event.class}_#{event.id}_li" do %> + <% cache cache_key_for_event(event) do %>
  • <%= image_tag url_to_avatar(event.event_author), :class => "avatar-3" %> @@ -119,7 +119,7 @@
    <% topics = find_new_forum_topics(7) %> <% topics.includes(:forum, :last_reply, :author).each do |topic|%> - <% cache "welcome_index_memosActivity_ul_topic_#{topic.id}_li" do %> + <% cache cache_key_for_topic(topic) do %>
  • <%= link_to '['+topic.forum.name + ']',forum_path(topic.forum),:class => 'memo_Bar_title' %><%= link_to topic.subject.truncate(30, omission: '...'), topic.event_url,title: topic.subject %> From d2b5560d5ea45c9608f29b76cfbf764addbedc68 Mon Sep 17 00:00:00 2001 From: yanxd Date: Mon, 16 Jun 2014 10:54:52 +0800 Subject: [PATCH 08/10] =?UTF-8?q?userscore=20=E4=BA=8B=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/tasks/userscore.rake | 80 +++++++++++++++++++++++----------------- 1 file changed, 47 insertions(+), 33 deletions(-) diff --git a/lib/tasks/userscore.rake b/lib/tasks/userscore.rake index 144b9c9b9..9bc54f2c6 100644 --- a/lib/tasks/userscore.rake +++ b/lib/tasks/userscore.rake @@ -4,9 +4,10 @@ task :user_score do end namespace :user_score do - desc "calculating user score" - # Rails.env = 'production' - task :calculate => :environment do + desc "calculating user score" + task :calculate => :environment do + puts "truncating table...#{Rails.env}" + UserScore.destroy_all puts "loading..." # collaboration 协同得分 users = {} @@ -40,10 +41,13 @@ namespace :user_score do end puts ":reply_posting calculate Completed. collaboration users count: #{users.count}" - users.each do |user_id, score| - UserScore.find_or_create_by_user_id(user_id).update_attribute(:collaboration, score) + UserScore.transaction do + users.each do |user_id, score| + UserScore.find_or_create_by_user_id(user_id).update_attribute(:collaboration, score) + end end puts "=== UserScore#collaboration calculate Completed. collaboration users count: #{users.count}" + puts "" users.clear @@ -55,23 +59,26 @@ namespace :user_score do end puts ":followed_by calculate Completed. influence users count: #{users_influence.count}" - users_influence.each do |user_id, score| - UserScore.find_or_create_by_user_id(user_id).update_attribute(:influence, score) + UserScore.transaction do + users_influence.each do |user_id, score| + UserScore.find_or_create_by_user_id(user_id).update_attribute(:influence, score) + end end puts "=== UserScore#influence calculate Completed. influence users count: #{users_influence.count}" + puts "" # skill 技术得分 # 顶踩帖 users_skill = {} PraiseTread.where("praise_tread_object_type = 'Memo' || praise_tread_object_type = 'Message'").all.each do |pt| obj = PraiseTread.find_object_by_type_and_id(pt.praise_tread_object_type, pt.praise_tread_object_id) if obj.nil? - next + next end target_user = obj.author level = pt.user.get_level if pt.praise_or_tread == 0 - #踩帖 - users_skill[pt.user.id] = users_skill[pt.user.id].to_i - 2 #踩别人帖-2分 + #踩帖 + users_skill[pt.user.id] = users_skill[pt.user.id].to_i - 2 #踩别人帖-2分 if level == 1 users_skill[target_user.id] = users_skill[target_user.id].to_i - 2 #帖子被一级会员踩-2分 add praise_tread elsif level == 2 @@ -80,7 +87,7 @@ namespace :user_score do users_skill[target_user.id] = users_skill[target_user.id].to_i - 6 #帖子被三级会员踩-6分 add praise_tread end elsif pt.praise_or_tread == 1 - #顶贴 + #顶贴 if level == 1 users_skill[target_user.id] = users_skill[target_user.id].to_i + 4 #帖子被一级会员顶+4分 add praise_tread elsif level == 2 @@ -91,11 +98,14 @@ namespace :user_score do end end puts ":praised_by_user and :treaded_by_user calculate Completed. skill users count: #{users_skill.count}" + UserScore.transaction do users_skill.each do |user_id, score| UserScore.find_or_create_by_user_id(user_id).update_attribute(:skill, score) end - puts "=== UserScore#skill calculate Completed. skill users count: #{users_skill.count}" - + end + puts "=== UserScore#skill calculate Completed. skill users count: #{users_skill.count}" + puts "" + # active 项目贡献得分 users_active = {} # 提交代码 @@ -115,20 +125,20 @@ namespace :user_score do end puts ":push_document calculate Completed. active users count: #{users_active.count}" #提交附件 - Attachment.includes(:author).all.each do |attachment| - #if attachment.container_id_changed? - # type = attachment.container_type - # types = %w|Document News Version Project Issue Message WikiPage| - # if types.include?(type) - if attachment.author.nil? - next - end - users_active[attachment.author.id] = users_active[attachment.author.id].to_i + 4 - # end - #end - end - puts ":push_file calculate Completed. active users count: #{users_active.count}" - #更新完成度 + Attachment.includes(:author).all.each do |attachment| + #if attachment.container_id_changed? + # type = attachment.container_type + # types = %w|Document News Version Project Issue Message WikiPage| + # if types.include?(type) + if attachment.author.nil? + next + end + users_active[attachment.author.id] = users_active[attachment.author.id].to_i + 4 + # end + #end + end + puts ":push_file calculate Completed. active users count: #{users_active.count}" + #更新完成度 Journal.joins(:details, :user).where("#{JournalDetail.table_name}.prop_key = 'done_ratio'").each do |j| users_active[j.user.id] = users_active[j.user.id].to_i + 2 end @@ -139,10 +149,14 @@ namespace :user_score do end puts ":post_issue calculate Completed. active users count: #{users_active.count}" - users_active.each do |user_id, score| - UserScore.find_or_create_by_user_id(user_id).update_attribute(:active, score) + + UserScore.transaction do + users_active.each do |user_id, score| + UserScore.find_or_create_by_user_id(user_id).update_attribute(:active, score) + end end puts "=== UserScore#active calculate Completed. active users count: #{users_active.count}" + puts "" end end @@ -151,11 +165,11 @@ desc "create tmp file, to test" file 'tmp/test.yml' do require 'yaml' var = { - :name => "name", - :age => "age", - :agent => "agent" + :name => "name", + :age => "age", + :agent => "agent" } File.open('tmp/test.yml', 'w') do |f| - f.write YAML.dump({'conf' => var }) + f.write YAML.dump({'conf' => var}) end end \ No newline at end of file From 99e5644c4efc2134fa99df0f4284309d7b085e19 Mon Sep 17 00:00:00 2001 From: nwb Date: Mon, 16 Jun 2014 17:45:14 +0800 Subject: [PATCH 09/10] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E7=9A=84=E6=A0=87=E7=AD=BE=E7=BC=96=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile.lock | 12 ------------ app/views/attachments/upload.js.erb | 2 -- 2 files changed, 14 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index efc236e7e..e6ee7da71 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -74,19 +74,11 @@ GEM mail (2.5.4) mime-types (~> 1.16) treetop (~> 1.4.8) - method_source (0.8.2) mime-types (1.23) multi_json (1.7.6) mysql2 (0.3.11-x86-mingw32) net-ldap (0.3.1) polyglot (0.3.3) - pry (0.9.12.6-x86-mingw32) - coderay (~> 1.0) - method_source (~> 0.8) - slop (~> 3.4) - win32console (~> 1.3) - pry-nav (0.2.3) - pry (~> 0.9.10) rack (1.4.5) rack-cache (1.2) rack (>= 0.4) @@ -121,7 +113,6 @@ GEM railties (~> 3.2.0) sass (>= 3.1.10) tilt (~> 1.3) - slop (3.5.0) sprockets (2.2.2) hike (~> 1.2) multi_json (~> 1.0) @@ -136,7 +127,6 @@ GEM uglifier (1.0.3) execjs (>= 0.3.0) multi_json (>= 1.0.2) - win32console (1.3.2-x86-mingw32) PLATFORMS x86-mingw32 @@ -154,8 +144,6 @@ DEPENDENCIES jquery-rails (~> 2.0.2) mysql2 (~> 0.3.11) net-ldap (~> 0.3.1) - pry - pry-nav rack-mini-profiler! rack-openid rails (= 3.2.13) diff --git a/app/views/attachments/upload.js.erb b/app/views/attachments/upload.js.erb index 63600619b..82b79bb63 100644 --- a/app/views/attachments/upload.js.erb +++ b/app/views/attachments/upload.js.erb @@ -11,6 +11,4 @@ fileSpan.find('a.remove-upload') "href": '<%= j attachment_path(@attachment, :attachment_id => params[:attachment_id], :format => 'js') %>' }) .off('click'); -var divattach = fileSpan.find('div.div_attachments'); -divattach.html('<%= j(render :partial => 'tags/tagEx', :locals => {:obj => @attachment, :object_flag => "6"})%>'); <% end %> From 099577fb5995aee1ef58c1b509590d09af2c102b Mon Sep 17 00:00:00 2001 From: yanxd Date: Mon, 16 Jun 2014 17:51:51 +0800 Subject: [PATCH 10/10] remove all icon display --- public/stylesheets/application.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/stylesheets/application.css b/public/stylesheets/application.css index 1952334e2..2df42c19a 100644 --- a/public/stylesheets/application.css +++ b/public/stylesheets/application.css @@ -1847,7 +1847,7 @@ a.remove-upload:hover {text-decoration:none !important;} /*gcm upload file count and deleteall*/ #upload_file_count #count {color:red; font-size:1.5em;} -span.add_attachment .remove_all {background:none;background: url(../images/delete.png) no-repeat 1px 50%; width:1px; display:inline-block;position:absolute;right:61px;text-decoration:none;} +span.add_attachment .remove_all {background:none;background: url(../images/delete.png) no-repeat 1px 50%; width:1px; display:inline-block;position:absolute;right:10%;text-decoration:none;} div.fileover { background-color: lavender; }