diff --git a/app/controllers/memos_controller.rb b/app/controllers/memos_controller.rb
index f6ad48801..20f0b45c4 100644
--- a/app/controllers/memos_controller.rb
+++ b/app/controllers/memos_controller.rb
@@ -148,7 +148,8 @@ class MemosController < ApplicationController
def find_memo
return unless find_forum
- @memo = @forum.memos.find(params[:id])
+ #@memo = @forum.memos.find(params[:id])
+ @memo = Memo.find(params[:id])
rescue ActiveRecord::RecordNotFound
render_404
nil
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb
index 730546aa6..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,122 +212,105 @@ 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_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
+ #@project_activity_count=get_project_activity @projects_all,@project_activity_count
+ #gcm 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
+ 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)
- #time_entry_count
- time_entry_count=TimeEntry.where("project_id=?",project.id).count
+ #gcm
+ @project_activity_count=get_project_activity @projects,@project_activity_count
+ #gcmend
- #sum
- @project_activity_count[project.id.to_s]=issue_count+repository_count+news_count+document_count+file_count+message_count+time_entry_count
+ when '1'
+ @projects = @projects_all.order("course_ac_para desc")
+ @s_type = 1
+ @projects = @projects.offset(@project_pages.offset).limit(@project_pages.per_page)
- end
-=end
-#gcm
+ #gcm
+ @project_activity_count=get_project_activity @projects,@project_activity_count
+ #gcmend
-#gcm approach 2
+ when '2'
+ @projects = @projects_all.order("watchers_count desc")
+ @s_type = 2
+ @projects = @projects.offset(@project_pages.offset).limit(@project_pages.per_page)
- #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
+ #gcm
+ @project_activity_count=get_project_activity @projects,@project_activity_count
+ #gcmend
- #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
+ #gcm
+ when '3'
+ #gcm
+ @project_activity_count=get_project_activity @projects_all,@project_activity_count
+ #gcmend
- #news_count
- News.where(project_id: @project_ids).where("created_on>?",date_from).each do |news|
- @project_activity_count[news.project_id]+=1
- end
+ @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)
- #document_count
- Document.where(project_id: @project_ids).where("created_on>?",date_from).each do |document|
- @project_activity_count[document.project_id]+=1
- end
+ #gcm
+ @project_activity_count=get_project_activity @projects,@project_activity_count
+ #gcmend
- #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
+ respond_to do |format|
+ format.html {
+ render :layout => 'base'
+ }
+ 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
- #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
+#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_all = @projects.visible.like(params[:name]) if params[:name].present?
- #feedbackc_count
- JournalsForMessage.where(jour_id: @project_ids).each do |jourformess|
- @project_activity_count[jourformess.jour_id]+=1
- end
+ @project_count = @projects_all.count
+ @project_pages = Paginator.new @project_count, per_page_option, params['page']
+
+ #gcm activity count
- #@project_activity_count!=0
- @project_all_array=[]
- i=0;
+ @project_activity_count=Hash.new
+ # count initialize
@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
+ @project_activity_count[project.id]=0
end
- @project_activity_count_array=@project_activity_count.values()
+ #@project_activity_count=get_project_activity @projects_all,@project_activity_count
-#gcm end
+ #gcm end
case params[:project_sort_type]
@@ -316,55 +318,47 @@ 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
+ #gcm
+ @project_activity_count=get_project_activity @projects,@project_activity_count
+ #gcmend
+
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)
+ @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]
- #gcmend
else
@s_type = 0
@projects = @projects_all.order("created_on desc")
@projects = @projects.offset(@project_pages.offset).limit(@project_pages.per_page)
- end
- respond_to do |format|
- format.html {
- render :layout => 'base'
- }
- 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
+ #gcm
+ @project_activity_count=get_project_activity @projects,@project_activity_count
+ #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
+ end
+
respond_to do |format|
format.html {
render :layout => 'base'
@@ -384,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
@@ -1018,7 +1044,93 @@ 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, container_type: Project).where("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, jour_type: Project).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_array=[]
+ i=0;
+ projects.each do |project|
+ project_array[i]=project
+ i=i+1
+ end
+
+ projects=desc_sort_course_by_avtivity(project_activity_count_array,project_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|
@@ -1029,20 +1141,7 @@ 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
+
end
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/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) %> : |
-
+ |
<%= text_field_tag 'name', params[:name], :size => 25 %>
<%= hidden_field_tag 'project_type', params[:project_type] %>
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/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])) %>
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? %>
+
+
+
|