From b8dc444cc78e6dcde5b5d3befffa873062f650e7 Mon Sep 17 00:00:00 2001 From: cxt Date: Tue, 23 Aug 2016 10:17:08 +0800 Subject: [PATCH 01/19] =?UTF-8?q?=E6=99=AE=E9=80=9A=E4=BD=9C=E4=B8=9A?= =?UTF-8?q?=E5=92=8C=E7=BC=96=E7=A8=8B=E4=BD=9C=E4=B8=9A=E5=9C=A8=E9=A2=98?= =?UTF-8?q?=E5=BA=93=E5=8F=91=E9=80=81=E5=90=8E=EF=BC=8C=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E5=B9=B6=E8=BF=9B=E8=A1=8C=E5=8F=91=E5=B8=83=EF=BC=8C=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E8=87=AA=E5=8A=A8=E5=88=9B=E5=BB=BA=E4=BD=9C=E5=93=81?= =?UTF-8?q?=E5=88=97=E8=A1=A8=20=E5=A4=8D=E5=88=B6=E7=8F=AD=E7=BA=A7?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E9=87=8C=EF=BC=8C=E5=8B=BE=E9=80=89=E2=80=9C?= =?UTF-8?q?=E4=BD=9C=E4=B8=9A=E2=80=9D=EF=BC=8C=E5=90=8C=E4=B8=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 对应方法:在作业的发布时间点(不用考虑作业是通过何种途径生成的),除了发布作业外,应该为该作业自动创建完整的作品列表(分组作业除外) --- app/controllers/homework_common_controller.rb | 6 ++++++ app/controllers/users_controller.rb | 19 ++----------------- app/helpers/application_helper.rb | 17 +++++++++++++++++ lib/tasks/homework_publishtime.rake | 16 ++++++++++++++++ 4 files changed, 41 insertions(+), 17 deletions(-) diff --git a/app/controllers/homework_common_controller.rb b/app/controllers/homework_common_controller.rb index 2f50c8105..6704f7401 100644 --- a/app/controllers/homework_common_controller.rb +++ b/app/controllers/homework_common_controller.rb @@ -94,8 +94,10 @@ class HomeworkCommonController < ApplicationController end end + status = false if @homework.publish_time <= Date.today && homework_detail_manual.comment_status == 0 homework_detail_manual.comment_status = 1 + status = true end eval_start = homework_detail_manual.evaluation_start if eval_start.nil? || (eval_start <= @homework.end_time && homework_detail_manual.comment_status <= 1) @@ -145,6 +147,10 @@ class HomeworkCommonController < ApplicationController @homework_detail_programing.save if @homework_detail_programing @homework_detail_group.save if @homework_detail_group + if @homework.homework_type != 3 && homework_detail_manual.comment_status == 1 && status + create_works_list @homework + end + if params[:is_manage] == "1" redirect_to manage_or_receive_homeworks_user_path(User.current.id) elsif params[:is_manage] == "2" diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index e929153ad..eb7ee4c03 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -1115,23 +1115,8 @@ class UsersController < ApplicationController homework_detail_programing.save if homework_detail_programing homework_detail_group.save if homework_detail_group - if homework.homework_type != 3 - students = homework.course.student - if !homework.course.nil? && !students.empty? - name = homework.name - name_str = name + "的作品提交" - str = "" - students.each do |student| - if str != "" - str += "," - end - str += "('#{name_str}',#{homework.id},#{student.student_id}, '#{format_time(Time.now)}', '#{format_time(Time.now)}')" - end - #('#{name}的作品提交',#{homework.id},#{student.student_id}, '#{format_time(Time.now)}', '#{format_time(Time.now)}') - sql = "insert into student_works (name, homework_common_id,user_id, created_at, updated_at) values" + str - #StudentWork.create(:name => "#{name}的作品提交", :homework_common_id => homework.id, :user_id => student.student_id) - ActiveRecord::Base.connection.execute sql - end + if homework.homework_type != 3 && homework_detail_manual.comment_status == 1 + create_works_list homework end if params[:quotes] && !params[:quotes].blank? diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index da66f249b..304194e6e 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -3436,3 +3436,20 @@ def course_syllabus_option user = User.current end type end + +def create_works_list homework + students = homework.course.student + if !homework.course.nil? && !students.empty? + name = homework.name + name_str = name + "的作品提交" + str = "" + students.each do |student| + if str != "" + str += "," + end + str += "('#{name_str}',#{homework.id},#{student.student_id}, '#{format_time(Time.now)}', '#{format_time(Time.now)}')" + end + sql = "insert into student_works (name, homework_common_id,user_id, created_at, updated_at) values" + str + ActiveRecord::Base.connection.execute sql + end +end diff --git a/lib/tasks/homework_publishtime.rake b/lib/tasks/homework_publishtime.rake index 5eaeb37cb..2f999384c 100644 --- a/lib/tasks/homework_publishtime.rake +++ b/lib/tasks/homework_publishtime.rake @@ -8,6 +8,22 @@ namespace :homework_publishtime do homework_detail_manual = homework.homework_detail_manual if homework_detail_manual.comment_status == 0 homework_detail_manual.update_column('comment_status', 1) + if homework.homework_type != 3 + students = homework.course.student + if !homework.course.nil? && !students.empty? + name = homework.name + name_str = name + "的作品提交" + str = "" + students.each do |student| + if str != "" + str += "," + end + str += "('#{name_str}',#{homework.id},#{student.student_id}, '#{format_time(Time.now)}', '#{format_time(Time.now)}')" + end + sql = "insert into student_works (name, homework_common_id,user_id, created_at, updated_at) values" + str + ActiveRecord::Base.connection.execute sql + end + end course = homework.course course.members.each do |m| homework.course_messages << CourseMessage.new(:user_id => m.user_id, :course_id => course.id, :viewed => false, :status => nil) From 461912bec260ec66978308d7cf18a70b4dfb9369 Mon Sep 17 00:00:00 2001 From: cxt Date: Tue, 23 Aug 2016 10:50:51 +0800 Subject: [PATCH 02/19] =?UTF-8?q?=E7=8F=AD=E7=BA=A7=E4=BD=9C=E4=B8=9A?= =?UTF-8?q?=EF=BC=8C=E4=B8=8A=E4=BC=A0=E9=99=84=E4=BB=B6=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E4=BD=9C=E5=93=81=EF=BC=8C=E9=87=8D=E8=AF=95=E5=90=8E=E7=9B=B4?= =?UTF-8?q?=E6=8E=A5=E6=8F=90=E4=BA=A4=EF=BC=8C=E6=8F=90=E4=BA=A4=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E9=99=84=E4=BB=B6=E4=B8=8D=E6=98=BE=E7=A4=BA=E4=BD=86?= =?UTF-8?q?=E9=AA=8C=E8=AF=81=E5=BC=B9=E6=A1=86=E4=B8=AD=E8=A2=AB=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E7=9A=84=E9=99=84=E4=BB=B6=E5=8F=88=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/student_work_controller.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/controllers/student_work_controller.rb b/app/controllers/student_work_controller.rb index 722845ef7..9ce0f76f7 100644 --- a/app/controllers/student_work_controller.rb +++ b/app/controllers/student_work_controller.rb @@ -793,6 +793,7 @@ class StudentWorkController < ApplicationController end elsif @homework.homework_type == 1 @work.update_attributes(:work_status => 0, :name => "#{@homework.name}的作品提交", :description => nil, :late_penalty => 0, :commit_time => nil) + @work.attachments.destroy_all end @student_work = StudentWork.new respond_to do |format| From 74b15229fb8c7b2359aca672b5a98df6fe11b670 Mon Sep 17 00:00:00 2001 From: cxt Date: Tue, 23 Aug 2016 17:15:51 +0800 Subject: [PATCH 03/19] =?UTF-8?q?at=E6=89=80=E6=9C=89=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/at/show.json.erb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/at/show.json.erb b/app/views/at/show.json.erb index 6e2a244e4..767c23835 100644 --- a/app/views/at/show.json.erb +++ b/app/views/at/show.json.erb @@ -1,10 +1,10 @@ [ <% @users && @users.each_with_index do |person,index| %> <% if index == 0 %> - {"id":<%=index%>, "userid": "<%=person.id%>", "name": "所有人", "login": "<%=person.name%>", "searchKey": "<%=person.name%>"} + {"id":<%=index%>, "userid": "<%=person.id%>", "name": "所有人", "login": "", "searchKey": ""} <%= index != @users.size-1 ? ',' : '' %> <% else %> - {"id":<%=index%>, "userid": <%=person.id%>, "name": "<%=person.show_name%>", "login": "<%=person.login%>", "searchKey": "<%=person.get_at_show_name%>"} + {"id":<%=index%>, "userid": "<%=person.id%>", "name": "<%=person.show_name%>", "login": "<%=person.login%>", "searchKey": "<%=person.get_at_show_name%>"} <%= index != @users.size-1 ? ',' : '' %> <% end %> <% end %> From 57ecffc130a637456d5a0df4e0bd6eddc808d7ab Mon Sep 17 00:00:00 2001 From: Tim Date: Wed, 24 Aug 2016 10:28:09 +0800 Subject: [PATCH 04/19] =?UTF-8?q?=E7=8F=AD=E7=BA=A7=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E6=94=B6=E8=97=8F=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/layouts/_user_courses.html.erb | 6 ++++++ app/views/layouts/new_base_user.html.erb | 2 +- app/views/users/_courses_list.html.erb | 5 +++-- public/images/syllabus/sy_icons_star.png | Bin 0 -> 18508 bytes public/stylesheets/syllabus.css | 5 +++++ 5 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 public/images/syllabus/sy_icons_star.png diff --git a/app/views/layouts/_user_courses.html.erb b/app/views/layouts/_user_courses.html.erb index b3b21547e..485ef72ff 100644 --- a/app/views/layouts/_user_courses.html.erb +++ b/app/views/layouts/_user_courses.html.erb @@ -45,6 +45,12 @@ <%= link_to "论坛",course_boards_path(course), :class => 'user_navmore_li fl',:target => '_blank' %> <%= link_to "+",course_boards_path(course, :flag => true, :is_new => 1), :class => 'user_navmore_add fl', :title => '发布帖子',:target => '_blank' %> + +
  • + <%= link_to "取消收藏", :class => 'user_navmore_li',:target => '_blank' %> +
    +
  • + <% if !course.syllabus.nil? %>
  • <%= link_to "所属课程",syllabus_path(course.syllabus_id), :class => 'user_navmore_li',:target => '_blank' %> diff --git a/app/views/layouts/new_base_user.html.erb b/app/views/layouts/new_base_user.html.erb index 50e788e2f..d91939c4b 100644 --- a/app/views/layouts/new_base_user.html.erb +++ b/app/views/layouts/new_base_user.html.erb @@ -157,7 +157,7 @@ <% if !unvisiable %>
    • - <%= link_to '课程',{:controller => "users", :action => "user_courselist", :id => @user.id}, :id => "user_course_list" %> + <%= link_to '班级',{:controller => "users", :action => "user_courselist", :id => @user.id}, :id => "user_course_list" %> <% courses = @user.courses.visible.where("is_delete =?", 0).select("courses.*,(SELECT MAX(updated_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS a").order("a desc").limit(10) %> <% all_count = @user.courses.visible.where("is_delete =?", 0).count%>
      diff --git a/app/views/users/_courses_list.html.erb b/app/views/users/_courses_list.html.erb index 83b9ab56b..42c92b1a0 100644 --- a/app/views/users/_courses_list.html.erb +++ b/app/views/users/_courses_list.html.erb @@ -3,11 +3,12 @@
    • <% allow_visit = User.current.member_of_course?(course) || User.current.admin? || course.is_public == 1 %> " target="_blank" title="<%= allow_visit ? "" : "私有班级不可访问"%>"> - + +

      <%=course.name %>

      - + <%= course.is_public == 0 ? '私有' : '公开' %>
      diff --git a/public/images/syllabus/sy_icons_star.png b/public/images/syllabus/sy_icons_star.png new file mode 100644 index 0000000000000000000000000000000000000000..2256346d960cb3cae2ebff90ea29447b23fce255 GIT binary patch literal 18508 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 G?fpNVBhm2y literal 0 HcmV?d00001 diff --git a/public/stylesheets/syllabus.css b/public/stylesheets/syllabus.css index c506d3d5f..52b172f23 100644 --- a/public/stylesheets/syllabus.css +++ b/public/stylesheets/syllabus.css @@ -80,6 +80,8 @@ input.syllabus_input_min{ .icons_sy_setting{background: url(../images/syllabus/icons_syllabus.png) -51px -33px no-repeat; width:20px; height:20px; display:block; position:absolute; right:10px; top:10px; } .icons_sy_setting:hover{background: url(../images/syllabus/icons_syllabus.png) -25px -33px no-repeat; } .icons_sy_cir{background: url(../images/syllabus/icons_syllabus.png) 0px -82px no-repeat; width:15px; height:15px; display:block; position:absolute; left:-8px; top:25px;} +.icons_sy_favorite{background: url(../images/syllabus/sy_icons_star.png) 0px 0px no-repeat; width:20px; height:20px; display:block; position:absolute; left:-10px; top:25px;} +.icons_sy_star{background: url(../images/syllabus/sy_icons_star.png) 0px -27px no-repeat; width:20px; height:20px; display:block; position:absolute; left:-10px; top:25px;} .icons_sy_arrow{background: url(../images/syllabus/icons_syllabus.png) -31px -81px no-repeat; width:20px; height:20px; display:block; } .syllabus_h2_top{ font-size:18px; color:#333; font-weight:normal; padding:10px 15px;border-bottom:1px solid #e7e7e7; } .syllabus_category{ padding:10px 15px; background-color:#f6f6f6; border-bottom:1px solid #e7e7e7;} @@ -96,6 +98,9 @@ input.syllabus_input_min{ .syllabus_class_list_more a{ color:#ff7e00;} .syllabus_class_title{ font-size:14px; color:#333; max-width:480px; margin-bottom:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } .syllabus_class_w{ width:650px;} +.syllabus_class_property {font-size:12px; padding:0 5px; border-radius:3px; line-height:14px;} +.syllabus_class_private {color:#ff4a1b; border:1px solid #ff4a1b;} +.syllabus_class_open {color:#7dd26c; border:1px solid #7dd26c;} /*新建页面*/ From bb2b51aa8d82bcaec73a8a6a1ccf960d0608a98a Mon Sep 17 00:00:00 2001 From: Tim Date: Wed, 24 Aug 2016 10:30:20 +0800 Subject: [PATCH 05/19] =?UTF-8?q?=E6=94=B6=E8=97=8F=E6=8C=89=E9=92=AE?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0title?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/users/_courses_list.html.erb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/users/_courses_list.html.erb b/app/views/users/_courses_list.html.erb index 42c92b1a0..7254a0818 100644 --- a/app/views/users/_courses_list.html.erb +++ b/app/views/users/_courses_list.html.erb @@ -3,8 +3,8 @@
    • <% allow_visit = User.current.member_of_course?(course) || User.current.admin? || course.is_public == 1 %> " target="_blank" title="<%= allow_visit ? "" : "私有班级不可访问"%>"> - - + +

      <%=course.name %>

      From 7d89f69981c6bd27d331ba02a50408fc5a9b264f Mon Sep 17 00:00:00 2001 From: cxt Date: Wed, 24 Aug 2016 15:58:23 +0800 Subject: [PATCH 06/19] =?UTF-8?q?=E7=8F=AD=E7=BA=A7=E5=92=8C=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E6=94=B6=E8=97=8F=E5=A4=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/layouts/_user_courses.html.erb | 10 ++-- app/views/users/_courses_list.html.erb | 54 +++++++++++-------- ...0160824073554_add_is_collect_to_members.rb | 5 ++ public/stylesheets/syllabus.css | 2 +- 4 files changed, 43 insertions(+), 28 deletions(-) create mode 100644 db/migrate/20160824073554_add_is_collect_to_members.rb diff --git a/app/views/layouts/_user_courses.html.erb b/app/views/layouts/_user_courses.html.erb index 2bbd38831..78461b9ba 100644 --- a/app/views/layouts/_user_courses.html.erb +++ b/app/views/layouts/_user_courses.html.erb @@ -45,12 +45,6 @@ <%= link_to "论坛",course_boards_path(course), :class => 'user_navmore_li fl',:target => '_blank' %> <%= link_to "+",course_boards_path(course, :flag => true, :is_new => 1), :class => 'user_navmore_add fl', :title => '发布帖子',:target => '_blank' %>
    • - -
    • - <%= link_to "取消收藏", :class => 'user_navmore_li',:target => '_blank' %> -
      -
    • - <% if !course.syllabus.nil? %>
    • <%= link_to "所属课程",syllabus_path(course.syllabus_id), :class => 'user_navmore_li',:target => '_blank' %> @@ -58,6 +52,10 @@
    • <% end %> <% if User.current == user %> +
    • + <%= link_to "取消收藏", '', :class => 'user_navmore_li',:target => '_blank' %> +
      +
    • <% if count == 0 %> <%= link_to "屏蔽动态", shield_activities_path(:user_id => user.id, :course_id => course.id), :method => 'post', :class => 'user_navmore_li',:remote => true %> diff --git a/app/views/users/_courses_list.html.erb b/app/views/users/_courses_list.html.erb index 7254a0818..ec5b3e462 100644 --- a/app/views/users/_courses_list.html.erb +++ b/app/views/users/_courses_list.html.erb @@ -1,31 +1,43 @@ <% unless courses.nil? %> <% courses.each_with_index do |course, i| %> -
    • +
    • <% allow_visit = User.current.member_of_course?(course) || User.current.admin? || course.is_public == 1 %> - " target="_blank" title="<%= allow_visit ? "" : "私有班级不可访问"%>"> - - -
    • <% end %> <% if courses.count > 3 %> -
    • - 共<%=courses.count %>个班级,点击全部展开 +
    • + 共<%= courses.count %> + 个班级,点击全部展开
    • <% end %> <% end %> \ No newline at end of file diff --git a/db/migrate/20160824073554_add_is_collect_to_members.rb b/db/migrate/20160824073554_add_is_collect_to_members.rb new file mode 100644 index 000000000..6211d0497 --- /dev/null +++ b/db/migrate/20160824073554_add_is_collect_to_members.rb @@ -0,0 +1,5 @@ +class AddIsCollectToMembers < ActiveRecord::Migration + def change + add_column :is_collect, :members, :integer, :default => 1 + end +end diff --git a/public/stylesheets/syllabus.css b/public/stylesheets/syllabus.css index f11c194a6..95cee0b2c 100644 --- a/public/stylesheets/syllabus.css +++ b/public/stylesheets/syllabus.css @@ -96,7 +96,7 @@ input.syllabus_input_min{ .syllabus_class_list_more{padding:8px; text-align:center;border-left:1px solid #e7e7e7;border-bottom:1px solid #e7e7e7;} .syllabus_class_list_more:hover{ background:#ececec;} .syllabus_class_list_more a{ color:#ff7e00;} -.syllabus_class_title{ font-size:14px; color:#333; max-width:480px; margin-bottom:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } +a.syllabus_class_title{ font-size:14px; color:#333; max-width:480px; margin-bottom:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; } .syllabus_class_w{ width:650px;} .syllabus_class_property {font-size:12px; padding:0 5px; border-radius:3px; line-height:14px;} .syllabus_class_private {color:#ff4a1b; border:1px solid #ff4a1b;} From 56b74b755b1602fc847f8aa6e7b91e94f1900fe0 Mon Sep 17 00:00:00 2001 From: cxt Date: Wed, 24 Aug 2016 17:30:30 +0800 Subject: [PATCH 07/19] =?UTF-8?q?=E5=8F=96=E6=B6=88=E6=94=B6=E8=97=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/users_controller.rb | 17 +- app/models/principal.rb | 16 + app/views/layouts/_user_courses.html.erb | 2 +- app/views/layouts/new_base_user.html.erb | 8 +- app/views/users/cancel_collect.js.erb | 0 config/routes.rb | 1 + ...0160824073554_add_is_collect_to_members.rb | 2 +- db/schema.rb | 433 +----------------- 8 files changed, 58 insertions(+), 421 deletions(-) create mode 100644 app/views/users/cancel_collect.js.erb diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index eb7ee4c03..aabce249c 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -42,7 +42,7 @@ class UsersController < ApplicationController :activity_new_score_index, :influence_new_score_index, :score_new_index,:user_projects_index,:user_resource, :user_courses4show,:user_projects4show,:user_course_activities,:user_project_activities,:user_feedback4show,:user_visitorlist,:user_messages,:edit_brief_introduction, :user_import_homeworks,:user_search_homeworks,:user_import_resource, :user_system_messages,:choose_user_course,:user_courselist,:user_projectlist,:sort_syllabus_list, - :sort_project_list,:my_homeworks,:manage_or_receive_homeworks,:search_m_r_homeworks] + :sort_project_list,:my_homeworks,:manage_or_receive_homeworks,:search_m_r_homeworks, :cancel_collect] before_filter :auth_user_extension, only: :show #before_filter :rest_user_score, only: :show #before_filter :select_entry, only: :user_projects @@ -3424,6 +3424,21 @@ class UsersController < ApplicationController end end + #取消收藏班级/项目 + def cancel_collect + if params[:project] + member = Member.where("user_id = #{@user.id} and project_id = #{params[:project].to_i}") + elsif params[:course] + member = Member.where("user_id = #{@user.id} and course_id = #{params[:course].to_i}") + end + unless member.empty? + member.first.update_attribute(:is_collect => 0) + end + respond_to do |format| + format.js + end +end + def user_projectlist @order, @c_sort, @type, @list_type = 1, 2, 1, 1 #limit = 5 diff --git a/app/models/principal.rb b/app/models/principal.rb index 0c87ec0c6..e65816e83 100644 --- a/app/models/principal.rb +++ b/app/models/principal.rb @@ -131,6 +131,22 @@ class Principal < ActiveRecord::Base columns.uniq.map {|field| "#{table}.#{field}"} end + #收藏的课程 + def favorite_courses + members = Member.where("user_id = #{self.id} and course_id != -1 and is_collect = 1") + course_ids = members.empty? ? "(-1)" : "(" + members.map{|member| member.course_id}.join(",") + ")" + courses = Course.where("id in #{course_ids}") + return courses + end + + #收藏的项目 + def favorite_projects + members = Member.where("user_id = #{self.id} and project_id != -1 and project_id != 0 and is_collect = 1") + project_ids = members.empty? ? "(-1)" : "(" + members.map{|member| member.project_id}.join(",") + ")" + projects = Project.where("id in #{project_ids}") + return projects + end + protected # Make sure we don't try to insert NULL values (see #4632) diff --git a/app/views/layouts/_user_courses.html.erb b/app/views/layouts/_user_courses.html.erb index 78461b9ba..0335aa922 100644 --- a/app/views/layouts/_user_courses.html.erb +++ b/app/views/layouts/_user_courses.html.erb @@ -53,7 +53,7 @@ <% end %> <% if User.current == user %>
    • - <%= link_to "取消收藏", '', :class => 'user_navmore_li',:target => '_blank' %> + <%= link_to "取消收藏", cancel_collect_user_path(user, :course => course.id), :class => 'user_navmore_li',:target => '_blank' %>
    • diff --git a/app/views/layouts/new_base_user.html.erb b/app/views/layouts/new_base_user.html.erb index c4fec04df..5969f17d6 100644 --- a/app/views/layouts/new_base_user.html.erb +++ b/app/views/layouts/new_base_user.html.erb @@ -158,8 +158,8 @@
      • <%= link_to '班级',{:controller => "users", :action => "user_courselist", :id => @user.id}, :id => "user_course_list" %> - <% courses = @user.courses.visible.where("is_delete =?", 0).select("courses.*,(SELECT MAX(updated_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS a").order("a desc").limit(10) %> - <% all_count = @user.courses.visible.where("is_delete =?", 0).count%> + <% courses = @user.favorite_courses.visible.where("is_delete =?", 0).select("courses.*,(SELECT MAX(updated_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS a").order("a desc").limit(10) %> + <% all_count = @user.favorite_courses.visible.where("is_delete =?", 0).count%>
          @@ -195,8 +195,8 @@
          • <%= link_to '项目',{:controller => "users", :action => "user_projectlist", :id => @user.id}, :id => 'user_project_list'%> - <% all_count = @user.projects.visible.count%> - <% projects = @user.projects.visible.select("projects.*, (SELECT MAX(updated_at) FROM `forge_activities` WHERE forge_activities.project_id = projects.id) AS a").order("a desc").limit(10)%> + <% all_count = @user.favorite_projects.visible.count%> + <% projects = @user.favorite_projects.visible.select("projects.*, (SELECT MAX(updated_at) FROM `forge_activities` WHERE forge_activities.project_id = projects.id) AS a").order("a desc").limit(10)%>
              diff --git a/app/views/users/cancel_collect.js.erb b/app/views/users/cancel_collect.js.erb new file mode 100644 index 000000000..e69de29bb diff --git a/config/routes.rb b/config/routes.rb index 6cbc0812d..6b26eb078 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -667,6 +667,7 @@ RedmineApp::Application.routes.draw do post 'apply_for_resource' match 'manage_or_receive_homeworks', :to => 'users#manage_or_receive_homeworks', :via => :get get 'search_m_r_homeworks' + post 'cancel_collect' # end end #resources :blogs diff --git a/db/migrate/20160824073554_add_is_collect_to_members.rb b/db/migrate/20160824073554_add_is_collect_to_members.rb index 6211d0497..17e088398 100644 --- a/db/migrate/20160824073554_add_is_collect_to_members.rb +++ b/db/migrate/20160824073554_add_is_collect_to_members.rb @@ -1,5 +1,5 @@ class AddIsCollectToMembers < ActiveRecord::Migration def change - add_column :is_collect, :members, :integer, :default => 1 + add_column :members, :is_collect, :integer, :default => 1 end end diff --git a/db/schema.rb b/db/schema.rb index 47b3bf210..414f2d2be 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 => 20160810081337) do +ActiveRecord::Schema.define(:version => 20160824073554) do create_table "activities", :force => true do |t| t.integer "act_id", :null => false @@ -52,28 +52,6 @@ ActiveRecord::Schema.define(:version => 20160810081337) do add_index "api_keys", ["access_token"], :name => "index_api_keys_on_access_token" add_index "api_keys", ["user_id"], :name => "index_api_keys_on_user_id" - create_table "application_settings", :force => true do |t| - t.integer "default_projects_limit" - t.boolean "signup_enabled" - t.boolean "signin_enabled" - t.boolean "gravatar_enabled" - t.text "sign_in_text" - t.datetime "created_at" - t.datetime "updated_at" - t.string "home_page_url" - t.integer "default_branch_protection", :default => 2 - t.boolean "twitter_sharing_enabled", :default => true - t.text "restricted_visibility_levels" - t.boolean "version_check_enabled", :default => true - t.integer "max_attachment_size", :default => 10, :null => false - t.integer "default_project_visibility" - t.integer "default_snippet_visibility" - t.text "restricted_signup_domains" - t.boolean "user_oauth_applications", :default => true - t.string "after_sign_out_path" - t.integer "session_expire_delay", :default => 10080, :null => false - end - create_table "applied_messages", :force => true do |t| t.integer "user_id" t.integer "applied_id" @@ -82,17 +60,16 @@ ActiveRecord::Schema.define(:version => 20160810081337) do t.integer "status", :default => 0 t.datetime "created_at", :null => false t.datetime "updated_at", :null => false + t.string "name" t.integer "applied_user_id" t.integer "role" t.integer "project_id" - t.string "name" end create_table "applied_projects", :force => true do |t| - t.integer "project_id", :null => false - t.integer "user_id", :null => false - t.integer "role", :default => 0 - t.integer "applied_user_id" + t.integer "project_id", :null => false + t.integer "user_id", :null => false + t.integer "role", :default => 0 end create_table "apply_add_schools", :force => true do |t| @@ -207,20 +184,6 @@ ActiveRecord::Schema.define(:version => 20160810081337) do t.string "typeName", :limit => 50 end - create_table "audit_events", :force => true do |t| - t.integer "author_id", :null => false - t.string "type", :null => false - t.integer "entity_id", :null => false - t.string "entity_type", :null => false - t.text "details" - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "audit_events", ["author_id"], :name => "index_audit_events_on_author_id" - add_index "audit_events", ["entity_id", "entity_type"], :name => "index_audit_events_on_entity_id_and_entity_type" - add_index "audit_events", ["type"], :name => "index_audit_events_on_type" - create_table "auth_sources", :force => true do |t| t.string "type", :limit => 30, :default => "", :null => false t.string "name", :limit => 60, :default => "", :null => false @@ -318,17 +281,6 @@ ActiveRecord::Schema.define(:version => 20160810081337) do add_index "boards", ["last_message_id"], :name => "index_boards_on_last_message_id" add_index "boards", ["project_id"], :name => "boards_project_id" - create_table "broadcast_messages", :force => true do |t| - t.text "message", :null => false - t.datetime "starts_at" - t.datetime "ends_at" - t.integer "alert_type" - t.datetime "created_at" - t.datetime "updated_at" - t.string "color" - t.string "font" - end - create_table "bug_to_osps", :force => true do |t| t.integer "osp_id" t.integer "relative_memo_id" @@ -358,16 +310,14 @@ ActiveRecord::Schema.define(:version => 20160810081337) do add_index "changeset_parents", ["parent_id"], :name => "changeset_parents_parent_ids" create_table "changesets", :force => true do |t| - t.integer "repository_id", :null => false - t.string "revision", :null => false + t.integer "repository_id", :null => false + t.string "revision", :null => false t.string "committer" - t.datetime "committed_on", :null => false + t.datetime "committed_on", :null => false t.text "comments" t.date "commit_date" t.string "scmid" t.integer "user_id" - t.integer "project_id" - t.integer "type", :default => 0 end add_index "changesets", ["committed_on"], :name => "index_changesets_on_committed_on" @@ -647,11 +597,8 @@ ActiveRecord::Schema.define(:version => 20160810081337) do t.string "qrcode" end - add_index "courses", ["id"], :name => "id", :unique => true add_index "courses", ["invite_code"], :name => "index_courses_on_invite_code", :unique => true add_index "courses", ["syllabus_id"], :name => "index_courses_on_syllabus_id" - add_index "courses", ["tea_id"], :name => "tea_id" - add_index "courses", ["visits"], :name => "visits" create_table "custom_fields", :force => true do |t| t.string "type", :limit => 30, :default => "", :null => false @@ -714,15 +661,6 @@ ActiveRecord::Schema.define(:version => 20160810081337) do add_index "delayed_jobs", ["priority", "run_at"], :name => "delayed_jobs_priority" - create_table "deploy_keys_projects", :force => true do |t| - t.integer "deploy_key_id", :null => false - t.integer "project_id", :null => false - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "deploy_keys_projects", ["project_id"], :name => "index_deploy_keys_projects_on_project_id" - create_table "discuss_demos", :force => true do |t| t.string "title" t.text "body" @@ -772,16 +710,6 @@ ActiveRecord::Schema.define(:version => 20160810081337) do t.datetime "created_at" end - create_table "emails", :force => true do |t| - t.integer "user_id", :null => false - t.string "email", :null => false - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "emails", ["email"], :name => "index_emails_on_email", :unique => true - add_index "emails", ["user_id"], :name => "index_emails_on_user_id" - create_table "enabled_modules", :force => true do |t| t.integer "project_id" t.string "name", :null => false @@ -804,25 +732,6 @@ ActiveRecord::Schema.define(:version => 20160810081337) do add_index "enumerations", ["id", "type"], :name => "index_enumerations_on_id_and_type" add_index "enumerations", ["project_id"], :name => "index_enumerations_on_project_id" - create_table "events", :force => true do |t| - t.string "target_type" - t.integer "target_id" - t.string "title" - t.text "data" - t.integer "project_id" - t.datetime "created_at" - t.datetime "updated_at" - t.integer "action" - t.integer "author_id" - end - - add_index "events", ["action"], :name => "index_events_on_action" - add_index "events", ["author_id"], :name => "index_events_on_author_id" - add_index "events", ["created_at"], :name => "index_events_on_created_at" - add_index "events", ["project_id"], :name => "index_events_on_project_id" - add_index "events", ["target_id"], :name => "index_events_on_target_id" - add_index "events", ["target_type"], :name => "index_events_on_target_type" - create_table "exercise_answers", :force => true do |t| t.integer "user_id" t.integer "exercise_question_id" @@ -925,15 +834,6 @@ ActiveRecord::Schema.define(:version => 20160810081337) do add_index "forge_messages", ["forge_message_id", "forge_message_type"], :name => "index_forge_messages_on_forge_message_id_and_forge_message_type" add_index "forge_messages", ["user_id", "project_id", "created_at"], :name => "index_forge_messages_on_user_id_and_project_id_and_created_at" - create_table "forked_project_links", :force => true do |t| - t.integer "forked_to_project_id", :null => false - t.integer "forked_from_project_id", :null => false - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "forked_project_links", ["forked_to_project_id"], :name => "index_forked_project_links_on_forked_to_project_id", :unique => true - create_table "forums", :force => true do |t| t.string "name", :null => false t.text "description" @@ -1063,17 +963,6 @@ ActiveRecord::Schema.define(:version => 20160810081337) do t.datetime "updated_at", :null => false end - create_table "identities", :force => true do |t| - t.string "extern_uid" - t.string "provider" - t.integer "user_id" - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "identities", ["created_at", "id"], :name => "index_identities_on_created_at_and_id" - add_index "identities", ["user_id"], :name => "index_identities_on_user_id" - create_table "invite_lists", :force => true do |t| t.integer "project_id" t.integer "user_id" @@ -1220,20 +1109,6 @@ ActiveRecord::Schema.define(:version => 20160810081337) do t.integer "private", :default => 0 end - create_table "keys", :force => true do |t| - t.integer "user_id" - t.datetime "created_at" - t.datetime "updated_at" - t.text "key" - t.string "title" - t.string "type" - t.string "fingerprint" - t.boolean "public", :default => false, :null => false - end - - add_index "keys", ["created_at", "id"], :name => "index_keys_on_created_at_and_id" - add_index "keys", ["user_id"], :name => "index_keys_on_user_id" - create_table "kindeditor_assets", :force => true do |t| t.string "asset" t.integer "file_size" @@ -1245,27 +1120,6 @@ ActiveRecord::Schema.define(:version => 20160810081337) do t.integer "owner_type", :default => 0 end - create_table "label_links", :force => true do |t| - t.integer "label_id" - t.integer "target_id" - t.string "target_type" - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "label_links", ["label_id"], :name => "index_label_links_on_label_id" - add_index "label_links", ["target_id", "target_type"], :name => "index_label_links_on_target_id_and_target_type" - - create_table "labels", :force => true do |t| - t.string "title" - t.string "color" - t.integer "project_id" - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "labels", ["project_id"], :name => "index_labels_on_project_id" - create_table "member_roles", :force => true do |t| t.integer "member_id", :null => false t.integer "role_id", :null => false @@ -1283,6 +1137,7 @@ ActiveRecord::Schema.define(:version => 20160810081337) do t.boolean "mail_notification", :default => false, :null => false t.integer "course_id", :default => -1 t.integer "course_group_id", :default => 0 + t.integer "is_collect", :default => 1 end add_index "members", ["project_id"], :name => "index_members_on_project_id" @@ -1317,47 +1172,6 @@ ActiveRecord::Schema.define(:version => 20160810081337) do t.integer "viewed_count", :default => 0 end - create_table "merge_request_diffs", :force => true do |t| - t.string "state" - t.text "st_commits", :limit => 2147483647 - t.text "st_diffs", :limit => 2147483647 - t.integer "merge_request_id", :null => false - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "merge_request_diffs", ["merge_request_id"], :name => "index_merge_request_diffs_on_merge_request_id", :unique => true - - create_table "merge_requests", :force => true do |t| - t.string "target_branch", :null => false - t.string "source_branch", :null => false - t.integer "source_project_id", :null => false - t.integer "author_id" - t.integer "assignee_id" - t.string "title" - t.datetime "created_at" - t.datetime "updated_at" - t.integer "milestone_id" - t.string "state" - t.string "merge_status" - t.integer "target_project_id", :null => false - t.integer "iid" - t.text "description" - t.integer "position", :default => 0 - t.datetime "locked_at" - end - - add_index "merge_requests", ["assignee_id"], :name => "index_merge_requests_on_assignee_id" - add_index "merge_requests", ["author_id"], :name => "index_merge_requests_on_author_id" - add_index "merge_requests", ["created_at", "id"], :name => "index_merge_requests_on_created_at_and_id" - add_index "merge_requests", ["created_at"], :name => "index_merge_requests_on_created_at" - add_index "merge_requests", ["milestone_id"], :name => "index_merge_requests_on_milestone_id" - add_index "merge_requests", ["source_branch"], :name => "index_merge_requests_on_source_branch" - add_index "merge_requests", ["source_project_id"], :name => "index_merge_requests_on_source_project_id" - add_index "merge_requests", ["target_branch"], :name => "index_merge_requests_on_target_branch" - add_index "merge_requests", ["target_project_id", "iid"], :name => "index_merge_requests_on_target_project_id_and_iid", :unique => true - add_index "merge_requests", ["title"], :name => "index_merge_requests_on_title" - create_table "message_alls", :force => true do |t| t.integer "user_id" t.integer "message_id" @@ -1392,39 +1206,6 @@ ActiveRecord::Schema.define(:version => 20160810081337) 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 "milestones", :force => true do |t| - t.string "title", :null => false - t.integer "project_id", :null => false - t.text "description" - t.date "due_date" - t.datetime "created_at" - t.datetime "updated_at" - t.string "state" - t.integer "iid" - end - - add_index "milestones", ["created_at", "id"], :name => "index_milestones_on_created_at_and_id" - add_index "milestones", ["due_date"], :name => "index_milestones_on_due_date" - add_index "milestones", ["project_id", "iid"], :name => "index_milestones_on_project_id_and_iid", :unique => true - add_index "milestones", ["project_id"], :name => "index_milestones_on_project_id" - - create_table "namespaces", :force => true do |t| - t.string "name", :null => false - t.string "path", :null => false - t.integer "owner_id" - t.datetime "created_at" - t.datetime "updated_at" - t.string "type" - t.string "description", :default => "", :null => false - t.string "avatar" - end - - add_index "namespaces", ["created_at", "id"], :name => "index_namespaces_on_created_at_and_id" - add_index "namespaces", ["name"], :name => "index_namespaces_on_name", :unique => true - add_index "namespaces", ["owner_id"], :name => "index_namespaces_on_owner_id" - add_index "namespaces", ["path"], :name => "index_namespaces_on_path", :unique => true - add_index "namespaces", ["type"], :name => "index_namespaces_on_type" - create_table "news", :force => true do |t| t.integer "project_id" t.string "title", :limit => 60, :default => "", :null => false @@ -1450,31 +1231,6 @@ ActiveRecord::Schema.define(:version => 20160810081337) do t.datetime "updated_at", :null => false end - create_table "notes", :force => true do |t| - t.text "note" - t.string "noteable_type" - t.integer "author_id" - t.datetime "created_at" - t.datetime "updated_at" - t.integer "project_id" - t.string "attachment" - t.string "line_code" - t.string "commit_id" - t.integer "noteable_id" - t.boolean "system", :default => false, :null => false - t.text "st_diff", :limit => 2147483647 - end - - add_index "notes", ["author_id"], :name => "index_notes_on_author_id" - add_index "notes", ["commit_id"], :name => "index_notes_on_commit_id" - add_index "notes", ["created_at", "id"], :name => "index_notes_on_created_at_and_id" - add_index "notes", ["created_at"], :name => "index_notes_on_created_at" - add_index "notes", ["noteable_id", "noteable_type"], :name => "index_notes_on_noteable_id_and_noteable_type" - add_index "notes", ["noteable_type"], :name => "index_notes_on_noteable_type" - add_index "notes", ["project_id", "noteable_type"], :name => "index_notes_on_project_id_and_noteable_type" - add_index "notes", ["project_id"], :name => "index_notes_on_project_id" - add_index "notes", ["updated_at"], :name => "index_notes_on_updated_at" - create_table "notificationcomments", :force => true do |t| t.string "notificationcommented_type" t.integer "notificationcommented_id" @@ -1484,49 +1240,6 @@ ActiveRecord::Schema.define(:version => 20160810081337) do t.datetime "updated_at", :null => false end - create_table "oauth_access_grants", :force => true do |t| - t.integer "resource_owner_id", :null => false - t.integer "application_id", :null => false - t.string "token", :null => false - t.integer "expires_in", :null => false - t.text "redirect_uri", :null => false - t.datetime "created_at", :null => false - t.datetime "revoked_at" - t.string "scopes" - end - - add_index "oauth_access_grants", ["token"], :name => "index_oauth_access_grants_on_token", :unique => true - - create_table "oauth_access_tokens", :force => true do |t| - t.integer "resource_owner_id" - t.integer "application_id" - t.string "token", :null => false - t.string "refresh_token" - t.integer "expires_in" - t.datetime "revoked_at" - t.datetime "created_at", :null => false - t.string "scopes" - end - - add_index "oauth_access_tokens", ["refresh_token"], :name => "index_oauth_access_tokens_on_refresh_token", :unique => true - add_index "oauth_access_tokens", ["resource_owner_id"], :name => "index_oauth_access_tokens_on_resource_owner_id" - add_index "oauth_access_tokens", ["token"], :name => "index_oauth_access_tokens_on_token", :unique => true - - create_table "oauth_applications", :force => true do |t| - t.string "name", :null => false - t.string "uid", :null => false - t.string "secret", :null => false - t.text "redirect_uri", :null => false - t.string "scopes", :default => "", :null => false - t.datetime "created_at" - t.datetime "updated_at" - t.integer "owner_id" - t.string "owner_type" - end - - add_index "oauth_applications", ["owner_id", "owner_type"], :name => "index_oauth_applications_on_owner_id_and_owner_type" - add_index "oauth_applications", ["uid"], :name => "index_oauth_applications_on_uid", :unique => true - create_table "onclick_times", :force => true do |t| t.integer "user_id" t.datetime "onclick_time" @@ -1684,23 +1397,6 @@ ActiveRecord::Schema.define(:version => 20160810081337) do t.integer "allow_teacher", :default => 0 end - create_table "permissions", :force => true do |t| - t.string "controller", :limit => 30, :default => "", :null => false - t.string "action", :limit => 30, :default => "", :null => false - t.string "description", :limit => 60, :default => "", :null => false - t.boolean "is_public", :default => false, :null => false - t.integer "sort", :default => 0, :null => false - t.boolean "mail_option", :default => false, :null => false - t.boolean "mail_enabled", :default => false, :null => false - end - - create_table "permissions_roles", :id => false, :force => true do |t| - t.integer "permission_id", :default => 0, :null => false - t.integer "role_id", :default => 0, :null => false - end - - add_index "permissions_roles", ["role_id"], :name => "permissions_roles_role_id" - create_table "phone_app_versions", :force => true do |t| t.string "version" t.text "description" @@ -1783,11 +1479,6 @@ ActiveRecord::Schema.define(:version => 20160810081337) do t.datetime "updated_at", :null => false end - create_table "project_import_data", :force => true do |t| - t.integer "project_id" - t.text "data" - end - create_table "project_infos", :force => true do |t| t.integer "project_id" t.integer "user_id" @@ -1880,16 +1571,6 @@ ActiveRecord::Schema.define(:version => 20160810081337) do add_index "projects_trackers", ["project_id", "tracker_id"], :name => "projects_trackers_unique", :unique => true add_index "projects_trackers", ["project_id"], :name => "projects_trackers_project_id" - create_table "protected_branches", :force => true do |t| - t.integer "project_id", :null => false - t.string "name", :null => false - t.datetime "created_at" - t.datetime "updated_at" - t.boolean "developers_can_push", :default => false, :null => false - end - - add_index "protected_branches", ["project_id"], :name => "index_protected_branches_on_project_id" - create_table "pull_requests", :force => true do |t| t.integer "pull_request_id" t.integer "gpid" @@ -2046,25 +1727,6 @@ ActiveRecord::Schema.define(:version => 20160810081337) do t.integer "is_teacher_score", :default => 0 end - create_table "services", :force => true do |t| - t.string "type" - t.string "title" - t.integer "project_id" - t.datetime "created_at" - t.datetime "updated_at" - t.boolean "active", :default => false, :null => false - t.text "properties" - t.boolean "template", :default => false - t.boolean "push_events", :default => true - t.boolean "issues_events", :default => true - t.boolean "merge_requests_events", :default => true - t.boolean "tag_push_events", :default => true - t.boolean "note_events", :default => true, :null => false - end - - add_index "services", ["created_at", "id"], :name => "index_services_on_created_at_and_id" - add_index "services", ["project_id"], :name => "index_services_on_project_id" - create_table "settings", :force => true do |t| t.string "name", :default => "", :null => false t.text "value" @@ -2103,26 +1765,6 @@ ActiveRecord::Schema.define(:version => 20160810081337) do t.datetime "updated_at", :null => false end - create_table "snippets", :force => true do |t| - t.string "title" - t.text "content", :limit => 2147483647 - t.integer "author_id", :null => false - t.integer "project_id" - t.datetime "created_at" - t.datetime "updated_at" - t.string "file_name" - t.datetime "expires_at" - t.string "type" - t.integer "visibility_level", :default => 0, :null => false - end - - add_index "snippets", ["author_id"], :name => "index_snippets_on_author_id" - add_index "snippets", ["created_at", "id"], :name => "index_snippets_on_created_at_and_id" - add_index "snippets", ["created_at"], :name => "index_snippets_on_created_at" - add_index "snippets", ["expires_at"], :name => "index_snippets_on_expires_at" - add_index "snippets", ["project_id"], :name => "index_snippets_on_project_id" - add_index "snippets", ["visibility_level"], :name => "index_snippets_on_visibility_level" - create_table "softapplications", :force => true do |t| t.string "name" t.text "description" @@ -2203,10 +1845,11 @@ ActiveRecord::Schema.define(:version => 20160810081337) do t.integer "absence_penalty", :default => 0 t.float "system_score", :default => 0.0 t.boolean "is_test", :default => false - t.float "work_score" t.integer "simi_id" t.integer "simi_value" + t.float "work_score" t.integer "work_status", :default => 0 + t.datetime "commit_time" end add_index "student_works", ["homework_common_id", "user_id"], :name => "index_student_works_on_homework_common_id_and_user_id" @@ -2254,13 +1897,13 @@ ActiveRecord::Schema.define(:version => 20160810081337) do create_table "sub_domains", :force => true do |t| t.integer "org_subfield_id" - t.integer "priority" + t.integer "priority", :default => 0 t.string "name" t.string "field_type" - t.integer "hide" - t.integer "status" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false + t.integer "hide", :default => 0 + t.integer "status", :default => 0 + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false end create_table "subfield_subdomain_dirs", :force => true do |t| @@ -2270,17 +1913,6 @@ ActiveRecord::Schema.define(:version => 20160810081337) do t.datetime "updated_at", :null => false end - create_table "subscriptions", :force => true do |t| - t.integer "user_id" - t.integer "subscribable_id" - t.string "subscribable_type" - t.boolean "subscribed" - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "subscriptions", ["subscribable_id", "subscribable_type", "user_id"], :name => "subscriptions_user_id_and_ref_fields", :unique => true - create_table "syllabuses", :force => true do |t| t.string "title" t.text "description" @@ -2510,8 +2142,9 @@ ActiveRecord::Schema.define(:version => 20160810081337) do t.string "remark" t.integer "groupid" t.integer "user_id" - 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.integer "bindtype", :default => 0 end create_table "users", :force => true do |t| @@ -2541,17 +2174,6 @@ ActiveRecord::Schema.define(:version => 20160810081337) do add_index "users", ["id", "type"], :name => "index_users_on_id_and_type" add_index "users", ["type"], :name => "index_users_on_type" - create_table "users_star_projects", :force => true do |t| - t.integer "project_id", :null => false - t.integer "user_id", :null => false - t.datetime "created_at" - t.datetime "updated_at" - end - - add_index "users_star_projects", ["project_id"], :name => "index_users_star_projects_on_project_id" - add_index "users_star_projects", ["user_id", "project_id"], :name => "index_users_star_projects_on_user_id_and_project_id", :unique => true - add_index "users_star_projects", ["user_id"], :name => "index_users_star_projects_on_user_id" - create_table "versions", :force => true do |t| t.integer "project_id", :default => 0, :null => false t.string "name", :default => "", :null => false @@ -2603,23 +2225,6 @@ ActiveRecord::Schema.define(:version => 20160810081337) do t.datetime "updated_at", :null => false end - create_table "web_hooks", :force => true do |t| - t.string "url" - t.integer "project_id" - t.datetime "created_at" - t.datetime "updated_at" - t.string "type", :default => "ProjectHook" - t.integer "service_id" - t.boolean "push_events", :default => true, :null => false - t.boolean "issues_events", :default => false, :null => false - t.boolean "merge_requests_events", :default => false, :null => false - t.boolean "tag_push_events", :default => false - t.boolean "note_events", :default => false, :null => false - end - - add_index "web_hooks", ["created_at", "id"], :name => "index_web_hooks_on_created_at_and_id" - add_index "web_hooks", ["project_id"], :name => "index_web_hooks_on_project_id" - create_table "wechat_logs", :force => true do |t| t.string "openid", :null => false t.text "request_raw" From 60beb2abab087490215c82ae250f4173c07d5e81 Mon Sep 17 00:00:00 2001 From: cxt Date: Thu, 25 Aug 2016 11:30:47 +0800 Subject: [PATCH 08/19] =?UTF-8?q?=E9=A6=96=E9=A1=B5=E5=B7=A6=E4=BE=A7?= =?UTF-8?q?=E7=8F=AD=E7=BA=A7=E5=92=8C=E9=A1=B9=E7=9B=AE=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E7=9A=84=E6=94=B6=E8=97=8F=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/users_controller.rb | 29 ++++++++++++------- .../_homepage_left_course_list.html.erb | 17 +++++++++++ .../_homepage_left_project_list.html.erb | 17 +++++++++++ app/views/layouts/_user_courses.html.erb | 2 +- app/views/layouts/_user_projects.html.erb | 4 +++ app/views/layouts/new_base_user.html.erb | 29 +++---------------- app/views/users/_collect_course.html.erb | 10 +++++++ app/views/users/_collect_project.html.erb | 10 +++++++ app/views/users/_courses_list.html.erb | 5 ++-- app/views/users/_project_list.html.erb | 5 +++- app/views/users/cancel_collect.js.erb | 0 app/views/users/cancel_or_collect.js.erb | 11 +++++++ app/views/users/user_courselist.html.erb | 3 +- config/routes.rb | 4 +-- 14 files changed, 103 insertions(+), 43 deletions(-) create mode 100644 app/views/layouts/_homepage_left_course_list.html.erb create mode 100644 app/views/layouts/_homepage_left_project_list.html.erb create mode 100644 app/views/users/_collect_course.html.erb create mode 100644 app/views/users/_collect_project.html.erb delete mode 100644 app/views/users/cancel_collect.js.erb create mode 100644 app/views/users/cancel_or_collect.js.erb diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index aabce249c..a44a3bc01 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -42,7 +42,7 @@ class UsersController < ApplicationController :activity_new_score_index, :influence_new_score_index, :score_new_index,:user_projects_index,:user_resource, :user_courses4show,:user_projects4show,:user_course_activities,:user_project_activities,:user_feedback4show,:user_visitorlist,:user_messages,:edit_brief_introduction, :user_import_homeworks,:user_search_homeworks,:user_import_resource, :user_system_messages,:choose_user_course,:user_courselist,:user_projectlist,:sort_syllabus_list, - :sort_project_list,:my_homeworks,:manage_or_receive_homeworks,:search_m_r_homeworks, :cancel_collect] + :sort_project_list,:my_homeworks,:manage_or_receive_homeworks,:search_m_r_homeworks, :cancel_or_collect,:expand_courses] before_filter :auth_user_extension, only: :show #before_filter :rest_user_score, only: :show #before_filter :select_entry, only: :user_projects @@ -1459,15 +1459,15 @@ class UsersController < ApplicationController #显示更多用户课程 def user_courses4show @page = params[:page].to_i + 1 - @courses = @user.courses.visible.where("is_delete =?", 0).select("courses.*,(SELECT MAX(updated_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS a").order("a desc").limit(10).offset(@page * 10) - @all_count = @user.courses.visible.where("is_delete =?", 0).count + @courses = @user.favorite_courses.visible.where("is_delete =?", 0).select("courses.*,(SELECT MAX(updated_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS a").order("a desc").limit(10).offset(@page * 10) + @all_count = @user.favorite_courses.visible.where("is_delete =?", 0).count end #显示更多用户项目 def user_projects4show @page = params[:page].to_i + 1 - @projects = @user.projects.visible.select("projects.*,(SELECT MAX(updated_at) FROM `forge_activities` WHERE forge_activities.project_id = projects.id) AS a").order("a desc").limit(10).offset(@page * 10) - @all_count = @user.projects.visible.count + @projects = @user.favorite_projects.visible.select("projects.*,(SELECT MAX(updated_at) FROM `forge_activities` WHERE forge_activities.project_id = projects.id) AS a").order("a desc").limit(10).offset(@page * 10) + @all_count = @user.favorite_projects.visible.count end def user_course_activities @@ -3424,20 +3424,27 @@ class UsersController < ApplicationController end end - #取消收藏班级/项目 - def cancel_collect + #收藏班级/项目 + def cancel_or_collect if params[:project] - member = Member.where("user_id = #{@user.id} and project_id = #{params[:project].to_i}") + @project = Project.find params[:project] + member = Member.where("user_id = #{@user.id} and project_id = #{@project.id}") elsif params[:course] - member = Member.where("user_id = #{@user.id} and course_id = #{params[:course].to_i}") + @course = Course.find params[:course] + member = Member.where("user_id = #{@user.id} and course_id = #{@course.id}") end unless member.empty? - member.first.update_attribute(:is_collect => 0) + member.first.update_attribute(:is_collect, member.first.is_collect == 0 ? 1 : 0) + end + if @project + @projects = @user.favorite_projects.visible.select("projects.*, (SELECT MAX(updated_at) FROM `forge_activities` WHERE forge_activities.project_id = projects.id) AS a").order("a desc").limit(10) + elsif @course + @courses = @user.favorite_courses.visible.where("is_delete =?", 0).select("courses.*,(SELECT MAX(updated_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS a").order("a desc").limit(10) end respond_to do |format| format.js end -end + end def user_projectlist @order, @c_sort, @type, @list_type = 1, 2, 1, 1 diff --git a/app/views/layouts/_homepage_left_course_list.html.erb b/app/views/layouts/_homepage_left_course_list.html.erb new file mode 100644 index 000000000..1f1f03210 --- /dev/null +++ b/app/views/layouts/_homepage_left_course_list.html.erb @@ -0,0 +1,17 @@ +<% all_count = @user.favorite_courses.visible.where("is_delete =?", 0).count%> +
              +
                + <%= render :partial => 'layouts/user_courses', :locals => {:courses => courses,:user => @user,:all_count => all_count,:page => 0} %> +
              +
              +<% if !courses.empty? %> + + + +<% end %> + + \ No newline at end of file diff --git a/app/views/layouts/_homepage_left_project_list.html.erb b/app/views/layouts/_homepage_left_project_list.html.erb new file mode 100644 index 000000000..d3fcaf2b5 --- /dev/null +++ b/app/views/layouts/_homepage_left_project_list.html.erb @@ -0,0 +1,17 @@ +<% all_count = @user.favorite_projects.visible.count%> +
              +
                + <%= render :partial => 'layouts/user_projects', :locals => {:projects => projects,:user => @user, :all_count => all_count, :page => 0} %> +
              +
              +<% if !projects.empty? %> + + + +<% end %> + + \ No newline at end of file diff --git a/app/views/layouts/_user_courses.html.erb b/app/views/layouts/_user_courses.html.erb index 0335aa922..d8b145ddc 100644 --- a/app/views/layouts/_user_courses.html.erb +++ b/app/views/layouts/_user_courses.html.erb @@ -53,7 +53,7 @@ <% end %> <% if User.current == user %>
            • - <%= link_to "取消收藏", cancel_collect_user_path(user, :course => course.id), :class => 'user_navmore_li',:target => '_blank' %> + <%= link_to "取消收藏", cancel_or_collect_user_path(user, :course => course.id), :class => 'user_navmore_li',:target => '_blank', :remote => true %>
            • diff --git a/app/views/layouts/_user_projects.html.erb b/app/views/layouts/_user_projects.html.erb index 21b42decd..e8a7f0755 100644 --- a/app/views/layouts/_user_projects.html.erb +++ b/app/views/layouts/_user_projects.html.erb @@ -27,6 +27,10 @@
            • <% end %> <% if User.current == @user %> +
            • + <%= link_to "取消收藏", cancel_or_collect_user_path(user, :project => project.id), :class => 'user_navmore_li',:target => '_blank', :remote => true %> +
              +
            • <% if ShieldActivity.where("container_type='User' and container_id=#{user.id} and shield_type='Project' and shield_id=#{project.id}").count == 0 %> <%= link_to "屏蔽动态", shield_activities_path(:user_id => user.id, :project_id => project.id), :method => 'post',:remote => true,:class => "user_navmore_li" %> diff --git a/app/views/layouts/new_base_user.html.erb b/app/views/layouts/new_base_user.html.erb index 5969f17d6..46cd43ecf 100644 --- a/app/views/layouts/new_base_user.html.erb +++ b/app/views/layouts/new_base_user.html.erb @@ -159,18 +159,8 @@
            • <%= link_to '班级',{:controller => "users", :action => "user_courselist", :id => @user.id}, :id => "user_course_list" %> <% courses = @user.favorite_courses.visible.where("is_delete =?", 0).select("courses.*,(SELECT MAX(updated_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS a").order("a desc").limit(10) %> - <% all_count = @user.favorite_courses.visible.where("is_delete =?", 0).count%> -
              -
              -
                - <%= render :partial => 'layouts/user_courses', :locals => {:courses => courses,:user => @user,:all_count => all_count,:page => 0} %> -
              -
              - <% if !courses.empty? %> - - - - <% end %> +
              + <%=render :partial => 'layouts/homepage_left_course_list', :locals => {:courses => courses} %>
            • <% if is_current_user %> @@ -195,19 +185,9 @@
              • <%= link_to '项目',{:controller => "users", :action => "user_projectlist", :id => @user.id}, :id => 'user_project_list'%> - <% all_count = @user.favorite_projects.visible.count%> <% projects = @user.favorite_projects.visible.select("projects.*, (SELECT MAX(updated_at) FROM `forge_activities` WHERE forge_activities.project_id = projects.id) AS a").order("a desc").limit(10)%> -
                -
                -
                  - <%= render :partial => 'layouts/user_projects', :locals => {:projects => projects,:user => @user, :all_count => all_count, :page => 0} %> -
                -
                - <% if !projects.empty? %> - - - - <% end %> +
                + <%=render :partial => 'layouts/homepage_left_project_list', :locals => {:projects => projects} %>
              • <% if is_current_user %> @@ -292,7 +272,6 @@