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