From 5bc20cf6afd59cad05dc22aa2b46e685e3456303 Mon Sep 17 00:00:00 2001 From: yanxd Date: Mon, 9 Jun 2014 13:52:21 +0800 Subject: [PATCH 1/2] push code, add score. --- app/models/changeset.rb | 13 +++++++++++++ app/models/user_score.rb | 5 ++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/app/models/changeset.rb b/app/models/changeset.rb index e3e7ac705..93248850b 100644 --- a/app/models/changeset.rb +++ b/app/models/changeset.rb @@ -18,6 +18,9 @@ class Changeset < ActiveRecord::Base belongs_to :repository belongs_to :user + + after_save :be_user_score # user_score + has_many :filechanges, :class_name => 'Change', :dependent => :delete_all # fq has_many :acts, :class_name => 'Activity', :as => :act, :dependent => :destroy @@ -292,4 +295,14 @@ class Changeset < ActiveRecord::Base def self.to_utf8(str, encoding) Redmine::CodesetUtil.to_utf8(str, encoding) end + + private + + # update user score + def be_user_score + if self.new_record? + UserScore.project(:push_code, self.user, { changeset_id: self.id }) + end + end + end diff --git a/app/models/user_score.rb b/app/models/user_score.rb index 662229fad..c306dbf1c 100644 --- a/app/models/user_score.rb +++ b/app/models/user_score.rb @@ -126,9 +126,12 @@ class UserScore < ActiveRecord::Base # Returns boolean. 返回积分保存结果 def self.project(operate, current_user, options={}) current_user, target_user = get_users(current_user, nil) - user_score = current_user.user_score_attr + user_score = current_user.try(:user_score_attr) + return false if current_user.nil? case operate when :push_code # current_user 提交了代码 + 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})" when :push_document # current_user user_score.active = user_score.active.to_i + 4 From ff6373badc45f0b7c1964010a15af602564bd7e0 Mon Sep 17 00:00:00 2001 From: yanxd Date: Mon, 9 Jun 2014 15:07:08 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E7=9C=8B=E7=94=A8=E6=88=B7=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E5=87=BA=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/users/user_watchlist.html.erb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/users/user_watchlist.html.erb b/app/views/users/user_watchlist.html.erb index f20b80eef..bc4a655d8 100644 --- a/app/views/users/user_watchlist.html.erb +++ b/app/views/users/user_watchlist.html.erb @@ -13,7 +13,7 @@

<% unless user.memberships.empty? %> - <% cond = Project.visible_condition(User.current) + "AND projects.project_type <> 1" %> + <% cond = Project.visible_condition(User.current) + " AND projects.project_type <> 1" %> <% memberships = user.memberships.all(:conditions => cond) %> <%= l(:label_x_contribute_to, :count => memberships.count) %> <% for member in memberships %> @@ -23,7 +23,7 @@

<% unless user.memberships.empty? %> - <% cond = Project.visible_condition(User.current) + "AND projects.project_type = 1" %> + <% cond = Project.visible_condition(User.current) + " AND projects.project_type = 1" %> <% memberships = user.memberships.all(:conditions => cond) %> <%= l(:label_x_course_contribute_to, :count => memberships.count) %> <% for member in memberships %>