From 580cc6b8d8160b969103859078617139de5075b1 Mon Sep 17 00:00:00 2001 From: Tim Date: Fri, 27 Nov 2015 16:14:42 +0800 Subject: [PATCH 01/16] =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E7=94=9F=E6=88=90=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/schema.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/db/schema.rb b/db/schema.rb index 8e2082b37..504052365 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -1151,6 +1151,7 @@ ActiveRecord::Schema.define(:version => 20151127011351) do create_table "org_members", :force => true do |t| t.integer "user_id" t.integer "organization_id" + t.string "role" t.datetime "created_at", :null => false t.datetime "updated_at", :null => false end From b91c65798d5a576e3e89fe0b20cdd75324be7d12 Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 3 Dec 2015 20:44:29 +0800 Subject: [PATCH 02/16] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E6=88=90=E5=91=98?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/courses/member.html.erb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/views/courses/member.html.erb b/app/views/courses/member.html.erb index ce336373b..08cf27f17 100644 --- a/app/views/courses/member.html.erb +++ b/app/views/courses/member.html.erb @@ -1,5 +1,8 @@
-

<%= @subPage_title%>

+

<%= @subPage_title%>

+
+ <%= link_to "修改角色", url_for(:controller => 'courses', :action => 'settings', :id => @course.id) %> +
<% if @subPage_title == l(:label_student_list)%> <%= render :partial => 'course_student', :locals => {:members => @members} %> From 8d891a9faa93c5ccbdd04e7773e7560cb93b9dd6 Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 3 Dec 2015 20:57:09 +0800 Subject: [PATCH 03/16] =?UTF-8?q?fork=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/repositories/show.html.erb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/views/repositories/show.html.erb b/app/views/repositories/show.html.erb index 9601e5188..7cd93f5b0 100644 --- a/app/views/repositories/show.html.erb +++ b/app/views/repositories/show.html.erb @@ -25,7 +25,10 @@ -
Fork 0
+ <%# 针对公开项目:用户必须创建了项目,否则用户无法同步 %> + <% if User.current.id != @project.user_id || User.current.projects.count !=0 %> +
Fork 0
+ <% end %>
<% if @changesets && !@changesets.empty? %> From 057d9a33371de1decdf7edf48d4beb869d652969 Mon Sep 17 00:00:00 2001 From: huang Date: Fri, 4 Dec 2015 00:15:47 +0800 Subject: [PATCH 04/16] 0 --- app/controllers/courses_controller.rb | 76 +++++++++++++-------------- app/views/courses/settings.html.erb | 24 ++++----- 2 files changed, 50 insertions(+), 50 deletions(-) diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index cd1de16fc..6c275850b 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -55,11 +55,11 @@ class CoursesController < ApplicationController def join if User.current.logged? - cs = CoursesService.new - @user = User.current - join = cs.join_course params,@user - @state = join[:state] - @course = join[:course] + cs = CoursesService.new + @user = User.current + join = cs.join_course params,@user + @state = join[:state] + @course = join[:course] # else # @course = Course.find_by_id params[:object_id] # CourseMessage.create(:user_id => @course.tea_id, :course_id => @course.id, :viewed => false,:content=> params[:role],:course_message_id=>User.current.id,:course_message_type=>'JoinCourseRequest') @@ -70,7 +70,7 @@ class CoursesController < ApplicationController end @object_id = params[:object_id] respond_to do |format| - format.js #{ render :partial => 'set_join', :locals => {:user => @user, :course => @course, :object_id => params[:object_id]} } + format.js #{ render :partial => 'set_join', :locals => {:user => @user, :course => @course, :object_id => params[:object_id]} } end end @@ -85,7 +85,7 @@ class CoursesController < ApplicationController end end - + def join_private_courses respond_to do |format| format.js @@ -98,14 +98,14 @@ class CoursesController < ApplicationController c = cs.edit_course params,@course,User.current @course = c[:course] if @course.errors.full_messages.count <= 0 - respond_to do |format| - format.html { - # render :layout => 'base_courses' - flash[:notice] = l(:notice_successful_update) - redirect_to settings_course_url(@course) - } - format.api { render_api_ok } - end + respond_to do |format| + format.html { + # render :layout => 'base_courses' + flash[:notice] = l(:notice_successful_update) + redirect_to settings_course_url(@course) + } + format.api { render_api_ok } + end else respond_to do |format| format.html { @@ -134,8 +134,8 @@ class CoursesController < ApplicationController courses = Course.visible.where("LOWER(name) like '%#{params[:name].to_s.downcase}%'").order("time desc, created_at desc") @courses = paginateHelper courses,10 end - @name = params[:name] - @type = 'courses' + @name = params[:name] + @type = 'courses' respond_to do |format| format.html { render :layout => 'course_base' @@ -277,7 +277,7 @@ class CoursesController < ApplicationController def member ## 有角色参数的才是课程,没有的就是项目 if (User.current.admin? || @course.is_public == 1 || (@course.is_public == 0 && User.current.member_of_course?(@course))) - + @render_file = 'new_member_list' @score_sort_by = "desc" @canShowCode = User.current.allowed_to?(:as_teacher,@course) && params[:role] != '1' @@ -312,7 +312,7 @@ class CoursesController < ApplicationController def export_course_member_excel @all_members = student_homework_score(0,0,0,"desc") filename="#{@course.teacher.lastname.to_s + @course.teacher.firstname.to_s }_#{@course.name}_#{@course.time.to_s + @course.term}#{l(:excel_member_list)}"; - + respond_to do |format| format.xls { send_data(member_to_xls(@all_members,@course.course_groups), :type => "text/excel;charset=utf-8; header=present", @@ -426,7 +426,7 @@ class CoursesController < ApplicationController end def course - @school_id = params[:school_id] + @school_id = params[:school_id] per_page_option = 10 if @school_id == "0" or @school_id.nil? @courses_all = Course.active.visible. @@ -514,8 +514,8 @@ class CoursesController < ApplicationController def index if !User.current.admin? - render_404 - return + render_404 + return end @course_type = params[:course_type] @school_id = params[:school_id] @@ -564,7 +564,7 @@ class CoursesController < ApplicationController respond_to do |format| format.html { - render :layout => 'base' + render :layout => 'base' } format.atom { courses = Course.visible.order('created_on DESC').limit(Setting.feeds_limit.to_i).all @@ -683,10 +683,10 @@ class CoursesController < ApplicationController end def feedback - @course.journals_for_messages.each do |messages| - query = messages.course_messages.where("user_id = ?", User.current.id) - query.update_all(:viewed => true); - end + @course.journals_for_messages.each do |messages| + query = messages.course_messages.where("user_id = ?", User.current.id) + query.update_all(:viewed => true); + end if (User.current.admin? || @course.is_public == 1 || (@course.is_public == 0 && User.current.member_of_course?(@course))) page = params[:page] @@ -737,20 +737,20 @@ class CoursesController < ApplicationController #从课程创建的老师那里选择课程大纲 def course_outline - @teacher = User.find(@course.tea_id) - @blog_articles = @teacher.blog.articles - @is_in_show_outline_page = params[:is_in_show_outline_page] - respond_to do |format| - format.js - end + @teacher = User.find(@course.tea_id) + @blog_articles = @teacher.blog.articles + @is_in_show_outline_page = params[:is_in_show_outline_page] + respond_to do |format| + format.js + end end #根据关键字搜索,查找方法一样的,但返回内容不一样 def search_course_outline - @article_title = params[:title] - @teacher = User.find(@course.tea_id) - @blog_articles = @teacher.blog.articles.like(@article_title) - render :json=>@blog_articles.to_json + @article_title = params[:title] + @teacher = User.find(@course.tea_id) + @blog_articles = @teacher.blog.articles.like(@article_title) + render :json=>@blog_articles.to_json end #设置或者更改课程的大纲 @@ -796,7 +796,7 @@ class CoursesController < ApplicationController def can_show_course @first_page = FirstPage.find_by_page_type('project') if @first_page.try(:show_course) == 2 - render_404 + render_404 end end diff --git a/app/views/courses/settings.html.erb b/app/views/courses/settings.html.erb index 5c3918f00..ce56537c1 100644 --- a/app/views/courses/settings.html.erb +++ b/app/views/courses/settings.html.erb @@ -107,15 +107,15 @@
+ function select() { + $('#ajax-modal').html('<%= escape_javascript(render :partial => 'courses/term_select') %>'); + showModal('ajax-modal', '500px'); + $('#ajax-modal').siblings().remove(); + $('#ajax-modal').before("" + + ""); + $('#ajax-modal').parent().css("top","").css("left",""); + $('#ajax-modal').parent().addClass("anonymos"); + } + $("#time_selected").click(select); + $("#term_selected").click(select); + From 7c34122ff6ef4ccf001d273b63055f52d2bce3b4 Mon Sep 17 00:00:00 2001 From: huang Date: Tue, 8 Dec 2015 09:46:29 +0800 Subject: [PATCH 05/16] =?UTF-8?q?fork=E7=9A=84=E6=97=B6=E5=80=99=E5=A6=82?= =?UTF-8?q?=E6=9E=9C=E7=94=A8=E6=88=B7=E6=B2=A1=E6=9C=89=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=EF=BC=8C=E5=88=99=E8=87=AA=E5=8A=A8=E5=90=8C=E6=AD=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/repositories_controller.rb | 3 +++ app/views/repositories/show.html.erb | 6 ++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/controllers/repositories_controller.rb b/app/controllers/repositories_controller.rb index ca07dccdc..7c12ff8ab 100644 --- a/app/controllers/repositories_controller.rb +++ b/app/controllers/repositories_controller.rb @@ -75,6 +75,9 @@ class RepositoriesController < ApplicationController redirect_to repository_url(@repository) else g = Gitlab.client + if User.current.gid.nil? + g.sync_user(User.current) + end gproject = g.fork(@project.gpid, User.current.gid) if gproject copy_project(@project, gproject) diff --git a/app/views/repositories/show.html.erb b/app/views/repositories/show.html.erb index 00d79cd54..9464cc97b 100644 --- a/app/views/repositories/show.html.erb +++ b/app/views/repositories/show.html.erb @@ -25,14 +25,12 @@ -<%# 针对公开项目:用户必须创建了项目,否则用户无法同步 %> - <% if User.current.id != @project.user_id || User.current.projects.count !=0 %> - <% unless User.current.id == @project.user_id %> + <%# 针对公开项目:用户必须创建了项目,否则用户无法同步 %> + <% if User.current.id != @project.user_id %>
<%= link_to "".html_safe+"Fork", {:controller => 'repositories', :action => 'forked'}, :class=>"vl_btn"%> <%= @project.forked_count.to_i %>
<% end %> - <% end %>
<% if @changesets && !@changesets.empty? %> From 42f5b86d95dd0f2cdc6d72e9fb4d637990dcb159 Mon Sep 17 00:00:00 2001 From: huang Date: Tue, 8 Dec 2015 10:32:10 +0800 Subject: [PATCH 06/16] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E8=AF=BE=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/courses_controller.rb | 3 ++- db/migrate/20151208015409_add_is_delete_to_courses.rb | 5 +++++ db/schema.rb | 4 ++-- 3 files changed, 9 insertions(+), 3 deletions(-) create mode 100644 db/migrate/20151208015409_add_is_delete_to_courses.rb diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index 8e61ad525..ffe22a29d 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -771,8 +771,9 @@ class CoursesController < ApplicationController format.html {render :layout => 'base_courses'} end end + #删除课程 - #删除课程只是将课程的is_delete状态改为false,is_delete为false状态的课程只有管理员可以看到 + #删除课程只是将课程的is_deleted状态改为false,is_deleted为false状态的课程只有管理员可以看到 def destroy end diff --git a/db/migrate/20151208015409_add_is_delete_to_courses.rb b/db/migrate/20151208015409_add_is_delete_to_courses.rb new file mode 100644 index 000000000..d974fb4d9 --- /dev/null +++ b/db/migrate/20151208015409_add_is_delete_to_courses.rb @@ -0,0 +1,5 @@ +class AddIsDeleteToCourses < ActiveRecord::Migration + def change + add_column :courses, :is_delete, :integer + end +end diff --git a/db/schema.rb b/db/schema.rb index 125d7495f..5b58e3385 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 => 20151204062220) do +ActiveRecord::Schema.define(:version => 20151208015409) do create_table "activities", :force => true do |t| t.integer "act_id", :null => false @@ -459,6 +459,7 @@ ActiveRecord::Schema.define(:version => 20151204062220) do t.integer "open_student", :default => 0 t.integer "outline", :default => 0 t.integer "publish_resource", :default => 0 + t.integer "is_delete" end create_table "custom_fields", :force => true do |t| @@ -1160,7 +1161,6 @@ ActiveRecord::Schema.define(:version => 20151204062220) do create_table "org_members", :force => true do |t| t.integer "user_id" t.integer "organization_id" - t.string "role" t.datetime "created_at", :null => false t.datetime "updated_at", :null => false end From 916d99be82516cc1aaa86c59f281457fa4a9ca84 Mon Sep 17 00:00:00 2001 From: huang Date: Tue, 8 Dec 2015 16:45:26 +0800 Subject: [PATCH 07/16] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/courses_controller.rb | 11 +++++++++++ app/models/course.rb | 7 ++++--- app/views/admin/courses.html.erb | 3 +++ db/migrate/20151208015409_add_is_delete_to_courses.rb | 2 +- 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index ffe22a29d..5109e15f4 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -775,7 +775,18 @@ class CoursesController < ApplicationController #删除课程 #删除课程只是将课程的is_deleted状态改为false,is_deleted为false状态的课程只有管理员可以看到 def destroy + @course.update_attributes(:is_delete => true) + @course = nil + redirect_to user_url(User.current) + end + # 恢复已删除的课程 + def recovery + if User.current.admin? + @course.update_attributes(:is_delete => false) + else + return 403 + end end private diff --git a/app/models/course.rb b/app/models/course.rb index 1c1bedb3b..cef05de73 100644 --- a/app/models/course.rb +++ b/app/models/course.rb @@ -20,7 +20,7 @@ class Course < ActiveRecord::Base end end - attr_accessible :code, :extra, :name, :state, :tea_id, :time , :location, :state, :term, :password,:is_public,:description,:class_period, :open_student, :enterprise_name + attr_accessible :code, :extra, :name, :state, :tea_id, :time , :location, :state, :term, :password,:is_public,:description,:class_period, :open_student, :enterprise_name, :is_delete #belongs_to :project, :class_name => 'Course', :foreign_key => :extra, primary_key: :identifier belongs_to :teacher, :class_name => 'User', :foreign_key => :tea_id # 定义一个方法teacher,该方法通过tea_id来调用User表 belongs_to :school, :class_name => 'School', :foreign_key => :school_id #定义一个方法school,该方法通过school_id来调用School表 @@ -86,7 +86,8 @@ class Course < ActiveRecord::Base 'is_public', 'description', 'class_period', - 'open_student' + 'open_student', + 'is_delete' acts_as_customizable @@ -94,7 +95,7 @@ class Course < ActiveRecord::Base scope :active, lambda { where(:status => STATUS_ACTIVE) } scope :status, lambda {|arg| where(arg.blank? ? nil : {:status => arg.to_i}) } scope :all_public, lambda { where(:is_public => true) } - scope :visible, lambda {|*args| where(Course.visible_condition(args.shift || User.current, *args)) } + scope :visible, lambda {|*args| where(Course.where("is_delete =?", 0).visible_condition(args.shift || User.current, *args)) } scope :allowed_to, lambda {|*args| user = User.current permission = nil diff --git a/app/views/admin/courses.html.erb b/app/views/admin/courses.html.erb index 1615bccbc..0bd4fb509 100644 --- a/app/views/admin/courses.html.erb +++ b/app/views/admin/courses.html.erb @@ -67,6 +67,9 @@ <%= format_date(course.created_at) %> + + <%= link_to(l(:button_delete), course_path(course), :method => :delete, :class => 'icon icon-del', :onClick=>"delcfm()" ) %> + <% end %> diff --git a/db/migrate/20151208015409_add_is_delete_to_courses.rb b/db/migrate/20151208015409_add_is_delete_to_courses.rb index d974fb4d9..cf037e010 100644 --- a/db/migrate/20151208015409_add_is_delete_to_courses.rb +++ b/db/migrate/20151208015409_add_is_delete_to_courses.rb @@ -1,5 +1,5 @@ class AddIsDeleteToCourses < ActiveRecord::Migration def change - add_column :courses, :is_delete, :integer + add_column :courses, :is_delete, :integer, :default => 0 end end From 7f866a0b3af8a3a02b084ea6b208a494c1e4cadb Mon Sep 17 00:00:00 2001 From: lizanle <491823689@qq.com> Date: Thu, 10 Dec 2015 10:00:14 +0800 Subject: [PATCH 08/16] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E8=A2=AB=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E5=90=8E=E4=B8=8D=E8=83=BD=E8=A2=AB=E6=90=9C=E7=B4=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/course.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/models/course.rb b/app/models/course.rb index cef05de73..ee26d1d54 100644 --- a/app/models/course.rb +++ b/app/models/course.rb @@ -115,7 +115,7 @@ class Course < ActiveRecord::Base where(" LOWER(name) LIKE :p ", :p => pattern) end } - scope :indexable,lambda { where('is_public = 1') } + scope :indexable,lambda { where('is_public = 1 and is_delete = 0') } def self.search(query) __elasticsearch__.search( { @@ -400,12 +400,12 @@ class Course < ActiveRecord::Base # __elasticsearch__.delete_document # end def create_course_ealasticsearch_index - if self.is_public == 1 + if self.is_public == 1 and self.is_delete == 0 #公开 和 没有被删除的课程才被索引 self.__elasticsearch__.index_document end end def update_course_ealasticsearch_index - if self.is_public == 1 #如果是初次更新成为公开的情况,会报错,那么这条记录尚未被索引过。没有报错就是更新的其他属性 + if self.is_public == 1 and self.is_delete == 0 #如果是初次更新成为公开或者恢复被删除的情况,会报错,那么这条记录尚未被索引过。没有报错就是更新的其他属性 begin self.__elasticsearch__.update_document rescue => e From 433059e1bce52482bac7887d49cde7895f5a8593 Mon Sep 17 00:00:00 2001 From: lizanle <491823689@qq.com> Date: Thu, 10 Dec 2015 10:12:54 +0800 Subject: [PATCH 09/16] schema --- db/schema.rb | 46 ++++++++++++++++++++++++++-------------------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/db/schema.rb b/db/schema.rb index 5b58e3385..29a208e74 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -459,7 +459,7 @@ ActiveRecord::Schema.define(:version => 20151208015409) do t.integer "open_student", :default => 0 t.integer "outline", :default => 0 t.integer "publish_resource", :default => 0 - t.integer "is_delete" + t.integer "is_delete", :default => 0 end create_table "custom_fields", :force => true do |t| @@ -544,26 +544,23 @@ ActiveRecord::Schema.define(:version => 20151208015409) do add_index "documents", ["created_on"], :name => "index_documents_on_created_on" add_index "documents", ["project_id"], :name => "documents_project_id" - create_table "dts", :primary_key => "Num", :force => true do |t| - t.string "Defect", :limit => 50 - t.string "Category", :limit => 50 - t.string "File" - t.string "Method" - t.string "Module", :limit => 20 - t.string "Variable", :limit => 50 - t.integer "StartLine" - t.integer "IPLine" - t.string "IPLineCode", :limit => 200 - t.string "Judge", :limit => 15 - t.integer "Review", :limit => 1 + create_table "dts", :force => true do |t| + t.string "IPLineCode" t.string "Description" - t.text "PreConditions", :limit => 2147483647 - t.text "TraceInfo", :limit => 2147483647 - t.text "Code", :limit => 2147483647 + t.string "Num" + t.string "Variable" + t.string "TraceInfo" + t.string "Method" + t.string "File" + t.string "IPLine" + t.string "Review" + t.string "Category" + t.string "Defect" + t.string "PreConditions" + t.string "StartLine" t.integer "project_id" - t.datetime "created_at" - t.datetime "updated_at" - t.integer "id", :null => false + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false end create_table "editor_of_documents", :force => true do |t| @@ -901,6 +898,16 @@ ActiveRecord::Schema.define(:version => 20151208015409) do add_index "journal_details", ["journal_id"], :name => "journal_details_journal_id" + create_table "journal_details_copy", :force => true do |t| + t.integer "journal_id", :default => 0, :null => false + t.string "property", :limit => 30, :default => "", :null => false + t.string "prop_key", :limit => 30, :default => "", :null => false + t.text "old_value" + t.text "value" + end + + add_index "journal_details_copy", ["journal_id"], :name => "journal_details_journal_id" + create_table "journal_replies", :id => false, :force => true do |t| t.integer "journal_id" t.integer "user_id" @@ -970,7 +977,6 @@ ActiveRecord::Schema.define(:version => 20151208015409) do t.integer "course_group_id", :default => 0 end - add_index "members", ["course_id"], :name => "index_members_on_course_id" add_index "members", ["project_id"], :name => "index_members_on_project_id" add_index "members", ["user_id", "project_id", "course_id"], :name => "index_members_on_user_id_and_project_id", :unique => true add_index "members", ["user_id"], :name => "index_members_on_user_id" From 4f7f4acb1fa9d4d4e0f45f1ddf34fec017d224ba Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 10 Dec 2015 17:26:03 +0800 Subject: [PATCH 10/16] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/courses_controller.rb | 5 +++++ app/views/courses/settings.html.erb | 6 ++++++ app/views/layouts/new_base_user.html.erb | 2 +- config/routes.rb | 1 + 4 files changed, 13 insertions(+), 1 deletion(-) diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index 5109e15f4..909c13db8 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -634,6 +634,11 @@ class CoursesController < ApplicationController end def show + # 被删除的课程只有超级管理员才能看到,is_delete为1的时候,标记课程被删除 + if @course.is_delete == 1 && User.current.admin? + render_403 + return + end #更新创建课程消息状态 create_course_messages = @course.course_messages.where("user_id =? and course_message_type =? and course_id =? and viewed =?", User.current.id, 'Course', @course.id, 0) create_course_messages.update_all(:viewed => true) diff --git a/app/views/courses/settings.html.erb b/app/views/courses/settings.html.erb index 3456634d5..173d2de4a 100644 --- a/app/views/courses/settings.html.erb +++ b/app/views/courses/settings.html.erb @@ -88,6 +88,12 @@ <% end %> + <% if @course.is_delete == 1 %> +
<%=link_to "恢复该课程", course_path(@course), :method => :delete %>
+ <% else %> +
<%=link_to "删除该课程", course_path(@course), :method => :delete %>
+ <% end %> +
diff --git a/app/views/layouts/new_base_user.html.erb b/app/views/layouts/new_base_user.html.erb index 00d15fad0..b77c5b875 100644 --- a/app/views/layouts/new_base_user.html.erb +++ b/app/views/layouts/new_base_user.html.erb @@ -147,7 +147,7 @@ <% end%> <% end%>
- <% courses = @user.courses.visible.select("courses.*,(SELECT MAX(created_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS a").order("a desc").limit(5)%> + <% courses = @user.courses.visible.where("is_delete =?", 0).select("courses.*,(SELECT MAX(created_at) FROM `course_activities` WHERE course_activities.course_id = courses.id) AS a").order("a desc").limit(5)%>
    <%= render :partial => 'layouts/user_courses', :locals => {:courses => courses,:user => @user, :page => 0} %> diff --git a/config/routes.rb b/config/routes.rb index 15e41955d..d242edd22 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -890,6 +890,7 @@ RedmineApp::Application.routes.draw do get 'member_score', :to => 'courses#member_score' post 'finishcourse' post 'restartcourse' + match "recover", :to => 'courses#recovery' match "searchmembers", :controller => 'courses', :action => 'searchmembers', :via => [:post,:get] match "searchgroupmembers", :via => [:post, :get] match 'member_score_sort', :via => [:get] From c7b2c9e3af0b9aba235467462107ffb02b2ad86a Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 10 Dec 2015 18:59:54 +0800 Subject: [PATCH 11/16] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=20admin=E4=B8=AD=E8=AF=BE=E7=A8=8B=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E5=8F=96=E6=B6=88=E5=88=A0=E9=99=A4=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/courses_controller.rb | 21 +++++++++++++++------ app/views/admin/courses.html.erb | 3 --- app/views/courses/settings.html.erb | 7 +++++-- config/routes.rb | 2 +- public/javascripts/course.js | 2 +- 5 files changed, 22 insertions(+), 13 deletions(-) diff --git a/app/controllers/courses_controller.rb b/app/controllers/courses_controller.rb index 909c13db8..1b0ead141 100644 --- a/app/controllers/courses_controller.rb +++ b/app/controllers/courses_controller.rb @@ -25,6 +25,7 @@ class CoursesController < ApplicationController before_filter :authorize_course, :only => [:show, :settings, :update, :course] before_filter :authorize_course_global, :only => [:new,:create] before_filter :toggleCourse, :only => [:finishcourse, :restartcourse] + before_filter :is_deleted, :only => [:show, :settings] before_filter :require_login, :only => [:join, :unjoin] #before_filter :allow_join, :only => [:join] @@ -581,6 +582,13 @@ class CoursesController < ApplicationController end end + def is_deleted + if @course.is_delete == 1 and !User.current.admin? + render_404 + return + end + end + def get_courses @user = User.current membership = @user.coursememberships.all @@ -635,10 +643,10 @@ class CoursesController < ApplicationController def show # 被删除的课程只有超级管理员才能看到,is_delete为1的时候,标记课程被删除 - if @course.is_delete == 1 && User.current.admin? - render_403 - return - end + # if @course.is_delete == 1 && !User.current.admin? + # render_403 + # return + # end #更新创建课程消息状态 create_course_messages = @course.course_messages.where("user_id =? and course_message_type =? and course_id =? and viewed =?", User.current.id, 'Course', @course.id, 0) create_course_messages.update_all(:viewed => true) @@ -786,11 +794,12 @@ class CoursesController < ApplicationController end # 恢复已删除的课程 - def recovery + def renew if User.current.admin? @course.update_attributes(:is_delete => false) + redirect_to course_path(@course) else - return 403 + return 404 end end diff --git a/app/views/admin/courses.html.erb b/app/views/admin/courses.html.erb index 0bd4fb509..1615bccbc 100644 --- a/app/views/admin/courses.html.erb +++ b/app/views/admin/courses.html.erb @@ -67,9 +67,6 @@ <%= format_date(course.created_at) %> - - <%= link_to(l(:button_delete), course_path(course), :method => :delete, :class => 'icon icon-del', :onClick=>"delcfm()" ) %> - <% end %> diff --git a/app/views/courses/settings.html.erb b/app/views/courses/settings.html.erb index 173d2de4a..650127aef 100644 --- a/app/views/courses/settings.html.erb +++ b/app/views/courses/settings.html.erb @@ -89,9 +89,12 @@ <% end %>
<% if @course.is_delete == 1 %> -
<%=link_to "恢复该课程", course_path(@course), :method => :delete %>
+
<%=link_to "恢复该课程", renew_course_path(@course) %>
<% else %> -
<%=link_to "删除该课程", course_path(@course), :method => :delete %>
+
+ <%=link_to "删除该课程", course_path(@course), :method => :delete, :confirm=>"确认要删除该课程吗?" %> + (友情提示:删除该课程后如果您想恢复该课程,请联系系统管理员!) +
<% end %>
diff --git a/config/routes.rb b/config/routes.rb index d242edd22..8bb530857 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -890,7 +890,7 @@ RedmineApp::Application.routes.draw do get 'member_score', :to => 'courses#member_score' post 'finishcourse' post 'restartcourse' - match "recover", :to => 'courses#recovery' + match "renew", :to => 'courses#renew', :via => [:post, :get], :as =>'renew' match "searchmembers", :controller => 'courses', :action => 'searchmembers', :via => [:post,:get] match "searchgroupmembers", :via => [:post, :get] match 'member_score_sort', :via => [:get] diff --git a/public/javascripts/course.js b/public/javascripts/course.js index 15968772f..c61120f21 100644 --- a/public/javascripts/course.js +++ b/public/javascripts/course.js @@ -1362,4 +1362,4 @@ $(function(){ }); personalized_init(); -}); \ No newline at end of file +}); From 9710731a2c5996337a8f2b37929dec6f12d0031a Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 10 Dec 2015 20:03:59 +0800 Subject: [PATCH 12/16] =?UTF-8?q?=E8=AF=BE=E7=A8=8B=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=99=BB=E5=BD=95=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/courses/_member.html.erb | 3 +- db/schema.rb | 51 ++++++++++++++---------------- 2 files changed, 25 insertions(+), 29 deletions(-) diff --git a/app/views/courses/_member.html.erb b/app/views/courses/_member.html.erb index 40049f104..7762a0798 100644 --- a/app/views/courses/_member.html.erb +++ b/app/views/courses/_member.html.erb @@ -1,6 +1,7 @@ <% @members.each do |member| %>
  • - <%= link_to_user_header member.principal,true,:class => "w150 c_orange fl" %> + <%#= link_to_user_header member.principal,true,:class => "w150 c_orange fl" %> + <%= link_to "#{member.principal}(#{member.principal.show_name})", user_path(member.principal), :class => "w150 c_orange fl" %> <%= zh_course_role(h member.roles.sort.collect(&:to_s).join(', ')) %> <%= form_for(member, {:as => :membership, :remote => true, :url => membership_path(member), diff --git a/db/schema.rb b/db/schema.rb index 4bfd0a42b..9ce76c447 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 => 20151208015409) do +ActiveRecord::Schema.define(:version => 20151210110210) do create_table "activities", :force => true do |t| t.integer "act_id", :null => false @@ -459,7 +459,7 @@ ActiveRecord::Schema.define(:version => 20151208015409) do t.integer "open_student", :default => 0 t.integer "outline", :default => 0 t.integer "publish_resource", :default => 0 - t.integer "is_delete", :default => 0 + t.integer "is_delete" end create_table "custom_fields", :force => true do |t| @@ -544,23 +544,26 @@ ActiveRecord::Schema.define(:version => 20151208015409) do add_index "documents", ["created_on"], :name => "index_documents_on_created_on" add_index "documents", ["project_id"], :name => "documents_project_id" - create_table "dts", :force => true do |t| - t.string "IPLineCode" - t.string "Description" - t.string "Num" - t.string "Variable" - t.string "TraceInfo" - t.string "Method" + create_table "dts", :primary_key => "Num", :force => true do |t| + t.string "Defect", :limit => 50 + t.string "Category", :limit => 50 t.string "File" - t.string "IPLine" - t.string "Review" - t.string "Category" - t.string "Defect" - t.string "PreConditions" - t.string "StartLine" + t.string "Method" + t.string "Module", :limit => 20 + t.string "Variable", :limit => 50 + t.integer "StartLine" + t.integer "IPLine" + t.string "IPLineCode", :limit => 200 + t.string "Judge", :limit => 15 + t.integer "Review", :limit => 1 + t.string "Description" + t.text "PreConditions", :limit => 2147483647 + t.text "TraceInfo", :limit => 2147483647 + t.text "Code", :limit => 2147483647 t.integer "project_id" - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false + t.datetime "created_at" + t.datetime "updated_at" + t.integer "id", :null => false end create_table "editor_of_documents", :force => true do |t| @@ -898,16 +901,6 @@ ActiveRecord::Schema.define(:version => 20151208015409) do add_index "journal_details", ["journal_id"], :name => "journal_details_journal_id" - create_table "journal_details_copy", :force => true do |t| - t.integer "journal_id", :default => 0, :null => false - t.string "property", :limit => 30, :default => "", :null => false - t.string "prop_key", :limit => 30, :default => "", :null => false - t.text "old_value" - t.text "value" - end - - add_index "journal_details_copy", ["journal_id"], :name => "journal_details_journal_id" - create_table "journal_replies", :id => false, :force => true do |t| t.integer "journal_id" t.integer "user_id" @@ -977,6 +970,7 @@ ActiveRecord::Schema.define(:version => 20151208015409) do t.integer "course_group_id", :default => 0 end + add_index "members", ["course_id"], :name => "index_members_on_course_id" add_index "members", ["project_id"], :name => "index_members_on_project_id" add_index "members", ["user_id", "project_id", "course_id"], :name => "index_members_on_user_id_and_project_id", :unique => true add_index "members", ["user_id"], :name => "index_members_on_user_id" @@ -1157,6 +1151,7 @@ ActiveRecord::Schema.define(:version => 20151208015409) do t.datetime "updated_at", :null => false t.boolean "locked", :default => false t.integer "sticky", :default => 0 + t.integer "org_subfield_id" end create_table "org_member_roles", :force => true do |t| @@ -1183,6 +1178,7 @@ ActiveRecord::Schema.define(:version => 20151208015409) do t.string "name" t.datetime "created_at", :null => false t.datetime "updated_at", :null => false + t.string "field_type" end create_table "organizations", :force => true do |t| @@ -1533,7 +1529,6 @@ ActiveRecord::Schema.define(:version => 20151208015409) do end add_index "student_works", ["homework_common_id", "user_id"], :name => "index_student_works_on_homework_common_id_and_user_id" - add_index "student_works", ["homework_common_id"], :name => "index" create_table "student_works_evaluation_distributions", :force => true do |t| t.integer "student_work_id" From 670df76c709b858246e187024417163a5c0b5a9a Mon Sep 17 00:00:00 2001 From: huang Date: Thu, 10 Dec 2015 20:24:42 +0800 Subject: [PATCH 13/16] =?UTF-8?q?=E6=B3=A8=E9=87=8A=E6=8E=89=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E9=82=80=E8=AF=B7=E5=8A=A0=E5=85=A5=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/layouts/base_projects.html.erb | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/app/views/layouts/base_projects.html.erb b/app/views/layouts/base_projects.html.erb index 9e9bd688f..4719b7427 100644 --- a/app/views/layouts/base_projects.html.erb +++ b/app/views/layouts/base_projects.html.erb @@ -103,17 +103,17 @@ <% else %>
    - <%= form_for('new_form',:url => {:controller => 'words', :action => 'leave_course_message'},:method => "post") do |f|%> + <%= form_for('new_form',:url => {:controller => 'words', :action => 'leave_course_message'}, :html=>{:id => "course_feedback_new"},:method => "post") do |f|%> <%= hidden_field_tag :asset_id,params[:asset_id],:required => false,:style => 'display:none' %>

    取消 - 留言 - <% end%> + 留言 + <% end %>
    <% end %> @@ -50,7 +50,11 @@
    diff --git a/public/javascripts/course.js b/public/javascripts/course.js index c61120f21..97e20a5a8 100644 --- a/public/javascripts/course.js +++ b/public/javascripts/course.js @@ -1363,3 +1363,10 @@ $(function(){ personalized_init(); }); +function submit_course_feedback() { + var flag = false; + if(flag == false){ + $("#course_feedback_new").submit(); + var flag = true + } +} \ No newline at end of file From 01b21ceda16e43d1e17205ded775a2c86b70bb1c Mon Sep 17 00:00:00 2001 From: huang Date: Fri, 11 Dec 2015 09:52:17 +0800 Subject: [PATCH 15/16] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E7=95=99=E8=A8=80?= =?UTF-8?q?=E9=87=8D=E5=A4=8D=E6=8F=90=E4=BA=A4=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/courses/_courses_jours.html.erb | 4 ++-- app/views/projects/_project_jours.html.erb | 6 +++++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/app/views/courses/_courses_jours.html.erb b/app/views/courses/_courses_jours.html.erb index eee98a0e5..0eaab219d 100644 --- a/app/views/courses/_courses_jours.html.erb +++ b/app/views/courses/_courses_jours.html.erb @@ -33,7 +33,7 @@

    取消 - 留言 + 留言 <% end %> <% end %> @@ -52,7 +52,7 @@ \ No newline at end of file