commit
34af8053cc
@ -1,8 +1,90 @@
|
|||||||
# encoding: utf-8
|
# encoding: utf-8
|
||||||
class ProjectScoreHelper
|
module ProjectScoreHelper
|
||||||
#缺陷数量
|
#缺陷数量
|
||||||
def issue_num project
|
def issue_num project
|
||||||
|
project.issues.count
|
||||||
|
end
|
||||||
|
|
||||||
|
#缺陷留言数量
|
||||||
|
def issue_journal_num project
|
||||||
|
project.issue_changes.count
|
||||||
|
end
|
||||||
|
|
||||||
|
#新闻数量
|
||||||
|
def news_num project
|
||||||
|
project.news.count
|
||||||
|
end
|
||||||
|
|
||||||
|
#文档数量
|
||||||
|
def document_num project
|
||||||
|
project.documents.count
|
||||||
|
end
|
||||||
|
|
||||||
|
#代码提交数量
|
||||||
|
def changesets_num project
|
||||||
|
project.changesets.count
|
||||||
|
end
|
||||||
|
|
||||||
|
#讨论区帖子数量
|
||||||
|
def board_message_num project
|
||||||
|
board_message_count = 0
|
||||||
|
project.boards.each do |board|
|
||||||
|
board_message_count += board.messages_count
|
||||||
|
end
|
||||||
|
board_message_count
|
||||||
|
end
|
||||||
|
|
||||||
|
#缺陷得分
|
||||||
|
def issue_score project
|
||||||
|
i_num = issue_num project
|
||||||
|
i_j_num = issue_journal_num project
|
||||||
|
i_num * 4 + i_j_num
|
||||||
|
end
|
||||||
|
|
||||||
|
# 新闻得分
|
||||||
|
def news_score project
|
||||||
|
n_num = news_num project
|
||||||
|
n_num
|
||||||
|
end
|
||||||
|
|
||||||
|
#文档得分
|
||||||
|
def document_score project
|
||||||
|
d_num = document_num project
|
||||||
|
d_num * 4
|
||||||
|
end
|
||||||
|
|
||||||
|
#代码提交得分
|
||||||
|
def changesets_score project
|
||||||
|
c_num = changesets_num project
|
||||||
|
c_num * 4
|
||||||
|
end
|
||||||
|
|
||||||
|
#讨论区帖子得分
|
||||||
|
def board_message_score project
|
||||||
|
b_m_num = board_message_num project
|
||||||
|
b_m_num * 2
|
||||||
|
end
|
||||||
|
|
||||||
|
#项目得分
|
||||||
|
def project_scores project
|
||||||
|
result = (issue_score project) + (news_score project) + (document_score project) + (changesets_score project) + (board_message_score project)
|
||||||
|
pss = ProjectStatus.where("project_id = '#{project.id}'")
|
||||||
|
if pss.nil? || pss.count == 0
|
||||||
|
ps = ProjectStatus.new
|
||||||
|
ps.grade = result
|
||||||
|
ps.project = project
|
||||||
|
ps.watchers_count = project.watcher_users.count
|
||||||
|
ps.changesets_count = project.changesets.count
|
||||||
|
ps.save
|
||||||
|
else
|
||||||
|
ps = pss.first
|
||||||
|
ps.grade = result
|
||||||
|
if ps.changesets_count.nil? || ps.changesets_count == ""
|
||||||
|
ps.changesets_count = project.changesets.count
|
||||||
|
end
|
||||||
|
ps.save
|
||||||
|
end
|
||||||
|
result
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
@ -1,7 +1,4 @@
|
|||||||
<!-- added by bai -->
|
<!-- added by bai -->
|
||||||
<% changeset_count = @project.changesets.count %>
|
<div><%= l(:label_code_submit_number) %> * 4 = <%= changesets_num(@project) %> * 4 = <%= format("%.2f" , changesets_score(@project)).to_i %></div>
|
||||||
<% code_submit_score = changeset_count * 0.3 %>
|
<div><%= l(:label_code_submit_score) %> = <%= format("%.2f" , changesets_score(@project)).to_i %></div>
|
||||||
<% finall_code_submit_score = code_submit_score %>
|
|
||||||
<div><%= l(:label_code_submit_number) %> * 0.3 = <%= changeset_count %> * 0.3 = <%= format("%.2f" , code_submit_score).to_f %></div>
|
|
||||||
<div><%= l(:label_code_submit_score) %> = <%= format("%.2f" , finall_code_submit_score).to_f %></div>
|
|
||||||
<!-- end -->
|
<!-- end -->
|
@ -1,7 +1,4 @@
|
|||||||
<!-- added by bai -->
|
<!-- added by bai -->
|
||||||
<% document_count = @project.documents.count %>
|
<div><%= l(:label_file_number) %> * 4 = <%= document_num(@project) %> * 4 = <%= format("%.2f" , document_score(@project)).to_i %></div>
|
||||||
<% file_score = document_count * 0.1 %>
|
<div><%= l(:label_file_score) %> = <%= format("%.2f" , document_score(@project)).to_i %></div>
|
||||||
<% finall_file_score = file_score %>
|
|
||||||
<div><%= l(:label_file_number) %> * 0.1 = <%= document_count %> * 0.1 = <%= format("%.2f" , file_score).to_f %></div>
|
|
||||||
<div><%= l(:label_file_score) %> = <%= format("%.2f" , finall_file_score).to_f %></div>
|
|
||||||
<!-- end -->
|
<!-- end -->
|
@ -1,11 +1,6 @@
|
|||||||
<!-- added by bai -->
|
<!-- added by bai -->
|
||||||
<% issue_count = @project.issues.count %>
|
<div><%= l(:label_issue_number) %> * 4 = <%= issue_num(@project) %> * 4 = <%= format("%.2f" , issue_num(@project) * 4).to_i %></div>
|
||||||
<% issue_journal_count = @project.issue_changes.count %>
|
<div><%= l(:label_issue_journal_number) %> * 1 = <%= issue_journal_num(@project) %> * 1 = <%= format("%.2f" , issue_journal_num(@project)).to_i %></div>
|
||||||
<% issue_score = issue_count * 0.2 %>
|
<div><%= l(:label_issue_score) %> = <%= format("%.2f" , issue_num(@project) * 4).to_i %> + <%= format("%.2f" , issue_journal_num(@project)).to_i %>
|
||||||
<% issue_journal_score = issue_journal_count * 0.1 %>
|
= <%= format("%.2f" , issue_score(@project)).to_i %></div>
|
||||||
<% finall_issue_score = issue_score + issue_journal_score %>
|
|
||||||
<div><%= l(:label_issue_number) %> * 0.2 = <%= issue_count %> * 0.2 = <%= format("%.2f" , issue_score).to_f %></div>
|
|
||||||
<div><%= l(:label_issue_journal_number) %> * 0.1 = <%= issue_journal_count %> * 0.1 = <%= format("%.2f" , issue_journal_score).to_f %></div>
|
|
||||||
<div><%= l(:label_issue_score) %> = <%= format("%.2f" , issue_score).to_f %> + <%= format("%.2f" , issue_journal_score).to_f %>
|
|
||||||
= <%= format("%.2f" , finall_issue_score).to_f %></div>
|
|
||||||
<!-- end -->
|
<!-- end -->
|
@ -1,7 +1,5 @@
|
|||||||
<!-- added by bai -->
|
<!-- added by bai -->
|
||||||
<% new_count = @project.news.count %>
|
|
||||||
<% new_score = new_count * 0.1 %>
|
<div><%= l(:label_new_number) %> * 1 = <%= news_num(@project) %> * 1 = <%= format("%.2f" , news_score(@project)).to_i %></div>
|
||||||
<% finall_new_score = new_score %>
|
<div><%= l(:label_news_score) %> = <%= format("%.2f" , news_score(@project)).to_i %></div>
|
||||||
<div><%= l(:label_new_number) %> * 0.1 = <%= new_count %> * 0.1 = <%= format("%.2f" , new_score).to_f %></div>
|
|
||||||
<div><%= l(:label_news_score) %> = <%= format("%.2f" , finall_new_score).to_f %></div>
|
|
||||||
<!-- end -->
|
<!-- end -->
|
@ -1,36 +1,10 @@
|
|||||||
<!-- added by bai -->
|
<!-- added by bai -->
|
||||||
<% issue_count = @project.issues.count %>
|
|
||||||
<% issue_journal_count = @project.issue_changes.count %>
|
|
||||||
<% issue_score = issue_count * 0.2 %>
|
|
||||||
<% issue_journal_score = issue_journal_count * 0.1 %>
|
|
||||||
<% finall_issue_score = issue_score + issue_journal_score %>
|
|
||||||
|
|
||||||
<% new_count = @project.news.count %>
|
|
||||||
<% new_score = new_count * 0.1 %>
|
|
||||||
<% finall_new_score = new_score %>
|
|
||||||
|
|
||||||
<% document_count = @project.documents.count %>
|
|
||||||
<% file_score = document_count * 0.1 %>
|
|
||||||
<% finall_file_score = file_score %>
|
|
||||||
|
|
||||||
<% changeset_count = @project.changesets.count %>
|
|
||||||
<% code_submit_score = changeset_count * 0.3 %>
|
|
||||||
<% finall_code_submit_score = code_submit_score %>
|
|
||||||
|
|
||||||
<% board_message_count = 0 %>
|
|
||||||
<% @project.boards.each do |board| %>
|
|
||||||
<% board_message_count += board.messages_count %>
|
|
||||||
<% end %>
|
|
||||||
<% topic_score = board_message_count * 0.1 %>
|
|
||||||
<% finall_topic_score = topic_score %>
|
|
||||||
|
|
||||||
<% finall_project_score = finall_issue_score + finall_new_score + finall_file_score + finall_code_submit_score + topic_score %>
|
|
||||||
|
|
||||||
<%= l(:label_projects_score) %>
|
<%= l(:label_projects_score) %>
|
||||||
<div> = <%= l(:label_issue_score) %> + <%= l(:label_news_score) %> + <%= l(:label_file_score) %> +
|
<div> = <%= l(:label_issue_score) %> + <%= l(:label_news_score) %> + <%= l(:label_file_score) %> +
|
||||||
<%= l(:label_code_submit_score) %> + <%= l(:label_topic_score) %></div>
|
<%= l(:label_code_submit_score) %> + <%= l(:label_topic_score) %></div>
|
||||||
<div> = <%= format("%.2f" , finall_issue_score).to_f %> + <%= format("%.2f" , finall_new_score).to_f %> +
|
<div> = <%= format("%.2f" , issue_score(@project)).to_i %> + <%= format("%.2f" , news_score(@project)).to_i %> +
|
||||||
<%= format("%.2f" , finall_file_score).to_f %> + <%= format("%.2f" , finall_code_submit_score).to_f %> +
|
<%= format("%.2f" , document_score(@project)).to_i %> + <%= format("%.2f" , changesets_score(@project)).to_i %> +
|
||||||
<%= format("%.2f" , topic_score).to_f %></div>
|
<%= format("%.2f" , board_message_score(@project)).to_i %></div>
|
||||||
<div> = <%= format("%.2f" , finall_project_score).to_f %></div>
|
<div> = <%= format("%.2f" , project_scores(@project)).to_i %></div>
|
||||||
<!-- end -->
|
<!-- end -->
|
@ -1,10 +1,4 @@
|
|||||||
<!-- added by bai -->
|
<!-- added by bai -->
|
||||||
<% board_message_count = 0 %>
|
<div><%= l(:label_topic_number) %> * 2 = <%= board_message_num(@project) %> * 2 = <%= board_message_score(@project) %></div>
|
||||||
<% @project.boards.each do |board| %>
|
<div><%= l(:label_topic_score) %> = <%= format("%.2f" , board_message_score(@project)).to_i %></div>
|
||||||
<% board_message_count += board.messages_count %>
|
|
||||||
<% end %>
|
|
||||||
<% topic_score = board_message_count * 0.1 %>
|
|
||||||
<% finall_topic_score = topic_score %>
|
|
||||||
<div><%= l(:label_topic_number) %> * 0.1 = <%= board_message_count %> * 0.1 = <%= topic_score %></div>
|
|
||||||
<div><%= l(:label_topic_score) %> = <%= format("%.2f" , finall_topic_score).to_f %></div>
|
|
||||||
<!-- end -->
|
<!-- end -->
|
@ -0,0 +1,17 @@
|
|||||||
|
# -*coding:utf-8 -*-
|
||||||
|
desc "project score Initialize"
|
||||||
|
task :project_score do
|
||||||
|
puts "project_score sync."
|
||||||
|
end
|
||||||
|
|
||||||
|
namespace :project_score do
|
||||||
|
desc "calculating first page"
|
||||||
|
task :calculate => :environment do
|
||||||
|
include ProjectScoreHelper
|
||||||
|
Project.where("project_type != 1").all.each do |project|
|
||||||
|
result = project_scores(project)
|
||||||
|
puts "score of #{project.name} is #{result}"
|
||||||
|
end
|
||||||
|
puts "calculate completed"
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in new issue