Conflicts:
	db/schema.rb
This commit is contained in:
nwb 2014-07-16 15:05:57 +08:00
commit 36ab954cf9
15 changed files with 292 additions and 65 deletions

View File

@ -43,7 +43,7 @@ group :development, :test do
gem 'spork-testunit' gem 'spork-testunit'
gem 'guard-spork' gem 'guard-spork'
gem 'guard-test', '~> 1.0.0' gem 'guard-test', '~> 1.0.0'
gem 'ruby-prof' #gem 'ruby-prof'
gem 'pry' gem 'pry'
gem 'pry-nav' gem 'pry-nav'
end end

View File

@ -189,7 +189,6 @@ GEM
sass-rails sass-rails
rmagick (2.13.2) rmagick (2.13.2)
ruby-openid (2.1.8) ruby-openid (2.1.8)
ruby-prof (0.15.1)
rubyzip (1.1.6) rubyzip (1.1.6)
sass (3.3.10) sass (3.3.10)
sass-rails (3.2.6) sass-rails (3.2.6)
@ -269,7 +268,6 @@ DEPENDENCIES
rich (= 1.4.6) rich (= 1.4.6)
rmagick (>= 2.0.0) rmagick (>= 2.0.0)
ruby-openid (~> 2.1.4) ruby-openid (~> 2.1.4)
ruby-prof
sass-rails (~> 3.2.3) sass-rails (~> 3.2.3)
seems_rateable! seems_rateable!
shoulda (> 3.3.2) shoulda (> 3.3.2)

View File

@ -244,6 +244,7 @@ class AdminController < ApplicationController
@first_page.web_title = params[:web_title] @first_page.web_title = params[:web_title]
@first_page.description = params[:description] @first_page.description = params[:description]
@first_page.title = params[:title] @first_page.title = params[:title]
@first_page.sort_type = params[:sort_type]
if @first_page.save if @first_page.save
respond_to do |format| respond_to do |format|
flash[:notice] = l(:notice_successful_update) flash[:notice] = l(:notice_successful_update)

View File

@ -17,12 +17,40 @@
class WelcomeController < ApplicationController class WelcomeController < ApplicationController
include ApplicationHelper include ApplicationHelper
include WelcomeHelper
caches_action :robots caches_action :robots
# before_filter :fake, :only => [:index, :course] # before_filter :fake, :only => [:index, :course]
before_filter :entry_select, :only => [:index] before_filter :entry_select, :only => [:index]
def index def index
@first_page = FirstPage.where("page_type = 'project'").first @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 end
def robots def robots

View File

@ -208,7 +208,7 @@ module WelcomeHelper
#c1 = find_new_project(sum).to_a.dup #c1 = find_new_project(sum).to_a.dup
#c2 = find_all_hot_project(sum).to_a.dup #c2 = find_all_hot_project(sum).to_a.dup
#(c2.take(sum-max)+c1.take(max)).take(sum) #(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 end
def find_new_course limit=15 def find_new_course limit=15
@ -433,7 +433,7 @@ module WelcomeHelper
# FROM projects AS p LEFT OUTER JOIN ( # FROM projects AS p LEFT OUTER JOIN (
# SELECT project_id,grade FROM project_statuses # 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 ") # 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 end
def sort_bid_by_hot_rails reward_type, limit = 10 def sort_bid_by_hot_rails reward_type, limit = 10

View File

@ -1,6 +1,6 @@
class FirstPage < ActiveRecord::Base class FirstPage < ActiveRecord::Base
attr_accessible :description, :title, :web_title,:page_type 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 :web_title,:title, maximum: 30
validates_length_of :description, maximum: 100 validates_length_of :description, maximum: 100
end end

View File

@ -28,6 +28,14 @@
<label for='description' style="vertical-align: top">&nbsp;&nbsp;&nbsp;<%= l(:label_site_description)%>:</label> <label for='description' style="vertical-align: top">&nbsp;&nbsp;&nbsp;<%= l(:label_site_description)%>:</label>
<%= text_area_tag 'description',@first_page.description,:rows => 8, :size => 30,:style => "font-size:small;width:490px;margin-left:10px;" %> <%= text_area_tag 'description',@first_page.description,:rows => 8, :size => 30,:style => "font-size:small;width:490px;margin-left:10px;" %>
</p> </p>
<p style="margin-left:60px;padding-right: 20px;">
<label for='sort_type' style="vertical-align: top">&nbsp;&nbsp;&nbsp;<%= l(:label_sort_type)%>:</label>
<select name="sort_type" id="sort_type" style="font-size:small;width:496px;margin-left:80px;">
<option value="1" <%= "selected=selected" if @first_page.sort_type == 1 %>><%= l(:label_sort_by_active) %></option>
<option value="2" <%= "selected=selected" if @first_page.sort_type == 2 %>><%= l(:label_sort_by_influence) %></option>
<option value="0" <%= "selected=selected" if @first_page.sort_type == 0 %>><%= l(:label_sort_by_time) %></option>
</select>
</p>
<%= submit_tag l(:button_save), :class => "small", :name => nil %> <%= submit_tag l(:button_save), :class => "small", :name => nil %>
<% end %> <% end %>

View File

@ -60,8 +60,8 @@
<span style="margin-top: -20px;float: right; display: block;"><%= link_to "更多>>", { :controller => 'projects', :action => 'index', :project_type => 0, :host => Setting.project_domain}, :target => "_blank" %></span> <span style="margin-top: -20px;float: right; display: block;"><%= link_to "更多>>", { :controller => 'projects', :action => 'index', :project_type => 0, :host => Setting.project_domain}, :target => "_blank" %></span>
<div class="d-p-projectlist-box"> <div class="d-p-projectlist-box">
<ul class="d-p-projectlist"> <ul class="d-p-projectlist">
<% projects = find_miracle_project(10, 3) %> <% #projects = find_miracle_project(10, 3) %>
<% projects.map do |project| %> <% @projects.map do |project| %>
<!--<%# cache cache_key_for_project(project) do %> --> <!--<%# cache cache_key_for_project(project) do %> -->
<li style="position:relative;height:6em;" class='<%= cycle("odd", "even") %>'> <li style="position:relative;height:6em;" class='<%= cycle("odd", "even") %>'>
<div style="float: left;"> <div style="float: left;">

View File

@ -572,6 +572,7 @@ zh:
label_site_title: 网站标题 label_site_title: 网站标题
label_site_description: 网站简介 label_site_description: 网站简介
label_site_image: 简介图片 label_site_image: 简介图片
label_sort_type: 热门项目排序方式
#by young #by young
label_requirement: 需求 label_requirement: 需求
label_new_course: 课程列表 label_new_course: 课程列表

View File

@ -0,0 +1,5 @@
class AddColumnForFirstPage < ActiveRecord::Migration
def change
add_column("first_pages","sort_type",:integer)
end
end

View File

@ -0,0 +1,8 @@
class SetSortType < ActiveRecord::Migration
def change
FirstPage.all.each do |fp|
fp.sort_type = 1
fp.save
end
end
end

View File

@ -1,69 +1,126 @@
--- ---
courses_006: courses_008:
id: 6 id: 8
tea_id: 193 tea_id: 5
name: name: 分布式计算环境
state: 0 state:
code: code:
time: 2013 time: 2013
extra: course2013-09-30_08-11-15 extra: course2013-09-30_23-36-00
created_at: 2013-09-30 08:11:15.000000000 +08:00 created_at: 2013-09-30 15:36:00.000000000 Z
updated_at: 2013-10-11 12:34:29.000000000 +08:00 updated_at: 2014-04-19 01:50:41.000000000 Z
location: location:
term: "秋季学期" term: 春季学期
string:
password: '1234'
setup_time:
endup_time: '2014-04-18 00:00:00'
class_period: ''
school_id: 117
description: 介绍分布计算模型,分布计算平台,分布式软件开发环境等分布计算方向的概念、技术和环境,并通过实验提高学生的实践能力。
status: 1
attachmenttype: 2
lft:
rgt:
is_public: 1
inherit_members: 1
courses_058:
id: 58
tea_id: 1168
name: 软件工程实践
state:
code:
time: 2014
extra: course2014-04-17_17-12-17
created_at: 2014-04-17 09:12:17.000000000 Z
updated_at: 2014-04-17 09:12:17.000000000 Z
location:
term: 春季学期
string:
password: SEP2014
setup_time:
endup_time:
class_period: '18'
school_id: 0
description: 国防科技大学计算机学院工程硕士专业选修课。
status: 1
attachmenttype: 2
lft:
rgt:
is_public: 1
inherit_members: 1
courses_059:
id: 59
tea_id: 193
name: 软件项目管理
state:
code:
time: 2014
extra: course2014-04-18_18-10-46
created_at: 2014-04-18 10:10:46.000000000 Z
updated_at: 2014-04-18 10:10:46.000000000 Z
location:
term: 春季学期
string: string:
password: software password: software
setup_time: setup_time:
endup_time: endup_time:
class_period: class_period: '30'
courses_004: school_id: 0
id: 4 description: 面向“软件工程”专业的本科生
tea_id: 193 status: 1
name: attachmenttype: 2
state: 0 lft:
code: rgt:
time: 2013 is_public: 1
extra: course2013-09-27_11-16-11 inherit_members: 1
created_at: 2013-09-27 11:16:11.000000000 +08:00 courses_060:
updated_at: 2013-12-21 10:55:20.000000000 +08:00 id: 60
location: tea_id: 1179
term: "秋季学期" name: android开发
string:
password: '123456'
setup_time: ''
endup_time: ''
class_period: ''
courses_012:
id: 12
tea_id: 193
name:
state: state:
code: code:
time: 2013 time: 2014
extra: course2013-10-08_20-52-10 extra: course2014-04-19_15-40-39
created_at: 2013-10-08 20:52:10.000000000 +08:00 created_at: 2014-04-19 07:40:39.000000000 Z
updated_at: 2013-10-08 20:52:10.000000000 +08:00 updated_at: 2014-04-19 07:40:39.000000000 Z
location: location:
term: "秋季学期" term: 春季学期
string: string:
password: software password: trustie740208
setup_time: setup_time:
endup_time: endup_time:
class_period: class_period: '48'
courses_020: school_id: 37
id: 20 description: ''
tea_id: 193 status: 1
name: attachmenttype: 2
lft:
rgt:
is_public: 1
inherit_members: 1
courses_061:
id: 61
tea_id: 29
name: 测试课程1
state: state:
code: code:
time: 2013 time: 2014
extra: course2013-10-21_20-47-58 extra: course2014-06-04_14-51-56
created_at: 2013-10-21 20:47:58.000000000 +08:00 created_at: 2014-06-04 06:51:56.000000000 Z
updated_at: 2014-01-08 09:48:56.000000000 +08:00 updated_at: 2014-07-15 01:40:49.000000000 Z
location: location:
term: '秋季学期' term: 春季学期
string: string:
password: multi-agent password: '1234'
setup_time: '' setup_time:
endup_time: '' endup_time: '2014-07-14 00:00:00'
class_period: '' class_period: '23'
school_id: 1579
description: '233'
status: 1
attachmenttype: 2
lft:
rgt:
is_public: 0
inherit_members: 1

View File

@ -1,5 +1,3 @@
# Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
person_one_extra: person_one_extra:
id: 44 id: 44
user_id: 29 user_id: 29
@ -36,4 +34,43 @@ person_mao_extra:
student_id: nil student_id: nil
teacher_realname: nil teacher_realname: nil
student_realname: nil student_realname: nil
location_city: nil location_city: nil
ue_lirongzhen:
id: 587
user_id: 642
birthday:
brief_introduction:
gender: 0
location: 河南
occupation: kylinos-cloud
work_experience:
zip_code:
created_at: 2014-03-18 14:52:55.000000000 Z
updated_at: 2014-03-26 07:19:04.000000000 Z
technical_title:
identity: 1
student_id: '14066023'
teacher_realname:
student_realname:
location_city: 周口
school_id:
ue_yingang:
id: 6
user_id: 5
birthday:
brief_introduction: 现有功能的精细化!
gender: 0
location: 湖南
occupation: 国防科学技术大学计算机学院
work_experience:
zip_code:
created_at: 2013-09-24 09:36:12.000000000 Z
updated_at: 2014-04-19 08:16:55.000000000 Z
technical_title: 副教授
identity: 0
student_id: ''
teacher_realname:
student_realname:
location_city: 长沙
school_id: 117

View File

@ -72,7 +72,7 @@ users_003:
login: dlopper login: dlopper
type: User type: User
users_005: users_005:
id: 5 id: 12
created_on: 2006-07-19 19:33:19 +02:00 created_on: 2006-07-19 19:33:19 +02:00
# Locked # Locked
status: 3 status: 3
@ -165,5 +165,39 @@ groups_011:
id: 11 id: 11
lastname: B Team lastname: B Team
type: Group type: Group
users_yingang_teacher:
id: 5
login: jacknudt
hashed_password: dbbd96684c9a64afe9c4935ce0b517e5e9c08064
firstname:
lastname:
mail: jack_nudt@163.com
admin: false
status: 1
last_login_on: 2014-04-27 13:49:18.000000000 Z
language: zh
auth_source_id:
created_on: 2013-06-25 05:20:59.000000000 Z
updated_on: 2014-07-16 03:37:51.000000000 Z
type: User
identity_url:
mail_notification: only_my_events
salt: 92944df2ce4dae1a4f01007263c5d8bb
users_lirongzhen_student:
id: 642
login: lirongzhen
hashed_password: 070922b015398577c3ae0d87a68d5ffa93bf82e9
firstname: 荣振
lastname:
mail: lrongzheni@gmail.com
admin: false
status: 1
last_login_on: 2014-04-16 14:06:07.000000000 Z
language: zh
auth_source_id:
created_on: 2014-03-18 14:52:55.000000000 Z
updated_on: 2014-03-26 07:19:04.000000000 Z
type: User
identity_url:
mail_notification: all
salt: dca66d84fcb88b37de04dd3058f73576

View File

@ -0,0 +1,50 @@
require File.expand_path('../../test_helper', __FILE__)
class CoursesControllerTest < ActionController::TestCase
fixtures :courses, :users, :user_extensions, :roles, :members, :member_roles, :enabled_modules, :boards, :messages
def setup
@request.session[:user_id] = nil
@request.session[:ctime] = Time.now.to_i
@request.session[:atime] = Time.now.to_i
Setting.default_language = 'en'
end
def test_index_by_anonymous_should_not_show_private_projects
get :index
assert_response :success
assert_template 'index'
courses = assigns(:courses)
assert_not_nil courses
assert courses.all?(&:is_public?)
end
test "test_create_courses_anyone_temporary" do
@request.session[:user_id] = 5
Role.find(2).add_permisstion! :add_course
get :new
assert_redirected_to new_course_path
assert_response :success
end
# test "#index by non-admin user with view_time_entries permission should show overall spent time link" do
# @request.session[:user_id] = 3
# get :index
# assert_template 'index'
# assert_select 'a[href=?]', '/time_entries'
# end
#
# test "#index by non-admin user without view_time_entries permission should not show overall spent time link" do
# Role.find(2).remove_permission! :view_time_entries
# Role.non_member.remove_permission! :view_time_entries
# Role.anonymous.remove_permission! :view_time_entries
# @request.session[:user_id] = 3
#
# get :index
# assert_template 'index'
# assert_select 'a[href=?]', '/time_entries', 0
# end
end