From cc4bf3b328262c80568b4e90c78d00d141f93d93 Mon Sep 17 00:00:00 2001
From: z9hang
Date: Wed, 16 Jul 2014 14:22:12 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=B6=85=E7=BA=A7=E7=AE=A1?=
=?UTF-8?q?=E7=90=86=E5=91=98=E6=8E=A7=E5=88=B6=E9=A6=96=E9=A1=B5=E7=83=AD?=
=?UTF-8?q?=E9=97=A8=E9=A1=B9=E7=9B=AE=E6=8E=92=E5=BA=8F=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/controllers/admin_controller.rb | 1 +
app/controllers/welcome_controller.rb | 28 +++++++++++++++++++
app/helpers/welcome_helper.rb | 4 +--
app/models/first_page.rb | 2 +-
app/views/admin/first_page_made.html.erb | 8 ++++++
app/views/welcome/index.html.erb | 4 +--
config/locales/zh.yml | 1 +
...0140716021202_add_column_for_first_page.rb | 5 ++++
db/migrate/20140716021558_set_sort_type.rb | 8 ++++++
db/schema.rb | 3 +-
10 files changed, 58 insertions(+), 6 deletions(-)
create mode 100644 db/migrate/20140716021202_add_column_for_first_page.rb
create mode 100644 db/migrate/20140716021558_set_sort_type.rb
diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb
index fea29759d..171d34377 100644
--- a/app/controllers/admin_controller.rb
+++ b/app/controllers/admin_controller.rb
@@ -244,6 +244,7 @@ class AdminController < ApplicationController
@first_page.web_title = params[:web_title]
@first_page.description = params[:description]
@first_page.title = params[:title]
+ @first_page.sort_type = params[:sort_type]
if @first_page.save
respond_to do |format|
flash[:notice] = l(:notice_successful_update)
diff --git a/app/controllers/welcome_controller.rb b/app/controllers/welcome_controller.rb
index 03bca6162..48c0cf1fb 100644
--- a/app/controllers/welcome_controller.rb
+++ b/app/controllers/welcome_controller.rb
@@ -17,12 +17,40 @@
class WelcomeController < ApplicationController
include ApplicationHelper
+ include WelcomeHelper
caches_action :robots
# before_filter :fake, :only => [:index, :course]
before_filter :entry_select, :only => [:index]
def index
@first_page = FirstPage.where("page_type = 'project'").first
+ @hot_projects = find_miracle_project(10, 3)
+ @hot_projects_ids = []
+ @hot_projects.each do |p|
+ @hot_projects_ids << p
+ end
+ @projects_all = Project.active.visible.
+ joins("LEFT JOIN #{ProjectStatus.table_name} ON #{Project.table_name}.id = #{ProjectStatus.table_name}.project_id").
+ where("#{Project.table_name}.project_type = ? and #{Project.table_name}.id in (?)", Project::ProjectType_project,@hot_projects_ids)
+
+ case @first_page.sort_type
+ when 0
+ @projects = @projects_all.order("created_on desc")
+ when 1
+ @projects = @projects_all.order("grade desc")
+ when 2
+ @projects = @projects_all.order("watchers_count desc")
+
+ #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_all.order("grade desc")
+ end
end
def robots
diff --git a/app/helpers/welcome_helper.rb b/app/helpers/welcome_helper.rb
index 4ff5a48e4..99357a3d0 100644
--- a/app/helpers/welcome_helper.rb
+++ b/app/helpers/welcome_helper.rb
@@ -208,7 +208,7 @@ module WelcomeHelper
#c1 = find_new_project(sum).to_a.dup
#c2 = find_all_hot_project(sum).to_a.dup
#(c2.take(sum-max)+c1.take(max)).take(sum)
- find_all_hot_project(sum).to_a.dup
+ find_all_hot_project(sum).dup#.to_a.dup
end
def find_new_course limit=15
@@ -433,7 +433,7 @@ module WelcomeHelper
# FROM projects AS p LEFT OUTER JOIN (
# SELECT project_id,grade FROM project_statuses
# WHERE project_type = #{project_type} ORDER BY #{order_by} LIMIT #{limit} ) AS t ON p.id = t.project_id ")
- Project.visible.joins(:project_status).where("#{Project.table_name}.project_type = ?", project_type).order(order_by).limit(limit).all
+ Project.visible.joins(:project_status).where("#{Project.table_name}.project_type = ?", project_type).order(order_by).limit(limit)#.all
end
def sort_bid_by_hot_rails reward_type, limit = 10
diff --git a/app/models/first_page.rb b/app/models/first_page.rb
index 113edc0f8..d1fca531e 100644
--- a/app/models/first_page.rb
+++ b/app/models/first_page.rb
@@ -1,6 +1,6 @@
class FirstPage < ActiveRecord::Base
attr_accessible :description, :title, :web_title,:page_type
- validates_presence_of :web_title, :title, :description,:page_type
+ validates_presence_of :web_title, :title, :description,:page_type,:sort_type
validates_length_of :web_title,:title, maximum: 30
validates_length_of :description, maximum: 100
end
diff --git a/app/views/admin/first_page_made.html.erb b/app/views/admin/first_page_made.html.erb
index d3b7416e4..242b7c689 100644
--- a/app/views/admin/first_page_made.html.erb
+++ b/app/views/admin/first_page_made.html.erb
@@ -28,6 +28,14 @@
<%= text_area_tag 'description',@first_page.description,:rows => 8, :size => 30,:style => "font-size:small;width:490px;margin-left:10px;" %>
+
+
+
+
<%= submit_tag l(:button_save), :class => "small", :name => nil %>
<% end %>
diff --git a/app/views/welcome/index.html.erb b/app/views/welcome/index.html.erb
index 0cc5c5e2a..8ffbb0469 100644
--- a/app/views/welcome/index.html.erb
+++ b/app/views/welcome/index.html.erb
@@ -60,8 +60,8 @@
<%= link_to "更多>>", { :controller => 'projects', :action => 'index', :project_type => 0, :host => Setting.project_domain}, :target => "_blank" %>
- <% projects = find_miracle_project(10, 3) %>
- <% projects.map do |project| %>
+ <% #projects = find_miracle_project(10, 3) %>
+ <% @projects.map do |project| %>
-
diff --git a/config/locales/zh.yml b/config/locales/zh.yml
index 593a73aa6..b1ec95186 100644
--- a/config/locales/zh.yml
+++ b/config/locales/zh.yml
@@ -572,6 +572,7 @@ zh:
label_site_title: 网站标题
label_site_description: 网站简介
label_site_image: 简介图片
+ label_sort_type: 热门项目排序方式
#by young
label_requirement: 需求
label_new_course: 课程列表
diff --git a/db/migrate/20140716021202_add_column_for_first_page.rb b/db/migrate/20140716021202_add_column_for_first_page.rb
new file mode 100644
index 000000000..a7cd6854a
--- /dev/null
+++ b/db/migrate/20140716021202_add_column_for_first_page.rb
@@ -0,0 +1,5 @@
+class AddColumnForFirstPage < ActiveRecord::Migration
+ def change
+ add_column("first_pages","sort_type",:integer)
+ end
+end
diff --git a/db/migrate/20140716021558_set_sort_type.rb b/db/migrate/20140716021558_set_sort_type.rb
new file mode 100644
index 000000000..04511ca2b
--- /dev/null
+++ b/db/migrate/20140716021558_set_sort_type.rb
@@ -0,0 +1,8 @@
+class SetSortType < ActiveRecord::Migration
+ def change
+ FirstPage.all.each do |fp|
+ fp.sort_type = 1
+ fp.save
+ end
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 6a732b3ce..6134f1601 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -11,7 +11,7 @@
#
# It's strongly recommended to check this file into your version control system.
-ActiveRecord::Schema.define(:version => 20140714081030) do
+ActiveRecord::Schema.define(:version => 20140716021558) do
create_table "activities", :force => true do |t|
t.integer "act_id", :null => false
@@ -415,6 +415,7 @@ ActiveRecord::Schema.define(:version => 20140714081030) do
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.string "page_type"
+ t.integer "sort_type"
end
create_table "forums", :force => true do |t|