|
|
|
@ -51,7 +51,7 @@ module UserScoreHelper
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def calculate_influence_count(user)
|
|
|
|
|
watcher_count = watcher_users(User.current.id).count
|
|
|
|
|
watcher_count = Watcher.where("watchable_type = 'principal' AND watchable_id = ?", user.id).count
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def calculate_skill_count(user)
|
|
|
|
@ -92,13 +92,17 @@ module UserScoreHelper
|
|
|
|
|
|
|
|
|
|
if level == 0
|
|
|
|
|
skill_score = praise_count - 0.5 * tread_count
|
|
|
|
|
elseif level == 1
|
|
|
|
|
end
|
|
|
|
|
if level == 1
|
|
|
|
|
skill_score = 2 * praise_count - 1.5 * tread_count
|
|
|
|
|
elseif level == 2
|
|
|
|
|
end
|
|
|
|
|
if level == 2
|
|
|
|
|
skill_socre = 3 * praise_count - 2.5 * tread_count
|
|
|
|
|
elseif level == 3
|
|
|
|
|
end
|
|
|
|
|
if level == 3
|
|
|
|
|
skill_socre = 4 * praise_count - 3.5 * tread_count
|
|
|
|
|
elseif level == 4
|
|
|
|
|
end
|
|
|
|
|
if level == 4
|
|
|
|
|
skill_socre = 5 * praise_count - 4.5 * tread_count
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
@ -175,9 +179,11 @@ module UserScoreHelper
|
|
|
|
|
|
|
|
|
|
if max_praise_num > 4
|
|
|
|
|
level = 1
|
|
|
|
|
elseif commit_count > 0 and commit_count < 101
|
|
|
|
|
end
|
|
|
|
|
if commit_count > 0 and commit_count < 101
|
|
|
|
|
level = 1
|
|
|
|
|
elseif commit_count > 100 or isManager == 1
|
|
|
|
|
end
|
|
|
|
|
if commit_count > 100 or isManager == 1
|
|
|
|
|
level = 2
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
@ -195,13 +201,13 @@ module UserScoreHelper
|
|
|
|
|
# end
|
|
|
|
|
# file_count = user.file_commit.count
|
|
|
|
|
# issue_count = Issue.where('author_id = ?', user.id).count
|
|
|
|
|
f = user.user_score.file
|
|
|
|
|
i = user.user_score.issue
|
|
|
|
|
f_max = UserScore.find_max_file
|
|
|
|
|
f_min = UserScore.find_min_file
|
|
|
|
|
i_max = UserScore.find_max_issue
|
|
|
|
|
i_min = UserScore.find_min_issue
|
|
|
|
|
score = 100 * ((f - f_min)/(f_max - f_min) + (i - i_min)/(i_max - i_min))
|
|
|
|
|
#f = user.user_score.file
|
|
|
|
|
#i = user.user_score.issue
|
|
|
|
|
#f_max = UserScore.find_max_file
|
|
|
|
|
#f_min = UserScore.find_min_file
|
|
|
|
|
#i_max = UserScore.find_max_issue
|
|
|
|
|
#i_min = UserScore.find_min_issue
|
|
|
|
|
#score = 100 * ((f - f_min)/(f_max - f_min) + (i - i_min)/(i_max - i_min))
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def calculate_file(user)
|
|
|
|
@ -216,8 +222,14 @@ module UserScoreHelper
|
|
|
|
|
issue_details_count = 0
|
|
|
|
|
issues = Issue.where('assigned_to_id = ?', user.id)
|
|
|
|
|
|
|
|
|
|
change_count = 0
|
|
|
|
|
issues.each do |issue|
|
|
|
|
|
change_count = issue.journals.where("prop_key = ?", "done_ratio").count
|
|
|
|
|
js = issue.journals
|
|
|
|
|
js.each do |j|
|
|
|
|
|
change_count = change_count + j.details.where("prop_key = ?", "done_ratio").count
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
issue_details_count = change_count + issue_details_count
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
@ -233,7 +245,9 @@ module UserScoreHelper
|
|
|
|
|
file = calculate_file(user)
|
|
|
|
|
issue = calculate_issue(user)
|
|
|
|
|
level = calculate_level(user)
|
|
|
|
|
user.user_score << UserScore.new(:collaboration => collaboration, :influence => influence, :skill => skill,
|
|
|
|
|
#user.user_score << UserScore.new(:collaboration => collaboration, :influence => influence, :skill => skill,
|
|
|
|
|
# :activity => activity, :file => file, :issue => issue, :level => level)
|
|
|
|
|
UserScore.new(:collaboration => collaboration, :influence => influence, :skill => skill,
|
|
|
|
|
:activity => activity, :file => file, :issue => issue, :level => level)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
@ -241,12 +255,17 @@ module UserScoreHelper
|
|
|
|
|
collaboration = calculate_collaboration_count(user)
|
|
|
|
|
influence = calculate_influence_count(user)
|
|
|
|
|
skill = calculate_skill_count(user)
|
|
|
|
|
activity = calculate_activity_count(user)
|
|
|
|
|
file = calculate_file(user)
|
|
|
|
|
issue = calculate_issue(user)
|
|
|
|
|
|
|
|
|
|
##activity = calculate_activity_count(user)
|
|
|
|
|
|
|
|
|
|
level = calculate_level(user)
|
|
|
|
|
user.user_score.update_attributes(:collaboration => collaboration, :influence => influence, :skill => skill,
|
|
|
|
|
:activity => activity, :file => file, :issue => issue, :level => level)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|