This commit is contained in:
sw 2014-08-07 11:31:39 +08:00
commit b0b3f257a4
8 changed files with 181 additions and 174 deletions

View File

@ -29,6 +29,7 @@ class BidsController < ApplicationController
helper :projects
helper :words
helper :welcome
helper :project_score
def find_project_by_bid_id
@bid = Bid.find(params[:id])

View File

@ -414,7 +414,7 @@ module UserScoreHelper
#发帖数
def memo_num(user,project=nil)
if project.nil?
Message.includes(:author).joins(:board).where("#{Message.table_name}.parent_id IS NULL and #{Message.table_name}.author_id = '#{user.id}' and #{Board.table_name}.project_id != -1").all.count
Message.includes(:author).joins(:board).where("#{Message.table_name}.parent_id IS NULL and #{Message.table_name}.author_id = '#{user.id}' and #{Board.table_name}.project_id != -1").all.count #+ Memo.includes(:author).where("parent_id IS NULL and author_id = '#{user.id}'").all.count
else
Message.includes(:author).joins(:board).where("#{Message.table_name}.parent_id IS NULL and #{Message.table_name}.author_id = '#{user.id}' and #{Board.table_name}.project_id = #{project.id}").all.count
end
@ -458,26 +458,26 @@ module UserScoreHelper
option_number.replay_for_message = replay_for_message_num(user,project)#JournalsForMessage.includes(:user).where("m_parent_id IS NOT NULL and user_id = #{user.id}").count
update_score(option_number)
end
#====================================contiue here=====================================================
def replay_for_message_num(user,project=nil)
if project.nil?
JournalsForMessage.includes(:user).where("m_parent_id IS NOT NULL and user_id = #{user.id}").count
JournalsForMessage.includes(:user).where("m_parent_id IS NOT NULL and user_id = #{user.id} and jour_type = 'Project'").count
else
JournalsForMessage.includes(:user).where("m_parent_id IS NOT NULL and user_id = #{user.id} and jour_type = 'Project' and jour_id = '#{project.id}'").count
end
end
#更新对帖子的回复数量
def update_replay_for_memo(user,type)
def update_replay_for_memo(user,type,project=nil)
option_number = get_option_number(user,type)
option_number.replay_for_memo = Message.includes(:author).where("parent_id IS NOT NULL and author_id = #{user.id}").all.count #+ Memo.includes(:author).where("parent_id IS NOT NULL and author_id = #{user.id}").all.count
option_number.replay_for_memo = replay_for_memo_num(user,project)#Message.includes(:author).where("parent_id IS NOT NULL and author_id = #{user.id}").all.count #+ Memo.includes(:author).where("parent_id IS NOT NULL and author_id = #{user.id}").all.count
update_score(option_number)
end
def replay_for_memo_num(user,project=nil)
if project.nil?
Message.includes(:author).where("parent_id IS NOT NULL and author_id = #{user.id}").all.count
Message.includes(:author).joins(:board).where("#{Message.table_name}.parent_id IS NOT NULL and #{Message.table_name}.author_id = '#{user.id}' and #{Board.table_name}.project_id != -1").all.count
else
Message.includes(:author).joins(:board).where("#{Message.table_name}.parent_id IS NOT NULL and #{Message.table_name}.author_id = '#{user.id}' and #{Board.table_name}.project_id = #{project.id}").all.count
end
@ -495,32 +495,13 @@ module UserScoreHelper
end
#更新帖子踩各项数量
def update_tread(user,type)
def update_tread(user,type,project=nil)
option_number = get_option_number(user,type)
option_number.tread = PraiseTread.where("praise_tread_object_type = 'Issue' || praise_tread_object_type = 'Message' and praise_or_tread = 0 and user_id = '#{user.id}'").all.count
pts = PraiseTread.where("praise_tread_object_type = 'Issue' || praise_tread_object_type = 'Message' and praise_or_tread = 0").all
result = []
result1 = []
result2 = []
pts.each do |pt|
obj = PraiseTread.find_object_by_type_and_id(pt.praise_tread_object_type, pt.praise_tread_object_id)
if obj.nil?
next
end
target_user = obj.author
level = UserLevels.get_level(pt.user)#pt.user.get_level
project = pt.project
if level == 1 && target_user.id = user.id
result << pt
elsif level == 2 && target_user.id = user.id
result1 << pt
elsif level == 3 && target_user.id = user.id
result2 << pt
end
end
option_number.tread_by_one = result.count
option_number.tread_by_two = result1.count
option_number.tread_by_three = result2.count
tread_nums = tread_num(user,project)
option_number.tread = tread_nums[:tread]
option_number.tread_by_one = tread_nums[:tead_by_one]
option_number.tread_by_two = tread_nums[:tread_by_two]
option_number.tread_by_three = tread_nums[:tread_by_three]
update_score(option_number)
end
@ -579,31 +560,12 @@ module UserScoreHelper
end
#更新帖子顶数量
def update_praise(user,type)
def update_praise(user,type,project=nil)
option_number = get_option_number(user,type)
pts = PraiseTread.where("praise_tread_object_type = 'Issue' || praise_tread_object_type = 'Message' and praise_or_tread = 1").all
result = []
result1 = []
result2 = []
pts.each do |pt|
obj = PraiseTread.find_object_by_type_and_id(pt.praise_tread_object_type, pt.praise_tread_object_id)
if obj.nil?
next
end
target_user = obj.author
level = UserLevels.get_level(pt.user)#pt.user.get_level
project = pt.project
if level == 1 && target_user.id = user.id
result << pt
elsif level == 2 && target_user.id = user.id
result1 << pt
elsif level == 3 && target_user.id = user.id
result2 << pt
end
end
option_number.praise_by_one = result.count
option_number.praise_by_two = result1.count
option_number.praise_by_three = result2.count
praise_nums = praise_num(user,project)
option_number.praise_by_one = praise_nums[:praise_by_one]
option_number.praise_by_two = praise_nums[:praise_by_two]
option_number.praise_by_three = praise_nums[:praise_by_three]
update_score(option_number)
end
@ -643,6 +605,9 @@ module UserScoreHelper
if obj.nil?
next
end
#if obj.project.id == -1
# next
#end
target_user = obj.author
level = UserLevels.get_level(pt.user)#pt.user.get_level
project = pt.project
@ -660,9 +625,9 @@ module UserScoreHelper
end
#更新提交代码次数
def update_changeset(user,type)
def update_changeset(user,type,project=nil)
option_number = get_option_number(user,type)
option_number.changeset = Changeset.includes(:user).where("user_id = '#{user.id}'").all.count
option_number.changeset = changeset_num(user,project)#Changeset.includes(:user).where("user_id = '#{user.id}'").all.count
update_score(option_number)
end
@ -676,9 +641,9 @@ module UserScoreHelper
end
#更新文档提交次数
def update_document(user,type)
def update_document(user,type,project=nil)
option_number = get_option_number(user,type)
option_number.document = Document.includes(:user).where("user_id = '#{user.id}'").all.count
option_number.document = document_num(user,project)#Document.includes(:user).where("user_id = '#{user.id}'").all.count
update_score(option_number)
end
@ -692,9 +657,9 @@ module UserScoreHelper
end
#更新附件提交数量
def update_attachment(user,type)
def update_attachment(user,type,project=nil)
option_number = get_option_number(user,type)
option_number.attachment = Attachment.includes(:author).where("author_id = '#{user.id}'").all.count
option_number.attachment = attachment_num(user,project)#Attachment.includes(:author).where("author_id = '#{user.id}'").all.count
update_score(option_number)
end
@ -707,9 +672,9 @@ module UserScoreHelper
end
#更新缺陷完成度次数
def update_issue_done_ratio(user,type)
def update_issue_done_ratio(user,type,project=nil)
option_number = get_option_number(user,type)
option_number.issue_done_ratio = Journal.joins(:details, :user).where("#{JournalDetail.table_name}.prop_key = 'done_ratio' and #{User.table_name}.id = '#{user.id}'").count
option_number.issue_done_ratio = issue_done_ratio_num(user,project) #Journal.joins(:details, :user).where("#{JournalDetail.table_name}.prop_key = 'done_ratio' and #{User.table_name}.id = '#{user.id}'").count
update_score(option_number)
end
@ -723,9 +688,9 @@ module UserScoreHelper
end
#更新发布缺陷次数
def update_post_issue(user,type)
def update_post_issue(user,type,project=nil)
option_number = get_option_number(user,type)
option_number.post_issue = Issue.includes(:author).where("author_id = '#{user.id}'").all.count
option_number.post_issue = post_issue_num(user,project) #Issue.includes(:author).where("author_id = '#{user.id}'").all.count
update_score(option_number)
end
@ -737,7 +702,8 @@ module UserScoreHelper
end
end
def user_scores(user,type)
def user_scores(user,type,project=nil)
ooption_num = get_option_number(user,type,project)
update_score(ooption_num)
end
end

View File

@ -5,8 +5,7 @@
<div class="splitcontent" style="display: block;">
<div class="splitcontentleft">
<% if @issue.safe_attribute?('status_id') && @allowed_statuses.present? %>
<p><%= f.select :status_id, (@allowed_statuses.collect {|p| [p.name, p.id]}), {:required => true},
:onchange => "updateIssueFrom('#{escape_javascript project_issue_form_path(@project, :id => @issue, :format => 'js')}')" %></p>
<p><%= f.select :status_id, (@allowed_statuses.collect {|p| [p.name, p.id]}), {:required => true}, :onchange => "updateIssueFrom('#{escape_javascript project_issue_form_path(@project, :id => @issue, :format => 'js')}')" %></p>
<% else %>
<p><label><%= l(:field_status) %></label> <%= h(@issue.status.name) %></p>
@ -46,10 +45,28 @@
<% if @issue.safe_attribute? 'estimated_hours' %>
<p><%= f.text_field :estimated_hours, :size => 3, :disabled => !@issue.leaf?, :required => @issue.required_attribute?('estimated_hours') %> <%= l(:field_hours) %></p>
<% end %>
<script type="text/javascript">
function PrecentChange(obj){
var _v= obj;
if(_v==100)
{
//alert(3);
}
else if(_v==0)
{
//alert(1);
}
else if(_v!=100&&_v!=0)
{
// alert(2);
}
}
</script>
<% if @issue.safe_attribute?('done_ratio') && @issue.leaf? && Issue.use_field_for_done_ratio? %>
<p><%= f.select :done_ratio, ((0..10).to_a.collect {|r| ["#{r*10} %", r*10] }), :required => @issue.required_attribute?('done_ratio') %></p>
<p><%= f.select :done_ratio, ((0..10).to_a.collect {|r| ["#{r*10} %", r*10] }), {:required => @issue.required_attribute?('done_ratio')},
{:onchange => "PrecentChange(this.value)"} %></p>
<% end %>
</div>
</div>
</fieldset>

View File

@ -8,10 +8,13 @@
<p style="padding-right: 20px;">
<%= f.text_area :description, :rows => 8, :class => 'wiki-edit', :style => "font-size:small;width:490px;margin-left:10px;" %>
</p><!--by young-->
<p><%= f.text_field :identifier, :required => true, :size => 60, :style => "width:488px;", :disabled => @project.identifier_frozen?, :maxlength => Project::IDENTIFIER_MAX_LENGTH %>
<p style="display: none"><%= f.text_field :identifier, :required => true, :size => 60, :style => "width:488px;", :disabled => @project.identifier_frozen?, :maxlength => Project::IDENTIFIER_MAX_LENGTH,
value:"#{User.current.id.to_s + '_' +format_time(Time.now).to_s}" %>
<% unless @project.identifier_frozen? %>
<em class="info"><%= l(:text_length_between, :min => 1, :max => Project::IDENTIFIER_MAX_LENGTH) %> <%= l(:text_project_identifier_info).html_safe %></em>
<% end %></p>
<!-- <p style="margin-left:-10px;"><%#= f.text_field :homepage, :size => 60, :style => "width:488px;margin-left: 10px;" %></p> --> <!-- by huang -->
<p style="margin-left:-10px;"><em style ="color: #888888;display: block;font-size: 90%;font-style: normal;"><%= f.check_box :is_public, :style => "margin-left:10px;" %></em></p>
<p style="margin-left:-10px;"><em style ="color: #888888;display: block;font-size: 90%;font-style: normal;"><%= f.check_box :hidden_repo, :style => "margin-left:10px;" %></em></p>

View File

@ -11,13 +11,14 @@
</p>
<p><%= f.check_box :is_default, :label => :field_repository_is_default %></p>
<p><%= f.text_field :identifier, :required => true, :disabled => @repository.identifier_frozen? %>
<p style="display: none"><%= f.text_field :identifier, :required => true, :disabled => @repository.identifier_frozen?,
value:"#{User.current.id.to_s + '_' +format_time(Time.now).to_s}"%>
<% unless @repository.identifier_frozen? %>
<em class="info" ><%= l(:text_length_between, :min => 1, :max => Repository::IDENTIFIER_MAX_LENGTH) %> <%= l(:text_repository_identifier_info).html_safe %></em>
<% end %></p>
<!--Modified by tanxianbo-->
<p><%= f.text_field :url, :size => 60, :required => true, :disabled => !@repository.safe_attribute?('url') %>
<p><%= f.text_field :url, :size => 60, :required => true, :disabled => !@repository.safe_attribute?('url'), :id => "url_text_field" %>
<em class='info'><%= "#{l(:label_exist_repository_path)}" %></em>
</p>
<p><%= f.text_field :login, :size => 30 %></p>
@ -27,6 +28,7 @@
</div>
<!--Ended by tanxianbo-->
<p>
<%= submit_tag(@repository.new_record? ? l(:button_create) : l(:button_save)) %>
<%#= submit_tag(@repository.new_record? ? l(:button_create) : l(:button_save)) %>
<input type="button" class="enterprise" value="<%= @repository.new_record? ? l(:button_create) : l(:button_save) %>" onclick="createVersion();"/>
<%= link_to l(:button_cancel), settings_project_path(@project, :tab => 'repositories') %>
</p>

View File

@ -1,5 +1,23 @@
<h3><%= l(:label_repository_new) %></h3>
<script type="text/javascript">
//var re=new RegExp(strRegex);
function createVersion(){
var re =new RegExp("^(https|http|file|svn)[?:]{1}/{1}/{1}.*$");
var strRegex = /^([https|http|file|svn]:){1}.*$/;
var name = $("#url_text_field").val();
if(name == "")
{
alert("URL不能为空");
return;
}
else if(!re.test(name))
{
alert("URL路径不正确");
return;
}
$("#repository-form").submit();
}
</script>
<%= labelled_form_for :repository, @repository, :url => project_repositories_path(@project), :html => {:id => 'repository-form'} do |f| %>
<%= render :partial => 'form', :locals => {:f => f} %>
<% end %>

View File

@ -1557,7 +1557,7 @@ zh:
label_welcome_page_to: 参与了 %{project_count} 个项目!
label_repository_path_not_null: 库路径 不能为空字符
label_password_not_null: 密码不能设置为空。
label_exist_repository_path: 定义已有版本库URL路径定义格式file:///, http://, https://, svn://
label_exist_repository_path: 定义已有版本库URL路径定义格式file://, http://, https://, svn://
label_project_no_activity: 该项目暂无动态!
label_course_homework_un: 暂未发布任何作业
label_follow_no_requirement: 暂未关注任何需求!