From eacc0fdf536c066496ca8bf4ee57618570b59f47 Mon Sep 17 00:00:00 2001 From: z9hang Date: Thu, 7 Aug 2014 10:45:56 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E6=8F=90=E4=BA=A4=E6=97=B6=E7=9A=84bug=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=AA=E4=BA=BA=E5=BE=97=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/bids_controller.rb | 1 + app/helpers/user_score_helper.rb | 102 ++++++++++------------------- 2 files changed, 35 insertions(+), 68 deletions(-) diff --git a/app/controllers/bids_controller.rb b/app/controllers/bids_controller.rb index 49ee47327..be27a71ea 100644 --- a/app/controllers/bids_controller.rb +++ b/app/controllers/bids_controller.rb @@ -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]) diff --git a/app/helpers/user_score_helper.rb b/app/helpers/user_score_helper.rb index 5f47afb5a..b3f64235a 100644 --- a/app/helpers/user_score_helper.rb +++ b/app/helpers/user_score_helper.rb @@ -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 From 68a86c5e5d2825b381ceb164b2cf943c3a0b24de Mon Sep 17 00:00:00 2001 From: zhanghaitao <562681745@qq.com> Date: Thu, 7 Aug 2014 11:20:24 +0800 Subject: [PATCH 2/3] =?UTF-8?q?#873=20#829=E9=97=AE=E9=A2=98=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/issues/_attributes.html.erb | 143 ++++++++++-------- app/views/projects/_form.html.erb | 5 +- .../projects/settings/_repositories.html.erb | 8 +- app/views/repositories/_form.html.erb | 66 ++++---- app/views/repositories/new.html.erb | 28 +++- 5 files changed, 145 insertions(+), 105 deletions(-) diff --git a/app/views/issues/_attributes.html.erb b/app/views/issues/_attributes.html.erb index f4857bd22..e44578243 100644 --- a/app/views/issues/_attributes.html.erb +++ b/app/views/issues/_attributes.html.erb @@ -1,63 +1,80 @@ -<%= labelled_fields_for :issue, @issue do |f| %> - - - -<% if @issue.safe_attribute? 'custom_field_values' %> -<%= render :partial => 'issues/form_custom_fields' %> -<% end %> - -<% end %> - -<% include_calendar_headers_tags %> +<%= labelled_fields_for :issue, @issue do |f| %> + + + +<% if @issue.safe_attribute? 'custom_field_values' %> +<%= render :partial => 'issues/form_custom_fields' %> +<% end %> + +<% end %> + +<% include_calendar_headers_tags %> diff --git a/app/views/projects/_form.html.erb b/app/views/projects/_form.html.erb index 47a87f441..7c84bf84b 100644 --- a/app/views/projects/_form.html.erb +++ b/app/views/projects/_form.html.erb @@ -8,10 +8,13 @@

<%= f.text_area :description, :rows => 8, :class => 'wiki-edit', :style => "font-size:small;width:490px;margin-left:10px;" %>

-

<%= f.text_field :identifier, :required => true, :size => 60, :style => "width:488px;", :disabled => @project.identifier_frozen?, :maxlength => Project::IDENTIFIER_MAX_LENGTH %> + +

<%= 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? %> <%= l(:text_length_between, :min => 1, :max => Project::IDENTIFIER_MAX_LENGTH) %> <%= l(:text_project_identifier_info).html_safe %> <% end %>

+

<%= f.check_box :is_public, :style => "margin-left:10px;" %>

<%= f.check_box :hidden_repo, :style => "margin-left:10px;" %>

diff --git a/app/views/projects/settings/_repositories.html.erb b/app/views/projects/settings/_repositories.html.erb index bb42e7a54..4ad14bf84 100644 --- a/app/views/projects/settings/_repositories.html.erb +++ b/app/views/projects/settings/_repositories.html.erb @@ -15,7 +15,7 @@ <% @project.repositories.sort.each do |repository| %> - <%= link_to repository.identifier, + <%= link_to repository.identifier, {:controller => 'repositories', :action => 'show',:id => @project, :repository_id => repository.identifier_param} if repository.identifier.present? %> <%= checked_image repository.is_default? %> @@ -25,12 +25,12 @@ <%else %> <%=h repository.url %> <% end %> - + <% if repository.scm_name=="Subversion"%> <%if User.current.allowed_to?(:manage_repository, @project) %> <%= link_to(l(:label_user_plural), committers_repository_path(repository), - :class => 'icon icon-user') %> + :class => 'icon icon-user') %> <%= link_to(l(:button_edit), edit_repository_path(repository), :class => 'icon icon-edit') %> <%= delete_link repository_path(repository) %> @@ -61,6 +61,6 @@ <% end %> <% if User.current.allowed_to?(:manage_repository, @project) %> -

<%= l(:label_repository_no) %> +

<%= l(:label_repository_no) %> <%= link_to l(:label_repository_new_repos), newrepo_project_repository_path(@project, :course => course_tag), :class => 'icon icon-add' %>

<% end %> \ No newline at end of file diff --git a/app/views/repositories/_form.html.erb b/app/views/repositories/_form.html.erb index 7ecbb7ddb..b9a3a6c83 100644 --- a/app/views/repositories/_form.html.erb +++ b/app/views/repositories/_form.html.erb @@ -1,32 +1,34 @@ -<%= error_messages_for 'repository' %> - -
-

-<%= label_tag('repository_scm', l(:label_scm)) %> - -<%= select_tag('repository_scm', - options_for_select(["Subversion"],@repository.class.name.demodulize), - :data => {:remote => true, :method => 'get'})%> - -

- -

<%= f.check_box :is_default, :label => :field_repository_is_default %>

-

<%= f.text_field :identifier, :required => true, :disabled => @repository.identifier_frozen? %> -<% unless @repository.identifier_frozen? %> - <%= l(:text_length_between, :min => 1, :max => Repository::IDENTIFIER_MAX_LENGTH) %> <%= l(:text_repository_identifier_info).html_safe %> -<% end %>

- - -

<%= f.text_field :url, :size => 60, :required => true, :disabled => !@repository.safe_attribute?('url') %> - <%= "#{l(:label_exist_repository_path)}" %> -

-

<%= f.text_field :login, :size => 30 %>

-

<%= f.password_field :password, :size => 30, :name => 'ignore', :value => ((@repository.new_record? || @repository.password.blank?) ? '' : ('x'*15)), - :onfocus => "this.value=''; this.name='repository[password]';", - :onchange => "this.name='repository[password]';" %>

-
- -

- <%= submit_tag(@repository.new_record? ? l(:button_create) : l(:button_save)) %> - <%= link_to l(:button_cancel), settings_project_path(@project, :tab => 'repositories') %> -

+<%= error_messages_for 'repository' %> + +
+

+<%= label_tag('repository_scm', l(:label_scm)) %> + +<%= select_tag('repository_scm', + options_for_select(["Subversion"],@repository.class.name.demodulize), + :data => {:remote => true, :method => 'get'})%> + +

+ +

<%= f.check_box :is_default, :label => :field_repository_is_default %>

+

<%= 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? %> + <%= l(:text_length_between, :min => 1, :max => Repository::IDENTIFIER_MAX_LENGTH) %> <%= l(:text_repository_identifier_info).html_safe %> +<% end %>

+ + +

<%= f.text_field :url, :size => 60, :required => true, :disabled => !@repository.safe_attribute?('url'), :id => "url_text_field" %> + <%= "#{l(:label_exist_repository_path)}" %> +

+

<%= f.text_field :login, :size => 30 %>

+

<%= f.password_field :password, :size => 30, :name => 'ignore', :value => ((@repository.new_record? || @repository.password.blank?) ? '' : ('x'*15)), + :onfocus => "this.value=''; this.name='repository[password]';", + :onchange => "this.name='repository[password]';" %>

+
+ +

+ <%#= submit_tag(@repository.new_record? ? l(:button_create) : l(:button_save)) %> + + <%= link_to l(:button_cancel), settings_project_path(@project, :tab => 'repositories') %> +

diff --git a/app/views/repositories/new.html.erb b/app/views/repositories/new.html.erb index 31a44a921..4127458b3 100644 --- a/app/views/repositories/new.html.erb +++ b/app/views/repositories/new.html.erb @@ -1,5 +1,23 @@ -

<%= l(:label_repository_new) %>

- -<%= labelled_form_for :repository, @repository, :url => project_repositories_path(@project), :html => {:id => 'repository-form'} do |f| %> - <%= render :partial => 'form', :locals => {:f => f} %> -<% end %> +

<%= l(:label_repository_new) %>

+ +<%= labelled_form_for :repository, @repository, :url => project_repositories_path(@project), :html => {:id => 'repository-form'} do |f| %> + <%= render :partial => 'form', :locals => {:f => f} %> +<% end %> From 45cc3ddb9be97a6f361747c5ac1f32925dac85ea Mon Sep 17 00:00:00 2001 From: zhanghaitao <562681745@qq.com> Date: Thu, 7 Aug 2014 11:23:01 +0800 Subject: [PATCH 3/3] =?UTF-8?q?#873=E6=8F=90=E7=A4=BA=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/locales/zh.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/zh.yml b/config/locales/zh.yml index d6756474f..f792e3b66 100644 --- a/config/locales/zh.yml +++ b/config/locales/zh.yml @@ -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: 暂未关注任何需求!