diff --git a/app/helpers/projects_helper.rb b/app/helpers/projects_helper.rb index 0b3f337bc..4580798ee 100644 --- a/app/helpers/projects_helper.rb +++ b/app/helpers/projects_helper.rb @@ -243,4 +243,26 @@ module ProjectsHelper end end + def sort_project_by_hot + return sort_project_by_hot_rails + @projects_status = ProjectStatus.visible.where("project_statuses.project_type <> ? or project_statuses.project_type is null", 1) + @projects_status = @projects_status.reorder('grade').all.reverse + @projects = [] + @projects_status.each do |obj| + break if(@projects_status[10] == obj) + @projects << Project.visible.find_by_id("#{obj.project_id}")#where('id=:id', id: obj.project_id) + end + @projects + rescue NoMethodError + [] + end + + def sort_project_by_hot_rails + # @projects_status = ProjectStatus.visible.where("project_statuses.project_type <> ? or project_statuses.project_type is null", 1) + # @projects_status = @projects_status.reorder('grade').all.reverse + # Project.joins(@projects_status).limit(10) + limit = 10 + Project.find_by_sql("SELECT * FROM projects RIGHT OUTER JOIN (SELECT * FROM project_statuses ORDER BY grade DESC LIMIT #{limit} ) AS t ON projects.id = t.project_id ") + end + end diff --git a/app/helpers/welcome_helper.rb b/app/helpers/welcome_helper.rb index 002bc470f..5a7866dc7 100644 --- a/app/helpers/welcome_helper.rb +++ b/app/helpers/welcome_helper.rb @@ -18,4 +18,43 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. module WelcomeHelper + include ProjectsHelper + + def newbieTopiclist + find_all_topic_by_board_id + end + + def newbieTopicStickyList + find_all_topic_by_board_id 1 + end + + def find_project_by_topic topic + board = find_board_by_topic(topic) + find_project_by_board board + end + + def find_all_hot_project + sort_project_by_hot + end + + private + + def search_project + Project.find_by_identifier "newbie_faq" + end + + def find_all_topic_by_board_id sticky = 0, limit = 30 + project = search_project + return [] if(project.nil? or project.boards.nil?) + board_id = project.boards.first.id + logger.debug "[WelcomeHelper] ===> find_all_topic_by_board_id=> project.id:#{project.id}, board_id:#{board_id}, sticky:#{sticky}" + Message.where("board_id = :board_id and sticky=:sticky", :board_id => board_id, :sticky => sticky ).limit(limit) + end + + def find_board_by_topic topic + Board.find_by_id(topic.board_id) + end + def find_project_by_board board + Project.find_by_id(board.project_id) + end end diff --git a/app/views/welcome/index.html.erb b/app/views/welcome/index.html.erb index 715a67779..da406ad66 100644 --- a/app/views/welcome/index.html.erb +++ b/app/views/welcome/index.html.erb @@ -103,26 +103,30 @@ <%= stylesheet_link_tag 'welcome' %>
<%= project.description %>
+ +