|
|
|
@ -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
|
|
|
|
|
#@project_activity_count=get_project_activity @projects_all,@project_activity_count
|
|
|
|
|
#gcm end
|
|
|
|
|
|
|
|
|
|
#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
|
|
|
|
|
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)
|
|
|
|
|
|
|
|
|
|
#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
|
|
|
|
|
#gcm
|
|
|
|
|
@project_activity_count=get_project_activity @projects,@project_activity_count
|
|
|
|
|
#gcmend
|
|
|
|
|
|
|
|
|
|
#message_count
|
|
|
|
|
boards=Board.where("project_id=?",project.id)
|
|
|
|
|
message_count=0
|
|
|
|
|
boards.each do |board|
|
|
|
|
|
message_count+=board.messages.count
|
|
|
|
|
end
|
|
|
|
|
when '1'
|
|
|
|
|
@projects = @projects_all.order("course_ac_para desc")
|
|
|
|
|
@s_type = 1
|
|
|
|
|
@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 '2'
|
|
|
|
|
@projects = @projects_all.order("watchers_count desc")
|
|
|
|
|
@s_type = 2
|
|
|
|
|
@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
|
|
|
|
|
#gcm
|
|
|
|
|
when '3'
|
|
|
|
|
|
|
|
|
|
#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_all,@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
|
|
|
|
|
@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
|
|
|
|
|
|
|
|
|
|
#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
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
#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
|
|
|
|
|
#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?
|
|
|
|
|
|
|
|
|
|
#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
|
|
|
|
|
@project_count = @projects_all.count
|
|
|
|
|
@project_pages = Paginator.new @project_count, per_page_option, params['page']
|
|
|
|
|
|
|
|
|
|
#feedbackc_count
|
|
|
|
|
JournalsForMessage.where(jour_id: @project_ids).each do |jourformess|
|
|
|
|
|
@project_activity_count[jourformess.jour_id]+=1
|
|
|
|
|
end
|
|
|
|
|
#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
|
|
|
|
|
@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
|
|
|
|
|
#gcm
|
|
|
|
|
@project_activity_count=get_project_activity @projects,@project_activity_count
|
|
|
|
|
#gcmend
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
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'
|
|
|
|
@ -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
|
|
|
|
|