commit
34af8053cc
@ -1,8 +1,90 @@
|
||||
# encoding: utf-8
|
||||
class ProjectScoreHelper
|
||||
module ProjectScoreHelper
|
||||
#缺陷数量
|
||||
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
|
@ -1,7 +1,4 @@
|
||||
<!-- added by bai -->
|
||||
<% changeset_count = @project.changesets.count %>
|
||||
<% code_submit_score = changeset_count * 0.3 %>
|
||||
<% 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>
|
||||
<div><%= l(:label_code_submit_number) %> * 4 = <%= changesets_num(@project) %> * 4 = <%= format("%.2f" , changesets_score(@project)).to_i %></div>
|
||||
<div><%= l(:label_code_submit_score) %> = <%= format("%.2f" , changesets_score(@project)).to_i %></div>
|
||||
<!-- end -->
|
@ -1,7 +1,4 @@
|
||||
<!-- added by bai -->
|
||||
<% document_count = @project.documents.count %>
|
||||
<% file_score = document_count * 0.1 %>
|
||||
<% 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>
|
||||
<div><%= l(:label_file_number) %> * 4 = <%= document_num(@project) %> * 4 = <%= format("%.2f" , document_score(@project)).to_i %></div>
|
||||
<div><%= l(:label_file_score) %> = <%= format("%.2f" , document_score(@project)).to_i %></div>
|
||||
<!-- end -->
|
@ -1,11 +1,6 @@
|
||||
<!-- 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 %>
|
||||
<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>
|
||||
<div><%= l(:label_issue_number) %> * 4 = <%= issue_num(@project) %> * 4 = <%= format("%.2f" , issue_num(@project) * 4).to_i %></div>
|
||||
<div><%= l(:label_issue_journal_number) %> * 1 = <%= issue_journal_num(@project) %> * 1 = <%= format("%.2f" , issue_journal_num(@project)).to_i %></div>
|
||||
<div><%= l(:label_issue_score) %> = <%= format("%.2f" , issue_num(@project) * 4).to_i %> + <%= format("%.2f" , issue_journal_num(@project)).to_i %>
|
||||
= <%= format("%.2f" , issue_score(@project)).to_i %></div>
|
||||
<!-- end -->
|
@ -1,7 +1,5 @@
|
||||
<!-- added by bai -->
|
||||
<% new_count = @project.news.count %>
|
||||
<% new_score = new_count * 0.1 %>
|
||||
<% finall_new_score = new_score %>
|
||||
<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>
|
||||
|
||||
<div><%= l(:label_new_number) %> * 1 = <%= news_num(@project) %> * 1 = <%= format("%.2f" , news_score(@project)).to_i %></div>
|
||||
<div><%= l(:label_news_score) %> = <%= format("%.2f" , news_score(@project)).to_i %></div>
|
||||
<!-- end -->
|
@ -1,36 +1,10 @@
|
||||
<!-- 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) %>
|
||||
<div> = <%= l(:label_issue_score) %> + <%= l(:label_news_score) %> + <%= l(:label_file_score) %> +
|
||||
<%= 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 %> +
|
||||
<%= format("%.2f" , finall_file_score).to_f %> + <%= format("%.2f" , finall_code_submit_score).to_f %> +
|
||||
<%= format("%.2f" , topic_score).to_f %></div>
|
||||
<div> = <%= format("%.2f" , finall_project_score).to_f %></div>
|
||||
<div> = <%= format("%.2f" , issue_score(@project)).to_i %> + <%= format("%.2f" , news_score(@project)).to_i %> +
|
||||
<%= format("%.2f" , document_score(@project)).to_i %> + <%= format("%.2f" , changesets_score(@project)).to_i %> +
|
||||
<%= format("%.2f" , board_message_score(@project)).to_i %></div>
|
||||
<div> = <%= format("%.2f" , project_scores(@project)).to_i %></div>
|
||||
<!-- end -->
|
@ -1,10 +1,4 @@
|
||||
<!-- added by bai -->
|
||||
<% 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 %>
|
||||
<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>
|
||||
<div><%= l(:label_topic_number) %> * 2 = <%= board_message_num(@project) %> * 2 = <%= board_message_score(@project) %></div>
|
||||
<div><%= l(:label_topic_score) %> = <%= format("%.2f" , board_message_score(@project)).to_i %></div>
|
||||
<!-- 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