From e9bd8a8f3e5ca596746aa3dc7dd503a0ac982b65 Mon Sep 17 00:00:00 2001 From: kg Date: Mon, 28 Apr 2014 09:53:22 +0800 Subject: [PATCH 1/7] revise project index,course,search --- app/controllers/projects_controller.rb | 200 ++++++++++++------------- app/views/projects/_course.html.erb | 2 +- 2 files changed, 96 insertions(+), 106 deletions(-) diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 730546aa6..75df3bc15 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -200,113 +200,13 @@ class ProjectsController < ApplicationController @projects_all.each do |project| @project_activity_count[project.id]=0 end - @project_ids=@project_activity_count.keys() - - days = Setting.activity_days_default.to_i - date_to ||= Date.today + 1 - date_from = date_to - days-1.years - -#approach 1 -=begin - - @projects_all.each do |project| - #issue_count - issues=Issue.where("project_id=?",project.id) - issue_count=0 - issues.each do |issue| - issue_count+=issue.journals.count - end - - #repository_count - repositories=Repository.where("project_id=?",project.id) - repository_count=0 - repositories.each do |repository| - repository_count+=repository.changesets.count - end - - #news_count - news_count=News.where("project_id=?",project.id).count - #document_count - document_count=Document.where("project_id=?",project.id).count - #file_count - file_count=Attachment.where("container_type='Project' AND container_id=?",project.id).count - - #message_count - boards=Board.where("project_id=?",project.id) - message_count=0 - boards.each do |board| - message_count+=board.messages.count - end - - #time_entry_count - time_entry_count=TimeEntry.where("project_id=?",project.id).count - - #sum - @project_activity_count[project.id.to_s]=issue_count+repository_count+news_count+document_count+file_count+message_count+time_entry_count - - end -=end -#gcm - -#gcm approach 2 - - #issue_count - Issue.where(project_id: @project_ids).where("updated_on>?",date_from).each do |issue| -# @project_activity_count[issue.project_id.to_s]+=1 - @project_activity_count[issue.project_id]+=issue.journals.where("created_on>?",date_from).count - end - - #repository_count - Repository.where(project_id: @project_ids).each do |repository| -# @project_activity_count[repository.project_id.to_s]+=1 - @project_activity_count[repository.project_id]+=repository.changesets.where("committed_on>?",date_from).count - end - - - #news_count - News.where(project_id: @project_ids).where("created_on>?",date_from).each do |news| - @project_activity_count[news.project_id]+=1 - end - #document_count - Document.where(project_id: @project_ids).where("created_on>?",date_from).each do |document| - @project_activity_count[document.project_id]+=1 - end + @project_activity_count=get_project_activity @projects_all,@project_activity_count - #file_count - Attachment.where(container_id: @project_ids).where("container_type='Project' AND created_on>?",date_from).each do |attachment| - @project_activity_count[attachment.container_id]+=1 - end - #message_count - Board.where(project_id: @project_ids).each do |board| -# @project_activity_count[board.project_id]+=1 - @project_activity_count[board.project_id]+=board.messages.where("updated_on>?",date_from).count - end + #movebegin - #time_entry_count - TimeEntry.where(project_id: @project_ids).where("updated_on>?",date_from).each do |timeentry| - @project_activity_count[timeentry.project_id]+=1 - end - - #feedbackc_count - JournalsForMessage.where(jour_id: @project_ids).each do |jourformess| - @project_activity_count[jourformess.jour_id]+=1 - end - - #@project_activity_count!=0 - @project_all_array=[] - i=0; - @projects_all.each do |project| - id=project.id - @project_all_array[i]=project - if @project_activity_count[id]==0 - @project_activity_count[id]=1 - end - i=i+1 - end - - @project_activity_count_array=@project_activity_count.values() + #moveend #gcm end @@ -327,7 +227,8 @@ class ProjectsController < ApplicationController #gcm when '3' - @projects=desc_sort_course_by_avtivity(@project_ids,@project_activity_count_array,@project_all_array) + #@projects=desc_sort_course_by_avtivity(@project_activity_count_array,@project_all_array) + @projects=handle_project @projects_all,@project_activity_count @s_type = 3 @projects = @projects[@project_pages.offset, @project_pages.per_page] #gcmend @@ -1018,7 +919,94 @@ class ProjectsController < ApplicationController end end - def desc_sort_course_by_avtivity(ids,activity_count,projects) + + + #gcm + def get_project_activity projects,activities + @project_ids=activities.keys() + + days = Setting.activity_days_default.to_i + date_to ||= Date.today + 1 + date_from = date_to - days-1.years + + #issue_count + Issue.where(project_id: @project_ids).where("updated_on>?",date_from).each do |issue| +# activities[issue.project_id.to_s]+=1 + activities[issue.project_id]+=issue.journals.where("created_on>?",date_from).count + end + + #repository_count + Repository.where(project_id: @project_ids).each do |repository| +# activities[repository.project_id.to_s]+=1 + activities[repository.project_id]+=repository.changesets.where("committed_on>?",date_from).count + end + + + #news_count + News.where(project_id: @project_ids).where("created_on>?",date_from).each do |news| + activities[news.project_id]+=1 + end + + #document_count + Document.where(project_id: @project_ids).where("created_on>?",date_from).each do |document| + activities[document.project_id]+=1 + end + + #file_count + Attachment.where(container_id: @project_ids).where("container_type='Project' AND created_on>?",date_from).each do |attachment| + activities[attachment.container_id]+=1 + end + + #message_count + Board.where(project_id: @project_ids).each do |board| +# activities[board.project_id]+=1 + activities[board.project_id]+=board.messages.where("updated_on>?",date_from).count + end + + #time_entry_count + TimeEntry.where(project_id: @project_ids).where("updated_on>?",date_from).each do |timeentry| + activities[timeentry.project_id]+=1 + end + + #feedbackc_count + JournalsForMessage.where(jour_id: @project_ids).each do |jourformess| + activities[jourformess.jour_id]+=1 + end + + #activities!=0 + i=0; + projects.each do |project| + id=project.id + if activities[id]==0 + activities[id]=1 + end + end + + return activities + end + #gcmend + + #gcm + def handle_project projects,activities + @project_activity_count_array=activities.values() + + project_all_array=[] + i=0; + projects.each do |project| + id=project.id + @project_all_array[i]=project + i=i+1 + end + + projects=desc_sort_course_by_avtivity(@project_activity_count_array,project_all_array) + + return projects + end + #gcmend + + + #gcm + def desc_sort_course_by_avtivity(activity_count,projects) return projects if activity_count.size<2 (activity_count.size-2).downto(0) do |i| (0..i).each do |j| @@ -1045,4 +1033,6 @@ class ProjectsController < ApplicationController # end #desc_sort_course_by_avtivity(@project_ids,@project_activity_count_array,@projects_all) end + #gcmend + end diff --git a/app/views/projects/_course.html.erb b/app/views/projects/_course.html.erb index 33d222145..d65df0530 100644 --- a/app/views/projects/_course.html.erb +++ b/app/views/projects/_course.html.erb @@ -52,7 +52,7 @@

- <%= content_tag('span', link_to("#{@project_activity_count[@project.id]}", member_project_path(@project)), :class => "info") %> + <%= content_tag('span', link_to("#{@project_activity_count[@project.id]}", project_path(@project)), :class => "info") %> <%= content_tag('span', l(:label_x_activity, :count => @project_activity_count[@project.id])) %>

From 0f51480bab0c70b95cb09c9f88e87b95a8bd1942 Mon Sep 17 00:00:00 2001 From: kg Date: Tue, 29 Apr 2014 10:36:09 +0800 Subject: [PATCH 2/7] amend course search --- app/controllers/projects_controller.rb | 191 +++++++++++++++++++------ 1 file changed, 150 insertions(+), 41 deletions(-) diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index 75df3bc15..ee57935f1 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -138,6 +138,17 @@ class ProjectsController < ApplicationController @project_count = @projects_all.count @project_pages = Paginator.new @project_count, per_page_option, params['page'] +#gcm activity count + + @project_activity_count=Hash.new + + @projects_all.each do |project| + @project_activity_count[project.id]=0 + end + + @project_activity_count=get_project_activity @projects_all,@project_activity_count + +#gcm end case params[:project_sort_type] when '0' @@ -149,6 +160,14 @@ class ProjectsController < ApplicationController when '2' @projects = @projects_all.order("watchers_count desc") @s_type = 2 + + #gcm + when '3' + #@projects=desc_sort_course_by_avtivity(@project_activity_count_array,@project_all_array) + @projects=handle_project @projects_all,@project_activity_count + @s_type = 3 + @projects = @projects[@project_pages.offset, @project_pages.per_page] + else @projects = @projects = @projects_all.order("grade desc") @s_type = 1 @@ -193,22 +212,16 @@ class ProjectsController < ApplicationController @project_count = @projects_all.count @project_pages = Paginator.new @project_count, per_page_option, params['page'] -#gcm activity count + #gcm activity count @project_activity_count=Hash.new - + #count initialize @projects_all.each do |project| @project_activity_count[project.id]=0 end - @project_activity_count=get_project_activity @projects_all,@project_activity_count - - - #movebegin - - #moveend - -#gcm end + #@project_activity_count=get_project_activity @projects_all,@project_activity_count + #gcm end case params[:project_sort_type] @@ -216,27 +229,48 @@ class ProjectsController < ApplicationController @projects = @projects_all.order("created_on desc") @s_type = 0 @projects = @projects.offset(@project_pages.offset).limit(@project_pages.per_page) + + #gcm + @project_activity_count=get_project_activity @projects,@project_activity_count + #gcmend + when '1' @projects = @projects_all.order("course_ac_para desc") @s_type = 1 @projects = @projects.offset(@project_pages.offset).limit(@project_pages.per_page) + + #gcm + @project_activity_count=get_project_activity @projects,@project_activity_count + #gcmend + when '2' @projects = @projects_all.order("watchers_count desc") @s_type = 2 @projects = @projects.offset(@project_pages.offset).limit(@project_pages.per_page) + #gcm + @project_activity_count=get_project_activity @projects,@project_activity_count + #gcmend + #gcm when '3' - #@projects=desc_sort_course_by_avtivity(@project_activity_count_array,@project_all_array) + + #gcm + @project_activity_count=get_project_activity @projects_all,@project_activity_count + #gcmend + @projects=handle_project @projects_all,@project_activity_count @s_type = 3 @projects = @projects[@project_pages.offset, @project_pages.per_page] - #gcmend - else @s_type = 0 @projects = @projects_all.order("created_on desc") @projects = @projects.offset(@project_pages.offset).limit(@project_pages.per_page) + + #gcm + @project_activity_count=get_project_activity @projects,@project_activity_count + #gcmend + end respond_to do |format| @@ -255,17 +289,76 @@ class ProjectsController < ApplicationController end end +#gcm def search #modified by nie project_type = params[:project_type].to_i projects_all = (project_type.eql? Project::ProjectType_course) ? Project.course_entities : Project.project_entities @projects = projects_all.visible - @projects = @projects.visible.like(params[:name]) if params[:name].present? - @offset, @limit = api_offset_and_limit({:limit => 10}) - @project_count = @projects.visible.count - @project_pages = Paginator.new @project_count, @limit, params['page'] - @offset ||= @project_pages.offset - @projects = @projects.visible.offset(@offset).limit(@limit).all + @projects_all = @projects.visible.like(params[:name]) if params[:name].present? + + @project_count = @projects_all.count + @project_pages = Paginator.new @project_count, per_page_option, params['page'] + + #gcm activity count + + @project_activity_count=Hash.new + # count initialize + @projects_all.each do |project| + @project_activity_count[project.id]=0 + end + + #@project_activity_count=get_project_activity @projects_all,@project_activity_count + + #gcm end + + + case params[:project_sort_type] + when '0' + @projects = @projects_all.order("created_on desc") + @s_type = 0 + @projects = @projects.offset(@project_pages.offset).limit(@project_pages.per_page) + + #gcm + @project_activity_count=get_project_activity @projects,@project_activity_count + #gcmend + + when '1' + @projects = @projects_all.order("course_ac_para desc") + @s_type = 1 + @projects = @projects.offset(@project_pages.offset).limit(@project_pages.per_page) + + #gcm + @project_activity_count=get_project_activity @projects,@project_activity_count + #gcmend + + when '2' + @projects = @projects_all.order("watchers_count desc") + @s_type = 2 + @projects = @projects.offset(@project_pages.offset).limit(@project_pages.per_page) + + #gcm + @project_activity_count=get_project_activity @projects,@project_activity_count + #gcmend + + when '3' + #@projects=desc_sort_course_by_avtivity(@project_activity_count_array,@project_all_array) + @project_activity_count=get_project_activity @projects_all,@project_activity_count_array #gcm + @projects=handle_project @projects_all,@project_activity_count + @s_type = 3 + @projects = @projects[@project_pages.offset, @project_pages.per_page] + + else + @s_type = 0 + @projects = @projects_all.order("created_on desc") + @projects = @projects.offset(@project_pages.offset).limit(@project_pages.per_page) + + #gcm + @project_activity_count=get_project_activity @projects,@project_activity_count + #gcmend + + end + respond_to do |format| format.html { render :layout => 'base' @@ -285,6 +378,38 @@ class ProjectsController < ApplicationController } end end +#gcmend + + # def search + # #modified by nie + # project_type = params[:project_type].to_i + # projects_all = (project_type.eql? Project::ProjectType_course) ? Project.course_entities : Project.project_entities + # @projects = projects_all.visible + # @projects = @projects.visible.like(params[:name]) if params[:name].present? + # @offset, @limit = api_offset_and_limit({:limit => 10}) + # @project_count = @projects.visible.count + # @project_pages = Paginator.new @project_count, @limit, params['page'] + # @offset ||= @project_pages.offset + # @projects = @projects.visible.offset(@offset).limit(@limit).all + # respond_to do |format| + # format.html { + # render :layout => 'base' + # scope = Project + # unless params[:closed] + # scope = scope.active + # end + # } + # format.api { + # # @offset, @limit = api_offset_and_limit + # # @project_count = Project.visible.count + # # @projects = Project.visible.offset(@offset).limit(@limit).order('lft').all + # } + # format.atom { + # projects = Project.visible.order('created_on DESC').limit(Setting.feeds_limit.to_i).all + # render_feed(projects, :title => "#{Setting.app_title}: #{l(:label_project_latest)}") + # } + # end + # end # added by fq def new_join @@ -953,7 +1078,7 @@ class ProjectsController < ApplicationController end #file_count - Attachment.where(container_id: @project_ids).where("container_type='Project' AND created_on>?",date_from).each do |attachment| + Attachment.where(container_id: @project_ids, container_type: Project).where("created_on>?",date_from).each do |attachment| activities[attachment.container_id]+=1 end @@ -969,7 +1094,7 @@ class ProjectsController < ApplicationController end #feedbackc_count - JournalsForMessage.where(jour_id: @project_ids).each do |jourformess| + JournalsForMessage.where(jour_id: @project_ids, jour_type: Project).each do |jourformess| activities[jourformess.jour_id]+=1 end @@ -988,17 +1113,16 @@ class ProjectsController < ApplicationController #gcm def handle_project projects,activities - @project_activity_count_array=activities.values() + project_activity_count_array=activities.values() - project_all_array=[] + project_array=[] i=0; projects.each do |project| - id=project.id - @project_all_array[i]=project + project_array[i]=project i=i+1 end - projects=desc_sort_course_by_avtivity(@project_activity_count_array,project_all_array) + projects=desc_sort_course_by_avtivity(project_activity_count_array,project_array) return projects end @@ -1017,21 +1141,6 @@ class ProjectsController < ApplicationController end end return projects - - - - # len=activity_count.length - # for i in 0...(len-1) do - # for j in 0...(len-i-1) do - # if activity_count[j]>activity_count[j+1] do - # count_temp=activity_count[j] - - # activity_count[j]=activity_count[j+1] - # activity_count[j+1]=count_temp - # end - # end - # end -#desc_sort_course_by_avtivity(@project_ids,@project_activity_count_array,@projects_all) end #gcmend From 53574a95926857c42a2b5ef9777f2e7f1ef629f9 Mon Sep 17 00:00:00 2001 From: Wen Date: Wed, 30 Apr 2014 16:19:49 +0800 Subject: [PATCH 3/7] wenwenwen --- config/locales/zh.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/config/locales/zh.yml b/config/locales/zh.yml index 9acb5e592..15cd1dca4 100644 --- a/config/locales/zh.yml +++ b/config/locales/zh.yml @@ -1877,5 +1877,4 @@ zh: label_relation_files: 关联已有资源 label_contest_settings: 配置竞赛 label_contest_delete: 删除竞赛 - label_school_all: 学校列表 \ No newline at end of file From 688438241ecf3ebf18f637e99755285e3d2d89d8 Mon Sep 17 00:00:00 2001 From: wanglinchun Date: Wed, 30 Apr 2014 16:46:24 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E9=A1=B5=E9=9D=A2=E4=B8=AD=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...softapplication_index_top_content.html.erb | 2 +- app/views/softapplications/index.html.erb | 38 +------------------ app/views/softapplications/show.html.erb | 2 +- 3 files changed, 4 insertions(+), 38 deletions(-) diff --git a/app/views/layouts/_base_softapplication_index_top_content.html.erb b/app/views/layouts/_base_softapplication_index_top_content.html.erb index 0a41036f1..93b177b99 100644 --- a/app/views/layouts/_base_softapplication_index_top_content.html.erb +++ b/app/views/layouts/_base_softapplication_index_top_content.html.erb @@ -3,7 +3,7 @@ 创新竞赛社区 <%= l(:label_user_location) %> : - +
<%= image_tag('/images/app1.png')%>
<%= softapplication.description.truncate(95, omission: '...') %>
-
+
<%contest = softapplication.contests.first%> -

所属竞赛:<%= contest ? link_to(contest.name, show_softapplication_contest_path(contest) ) : '尚未加入竞赛'%>

+

所属竞赛:<%= contest ? link_to(contest.name.truncate(10, omission: '...'), show_softapplication_contest_path(contest), title: contest.name.to_s ) : '尚未加入竞赛'%>

所属类别:<%= softapplication.app_type_name %>

系统支持:<%= softapplication.android_min_version_available %>

diff --git a/app/views/softapplications/show.html.erb b/app/views/softapplications/show.html.erb index 7d876d6c8..510250ee0 100644 --- a/app/views/softapplications/show.html.erb +++ b/app/views/softapplications/show.html.erb @@ -87,7 +87,7 @@
-
+
软件截图:
<% @image_results.take(4).each do |attachment| %> From c893227609d390f5a006dda0dfa061c52ce61a5e Mon Sep 17 00:00:00 2001 From: Wen Date: Wed, 30 Apr 2014 17:47:20 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E4=B8=AA=E4=BA=BA=E8=B5=84=E6=96=99?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E5=AD=A6=E6=A0=A1=E9=80=89=E6=8B=A9=E6=A1=86?= =?UTF-8?q?=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/my/account.html.erb | 37 +++++++++++++++++++++++------------ public/stylesheets/nyan.css | 10 +++++++--- 2 files changed, 32 insertions(+), 15 deletions(-) diff --git a/app/views/my/account.html.erb b/app/views/my/account.html.erb index 341c050d7..58f684009 100644 --- a/app/views/my/account.html.erb +++ b/app/views/my/account.html.erb @@ -108,22 +108,23 @@ -

+

<% unless User.current.user_extensions.school.nil? %> - <%= l(:field_occupation) %> *<%= select_tag "province", options_from_collection_for_select(School.find_by_sql("select distinct province from schools"), :province, :province, User.current.user_extensions.school.province), :onclick => "get_options(this.value)" %> - - - - - + + <%= l(:field_occupation) %> * + + + + + - <% else %> - <%= l(:field_occupation) %> *<%= select_tag "province", options_from_collection_for_select(School.find_by_sql("select distinct province from schools"), :province, :province), :onclick => "get_options(this.value)" %> + + <%= l(:field_occupation) %> * + + + - - <% end %>

@@ -131,6 +132,18 @@

学校列表

+
+
    + <% @ss = School.find_by_sql("select distinct province from schools") %> + <% @ss.each do |s| %> +
  • + <%= s.province %> + +
  • + <% end %> +
+
+
    diff --git a/public/stylesheets/nyan.css b/public/stylesheets/nyan.css index 62c47abb2..85751a088 100644 --- a/public/stylesheets/nyan.css +++ b/public/stylesheets/nyan.css @@ -227,17 +227,15 @@ body { display: none; padding-bottom: 2px; width: 1000px; - height: 500px; z-index: 100; left: 50%; margin-left: -202px; opacity: 1; position: fixed; top: 200px; - overflow: scroll; } #WOpenWindow .school_list{ - width:1000px; + width: 900px; line-height: 20px; } @@ -259,6 +257,12 @@ body { } #WOpenWindow .content{ width: 1000px; + height: 220px; + overflow: scroll; +} + +#WOpenWindow .pcontent{ + } From e6288627adda9c789519ca22c872f2174daab8b0 Mon Sep 17 00:00:00 2001 From: Wen Date: Wed, 30 Apr 2014 20:26:15 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E4=B8=AD=E5=9B=BD=E9=AB=98=E6=A0=A1?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=EF=BC=8C=E4=B8=8B=E6=8B=89=E6=A1=86=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/controllers/school_controller.rb | 13 +++++++++++++ app/views/school/index.html.erb | 24 +++++++++++++++++++++--- config/routes.rb | 3 +++ 3 files changed, 37 insertions(+), 3 deletions(-) diff --git a/app/controllers/school_controller.rb b/app/controllers/school_controller.rb index 5ba6d836b..5b405a27a 100644 --- a/app/controllers/school_controller.rb +++ b/app/controllers/school_controller.rb @@ -32,6 +32,19 @@ class SchoolController < ApplicationController def index end + + def get_province + @provinces = School.find_by_sql("select distinct province from schools") + + options = "" + + @provinces.each do |p| + options << "" + end + + render :text => options + + end def get_options @school = School.where("province = ?", params[:province]) diff --git a/app/views/school/index.html.erb b/app/views/school/index.html.erb index c9fca54aa..31bbc587f 100644 --- a/app/views/school/index.html.erb +++ b/app/views/school/index.html.erb @@ -1,4 +1,22 @@ <% port = ":3000" if Rails.env.development? %> + + +