diff --git a/app/controllers/bids_controller.rb b/app/controllers/bids_controller.rb index 13ef9be5d..9161287bf 100644 --- a/app/controllers/bids_controller.rb +++ b/app/controllers/bids_controller.rb @@ -7,7 +7,7 @@ class BidsController < ApplicationController menu_item :homework_respond, :only => :homework_respond menu_item :homework_statistics, :only => :homework_statistics #Ended by young - before_filter :find_bid, :only => [:show, :show_project, :create, :destroy, :more, :back, :add,:new,:show_results,:set_reward, :add_homework, :fork, :create_fork, + before_filter :find_bid, :only => [:show, :show_project, :create,:destroy,:more,:back,:add,:new,:show_results,:set_reward, :add_homework, :fork, :create_fork, :show_course, :show_bid_project, :show_bid_user] before_filter :require_login,:only => [:set_reward, :destroy, :add, :new, ] @@ -27,8 +27,6 @@ class BidsController < ApplicationController else @bids = Bid.visible.where('reward_type = ?', 1) end - - @bids = @bids.like(params[:name]) if params[:name].present? @bid_count = @bids.count @@ -206,7 +204,7 @@ class BidsController < ApplicationController format.html { render :layout => 'base_contest' } - end + end format.api end @@ -232,12 +230,12 @@ class BidsController < ApplicationController format.html { render :layout => 'base_contest' } - end + end format.api end end - + def show_bid_project bids = Bid.where('parent_id = ?', @bid.id) @projects = [] @@ -258,12 +256,12 @@ class BidsController < ApplicationController format.html { render :layout => 'base_contest' } - end + end format.api end end - + def show_bid_user bids = Bid.where('parent_id = ?', @bid.id) @users = [] @@ -286,7 +284,7 @@ class BidsController < ApplicationController format.html { render :layout => 'base_contest' } - end + end format.api end @@ -310,6 +308,18 @@ class BidsController < ApplicationController # @project = Project.where("id in []", a) @user = @bid.author @bidding_project = @bid.biding_projects.all + if params[:student_id].present? + @temp = [] + @bidding_project.each do |pro| + if pro.project && pro.project.project_status + if /#{params[:student_id]}/ =~ pro.user.user_extensions.student_id + @temp << pro + end + end + @temp + end + @bidding_project = @temp + else #added by nie @temp = [] @bidding_project.each do |pro| @@ -319,9 +329,11 @@ class BidsController < ApplicationController @temp end if @temp.size > 0 - @bidding_project = @temp.sort {|a,b| b.project.project_status.grade <=> a.project.project_status.grade} + @bidding_project = @temp.sort {|a,b| b.project.project_status.grade <=> a.project.project_status.grade} end #ended + end + if @bid.homework_type == 1 @homework = HomeworkAttach.new @homework_list = @bid.homeworks @@ -340,7 +352,7 @@ class BidsController < ApplicationController format.html { render :layout => 'base_contest' } - end + end format.api end end @@ -369,7 +381,7 @@ class BidsController < ApplicationController format.html { render :layout => 'base_contest' } - end + end format.api end end diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index af968144f..eab4feff8 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -536,7 +536,7 @@ class ProjectsController < ApplicationController r = Role.givable.find_by_id(Setting.new_project_user_role_id.to_i) || Role.givable.first m = Member.new(:user => User.current, :roles => [r]) project = ProjectInfo.new(:user_id => User.current.id, :project_id => @project.id) - UserGrade.create(:user_id => User.current.id, :project_id => @project.id, :grade => 0) + user_grades = UserGrade.create(:user_id => User.current.id, :project_id => @project.id) if params[:project][:is_public] == '1' project_status = ProjectStatus.create(:project_id => @project.id, :watchers_count => 0, :changesets_count => 0, :grade => 0, :project_type => @course_tag) end @@ -590,6 +590,7 @@ class ProjectsController < ApplicationController r = Role.givable.find_by_id(Setting.new_project_user_role_id.to_i) || Role.givable.first m = Member.new(:user => User.current, :roles => [r]) project = ProjectInfo.new(:user_id => User.current.id, :project_id => @project.id) + user_grades = UserGrade.create(:user_id => User.current.id, :project_id => @project.id) if params[:project][:is_public] == '1' || @course_tag=="1" project_status = ProjectStatus.create(:project_id => @project.id, :watchers_count => 0, :changesets_count => 0) end diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index cb6b2d677..abb9b3079 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -112,7 +112,9 @@ class UsersController < ApplicationController for user in @watcher events << Redmine::Activity::Fetcher.new(User.current, :author => @user).events(nil, nil, :limit => 30) end - + + + @events_by_day = events.group_by(&:event_date) unless User.current.admin? @@ -424,6 +426,23 @@ class UsersController < ApplicationController @state = 0 end + if params[:user].present? + user_temp = User.find_by_sql("select id from users where firstname like '%#{params[:user]}%' or lastname like '%#{params[:user]}%'") + if user_temp.size > 1 + activity = Activity.where('user_id in (?)', user_temp).order('id desc') + elsif user_temp.size == 1 + activity = Activity.where('user_id = ?', user_temp).order('id desc') + else + activity = Activity.where("1 = 0") + end + @offset, @limit = api_offset_and_limit({:limit => 10}) + @activity_count = activity.count + @activity_pages = Paginator.new @activity_count, @limit, params['page'] + @offset ||= @activity_pages.offset + @activity = activity.offset(@offset).limit(@limit) + @state = 0 + end + #Modified by nie unless User.current.admin? diff --git a/app/views/bids/_list_projects.html.erb b/app/views/bids/_list_projects.html.erb index 790ee53d2..cd0494aea 100644 --- a/app/views/bids/_list_projects.html.erb +++ b/app/views/bids/_list_projects.html.erb @@ -1,6 +1,25 @@ - +<%= form_tag(:controller => 'bids', :action => "show_project", :method => :get) do %> +
<%= l(:label_task_plural)%> | + + + +
+
+ <%= text_field_tag 'student_id', params[:student_id], :size => 30 %>
+ <%= submit_tag l(:label_search_by_student_id), :class => "small", :name => nil %>
+ |
+
@@ -24,7 +43,7 @@ |
- <%= l(:label_system_grade) %>:<%= (b_project.project.project_status.nil? ? 0 : b_project.project.project_status.grade) unless (b_project.project.project_status.nil? && b_project.project.nil?) %>
+ <%= l(:label_system_grade) %>:<%= (b_project.project.project_status.nil? ? 0.0 : b_project.project.project_status.grade) unless (b_project.project.project_status.nil? && b_project.project.nil?) %>
<% if get_prize(b_project).nil? or get_prize(b_project) == "" %>
<% if @bid.deadline < Date.today %>
<%= l(:label_noawards)%>
diff --git a/app/views/layouts/base_users.html.erb b/app/views/layouts/base_users.html.erb
index 5b031bda1..bf17535d6 100644
--- a/app/views/layouts/base_users.html.erb
+++ b/app/views/layouts/base_users.html.erb
@@ -213,12 +213,14 @@
<%= render_menu :user_menu %>
<% end %>
+
<%= yield %>
<%= call_hook :view_layouts_base_content %>
<%= render_flash_messages %>
+
<%= render :partial => 'layouts/base_footer'%>
<% if @project.project_type !=1 %>
- <%= content_tag('span', "#{l(:label_project_grade)}: ")%><%= @project.project_status.grade%>
+ <%= content_tag('span', "#{l(:label_project_grade)}: ")%><%=@project.project_status ? @project.project_status.grade : 0.0 %>
<% end %>
diff --git a/app/views/projects/search.html.erb b/app/views/projects/search.html.erb
index 195e49618..7363b63c0 100644
--- a/app/views/projects/search.html.erb
+++ b/app/views/projects/search.html.erb
@@ -12,10 +12,13 @@
|
<%= link_to(l(:label_project_new), {:controller => 'projects', :action => 'new'}, :class => 'icon icon-add') if User.current.allowed_to?(:add_project, nil, :global => true) %> | <% else %> - <%= l(:label_new_course)%> - + + <%= l(:label_new_course)%> + + <% if User.current.user_extensions.identity == 0 %><%= link_to(l(:label_course_new), {:controller => 'projects', :action => 'new', :course => 1, :project_type => @project_type}, :class => 'icon icon-add') if User.current.allowed_to?(:add_project, nil, :global => true) %> | + <% end %> <% end %>
diff --git a/app/views/users/show.html.erb b/app/views/users/show.html.erb
index 3daeeb116..26cfd31b5 100644
--- a/app/views/users/show.html.erb
+++ b/app/views/users/show.html.erb
@@ -1,6 +1,22 @@
<% if User.current.id == @user.id%>
<%= show_activity @state%>
+<%= form_tag(:controller => 'users', :action => "show") do %>
+
+
<% end %>
+<% end %>
+
+
+
<% unless @state == 2%>
<% unless @activity.empty? %>
diff --git a/app/views/users/user_activities.html.erb b/app/views/users/user_activities.html.erb
index b094ce70f..813815a29 100644
--- a/app/views/users/user_activities.html.erb
+++ b/app/views/users/user_activities.html.erb
@@ -19,6 +19,7 @@
<% unless @events_by_day.empty? %>
+
<% @events_by_day.keys.sort.reverse.each do |day| %>
<% @events_by_day[day].sort {|x,y| y.event_datetime <=> x.event_datetime }.each do |e| -%>
diff --git a/config/locales/zh.yml b/config/locales/zh.yml
index 8996b794d..b10005539 100644
--- a/config/locales/zh.yml
+++ b/config/locales/zh.yml
@@ -827,7 +827,7 @@ zh:
label_user_login: "最后登录:"
label_user_mail: "邮件地址:"
label_user_joinin: "加入时间:"
- label_user_activities: 您当前还没有活动,快来加入我们吧!
+ label_user_activities: 您没有关注该用户,请尝试重新输入!
label_user_activities_other: 该用户暂无任何动态!
label_project_overview: "概述"
label_project_tool: "工具"
@@ -1603,6 +1603,8 @@ zh:
one: 份资料
other: 份资料
+
+
#add by men
label_technicl_title_professor: 教授
label_technicl_title_associate_professor: 副教授
@@ -1663,4 +1665,7 @@ zh:
label_has_watched_project: 关注的项目
label_project_take: 参与的项目
label_peoject_take_in: 加入了项目:
+ label_search_by_user: 按用户搜索
label_update_homework_succeed: 作业更新成功
+ label_task_plural: 作业
+ label_search_by_student_id: 按学号过滤
\ No newline at end of file
diff --git a/config/routes.rb b/config/routes.rb
index 7b6a13ae4..cbebb4ffe 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -81,6 +81,7 @@ RedmineApp::Application.routes.draw do
get 'projects/:id/issues/report', :to => 'reports#issue_report', :as => 'project_issues_report'
get 'projects/:id/issues/report/:detail', :to => 'reports#issue_report_details', :as => 'project_issues_report_details'
+ post '/users/:id/user_activities', :to => 'users#show', :as => "user_activities"
#added by young
resources :users do
diff --git a/db/schema.rb b/db/schema.rb
index 7b97e6911..00647a7cc 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -11,7 +11,15 @@
#
# It's strongly recommended to check this file into your version control system.
-ActiveRecord::Schema.define(:version => 20131021024144) do
+ActiveRecord::Schema.define(:version => 20131031093317) do
+
+ create_table "a_user_watchers", :force => true do |t|
+ t.string "name"
+ t.text "description"
+ t.datetime "created_at", :null => false
+ t.datetime "updated_at", :null => false
+ t.integer "member_id"
+ end
create_table "activities", :force => true do |t|
t.integer "act_id", :null => false
@@ -163,12 +171,15 @@ ActiveRecord::Schema.define(:version => 20131021024144) do
t.string "code"
t.integer "time"
t.string "extra"
- t.datetime "created_at", :null => false
- t.datetime "updated_at", :null => false
+ t.datetime "created_at", :null => false
+ t.datetime "updated_at", :null => false
t.string "location"
t.string "term"
t.string "string"
t.string "password"
+ t.string "setup_time"
+ t.string "endup_time"
+ t.string "class_period"
end
create_table "custom_fields", :force => true do |t|
@@ -279,9 +290,9 @@ ActiveRecord::Schema.define(:version => 20131021024144) do
add_index "issue_categories", ["project_id"], :name => "issue_categories_project_id"
create_table "issue_relations", :force => true do |t|
- t.integer "issue_from_id", :null => false
- t.integer "issue_to_id", :null => false
- t.string "relation_type", :default => "", :null => false
+ t.integer "issue_from_id", :null => false
+ t.integer "issue_to_id", :null => false
+ t.string "relation_type", :null => false
t.integer "delay"
end
@@ -423,6 +434,22 @@ ActiveRecord::Schema.define(:version => 20131021024144) do
add_index "messages", ["last_reply_id"], :name => "index_messages_on_last_reply_id"
add_index "messages", ["parent_id"], :name => "messages_parent_id"
+ create_table "messages_for_bids", :force => true do |t|
+ t.string "message"
+ t.integer "user_id"
+ t.integer "bid_id"
+ t.datetime "created_at", :null => false
+ t.datetime "updated_at", :null => false
+ end
+
+ create_table "messages_for_users", :force => true do |t|
+ t.integer "messager_id"
+ t.integer "user_id"
+ t.string "message"
+ t.datetime "created_at", :null => false
+ t.datetime "updated_at", :null => false
+ end
+
create_table "news", :force => true do |t|
t.integer "project_id"
t.string "title", :limit => 60, :default => "", :null => false
@@ -482,10 +509,20 @@ ActiveRecord::Schema.define(:version => 20131021024144) do
t.integer "watchers_count"
t.integer "project_id"
t.integer "project_type"
- t.float "grade", :default => 0.0
+ t.integer "gitlab_group_id", :limit => 8
end
- add_index "project_statuses", ["grade"], :name => "index_project_statuses_on_grade"
+ add_index "project_statuses", ["changesets_count"], :name => "index_project_statuses_on_changesets_count"
+ add_index "project_statuses", ["watchers_count"], :name => "index_project_statuses_on_watchers_count"
+
+ create_table "project_tags", :force => true do |t|
+ t.integer "project_id"
+ t.integer "tag_id"
+ t.string "description"
+ t.datetime "created_at", :null => false
+ t.datetime "updated_at", :null => false
+ t.integer "user_id"
+ end
create_table "projects", :force => true do |t|
t.string "name", :default => "", :null => false
@@ -530,17 +567,18 @@ ActiveRecord::Schema.define(:version => 20131021024144) do
add_index "queries", ["user_id"], :name => "index_queries_on_user_id"
create_table "repositories", :force => true do |t|
- t.integer "project_id", :default => 0, :null => false
- t.string "url", :default => "", :null => false
- t.string "login", :limit => 60, :default => ""
- t.string "password", :default => ""
- t.string "root_url", :default => ""
+ t.integer "project_id", :default => 0, :null => false
+ t.string "url", :default => "", :null => false
+ t.string "login", :limit => 60, :default => ""
+ t.string "password", :default => ""
+ t.string "root_url", :default => ""
t.string "type"
- t.string "path_encoding", :limit => 64
- t.string "log_encoding", :limit => 64
+ t.string "path_encoding", :limit => 64
+ t.string "log_encoding", :limit => 64
t.text "extra_info"
t.string "identifier"
- t.boolean "is_default", :default => false
+ t.boolean "is_default", :default => false
+ t.string "git_project_id"
end
add_index "repositories", ["project_id"], :name => "index_repositories_on_project_id"
@@ -554,26 +592,6 @@ ActiveRecord::Schema.define(:version => 20131021024144) do
t.string "issues_visibility", :limit => 30, :default => "default", :null => false
end
- create_table "seems_rateable_cached_ratings", :force => true do |t|
- t.integer "cacheable_id", :limit => 8
- t.string "cacheable_type"
- t.float "avg", :null => false
- t.integer "cnt", :null => false
- t.string "dimension"
- t.datetime "created_at", :null => false
- t.datetime "updated_at", :null => false
- end
-
- create_table "seems_rateable_rates", :force => true do |t|
- t.integer "rater_id", :limit => 8
- t.integer "rateable_id"
- t.string "rateable_type"
- t.float "stars", :null => false
- t.string "dimension"
- t.datetime "created_at", :null => false
- t.datetime "updated_at", :null => false
- end
-
create_table "settings", :force => true do |t|
t.string "name", :default => "", :null => false
t.text "value"
@@ -584,9 +602,9 @@ ActiveRecord::Schema.define(:version => 20131021024144) do
create_table "shares", :force => true do |t|
t.date "created_on"
- t.string "url"
t.string "title"
- t.integer "share_type"
+ t.string "share_type"
+ t.string "url"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.integer "project_id"
@@ -594,6 +612,12 @@ ActiveRecord::Schema.define(:version => 20131021024144) do
t.string "description"
end
+ create_table "students", :force => true do |t|
+ t.string "name"
+ t.datetime "created_at", :null => false
+ t.datetime "updated_at", :null => false
+ end
+
create_table "students_for_courses", :force => true do |t|
t.integer "student_id"
t.integer "course_id"
@@ -652,7 +676,7 @@ ActiveRecord::Schema.define(:version => 20131021024144) do
create_table "tokens", :force => true do |t|
t.integer "user_id", :default => 0, :null => false
t.string "action", :limit => 30, :default => "", :null => false
- t.string "value", :limit => 40, :default => "", :null => false
+ t.string "value", :limit => 40
t.datetime "created_on", :null => false
end
@@ -678,12 +702,13 @@ ActiveRecord::Schema.define(:version => 20131021024144) do
t.integer "zip_code"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
- t.string "technical_title"
t.integer "identity"
+ t.string "technical_title"
t.string "student_id"
t.string "teacher_realname"
t.string "student_realname"
t.string "location_city"
+ t.string "git_token"
end
create_table "user_grades", :force => true do |t|
@@ -720,6 +745,14 @@ ActiveRecord::Schema.define(:version => 20131021024144) do
add_index "user_statuses", ["grade"], :name => "index_user_statuses_on_grade"
add_index "user_statuses", ["watchers_count"], :name => "index_user_statuses_on_watchers_count"
+ create_table "user_tags", :force => true do |t|
+ t.integer "user_id"
+ t.integer "tag_id"
+ t.string "description"
+ t.datetime "created_at", :null => false
+ t.datetime "updated_at", :null => false
+ end
+
create_table "users", :force => true do |t|
t.string "login", :default => "", :null => false
t.string "hashed_password", :limit => 40, :default => "", :null => false
diff --git a/public/themes/redpenny-master/stylesheets/application.css b/public/themes/redpenny-master/stylesheets/application.css
index 0f1e8781e..78b88c45d 100644
--- a/public/themes/redpenny-master/stylesheets/application.css
+++ b/public/themes/redpenny-master/stylesheets/application.css
@@ -1571,6 +1571,17 @@ div.issue-note .description {
overflow: hidden;
}
+/*
+ *Added by nie
+ */
+
+div.user-search-block {
+ display: inline;
+ float: right;
+ margin-top: -65px;
+
+}
+
/*issue style Added by nie
*/
@@ -1710,7 +1721,7 @@ div.member_content {
}
/*
- * Designed for search content
+ * Designed for project#search
* Added by nie
*/
div.project-search-block {
|