From aebae800dd83538d37d17c2ff62d14459803daa9 Mon Sep 17 00:00:00 2001 From: nwb Date: Tue, 22 Jul 2014 08:37:07 +0800 Subject: [PATCH 1/9] =?UTF-8?q?=E7=AB=9E=E8=B5=9B=E9=A6=96=E9=A1=B5?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 2 +- Gemfile.lock | 37 ++++++++++++++++-------------- app/views/welcome/contest.html.erb | 2 +- 3 files changed, 22 insertions(+), 19 deletions(-) diff --git a/Gemfile b/Gemfile index fc889f707..57d85e464 100644 --- a/Gemfile +++ b/Gemfile @@ -1,4 +1,4 @@ -source 'https://ruby.taobao.org' +source 'http://ruby.taobao.org' unless RUBY_PLATFORM =~ /w32/ # unix-like only diff --git a/Gemfile.lock b/Gemfile.lock index 4159a32a0..34314d845 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -19,7 +19,7 @@ PATH rails GEM - remote: https://ruby.taobao.org/ + remote: http://ruby.taobao.org/ remote: https://rubygems.org/ specs: actionmailer (3.2.13) @@ -53,13 +53,12 @@ GEM rails (>= 3, < 5) arel (3.0.3) builder (3.0.0) - capybara (2.0.3) + capybara (2.4.1) mime-types (>= 1.16) nokogiri (>= 1.3.3) rack (>= 1.0.0) rack-test (>= 0.5.4) - selenium-webdriver (~> 2.0) - xpath (~> 1.0.0) + xpath (~> 2.0) celluloid (0.15.2) timers (~> 1.1.0) childprocess (0.5.3) @@ -90,7 +89,7 @@ GEM lumberjack (~> 1.0) pry (>= 0.9.12) thor (>= 0.18.1) - guard-rails (0.5.2) + guard-rails (0.5.3) guard (~> 2.0) guard-spork (1.5.1) childprocess (>= 0.2.3) @@ -122,14 +121,17 @@ GEM metaclass (0.0.4) method_source (0.8.2) mime-types (1.25.1) - mocha (0.13.3) + mini_portile (0.6.0) + mocha (1.1.0) metaclass (~> 0.0.1) multi_json (1.10.1) mysql2 (0.3.11) mysql2 (0.3.11-x86-mingw32) net-ldap (0.3.1) - nokogiri (1.5.11) - nokogiri (1.5.11-x86-mingw32) + nokogiri (1.6.3) + mini_portile (= 0.6.0) + nokogiri (1.6.3-x86-mingw32) + mini_portile (= 0.6.0) paperclip (3.5.4) activemodel (>= 3.0.0) activesupport (>= 3.0.0) @@ -233,7 +235,7 @@ GEM json (>= 1.8.0) websocket (1.0.7) win32console (1.3.2-x86-mingw32) - xpath (1.0.0) + xpath (2.0.0) nokogiri (~> 1.3) PLATFORMS @@ -246,22 +248,22 @@ DEPENDENCIES acts-as-taggable-on (= 2.4.1) better_errors! builder (= 3.0.0) - capybara (~> 2.0.0) + capybara (~> 2.4.1) coderay (~> 1.0.6) coffee-rails (~> 3.2.1) - factory_girl + factory_girl (~> 4.4.0) fastercsv (~> 1.5.0) - guard-rails - guard-spork + guard-rails (~> 0.5.3) + guard-spork (~> 1.5.1) guard-test (~> 1.0.0) htmlentities i18n (~> 0.6.0) jquery-rails (~> 2.0.2) kaminari - mocha (~> 0.13.3) + mocha (~> 1.1.0) mysql2 (= 0.3.11) net-ldap (~> 0.3.1) - nokogiri (< 1.6.0) + nokogiri (~> 1.6.3) paperclip (~> 3.5.4) pry pry-nav @@ -273,7 +275,8 @@ DEPENDENCIES ruby-openid (~> 2.1.4) sass-rails (~> 3.2.3) seems_rateable! - shoulda (> 3.3.2) - spork-testunit + selenium-webdriver (~> 2.42.0) + shoulda (~> 3.5.0) + spork-testunit (~> 0.0.8) therubyracer uglifier (>= 1.0.3) diff --git a/app/views/welcome/contest.html.erb b/app/views/welcome/contest.html.erb index 7769be8b3..bd8be87a3 100644 --- a/app/views/welcome/contest.html.erb +++ b/app/views/welcome/contest.html.erb @@ -169,7 +169,7 @@ <% end %> -
+
<%=contest.description.truncate(100, omission: '...')%>

From b49344107c502c862be597777ba5b139f234e2e0 Mon Sep 17 00:00:00 2001 From: nwb Date: Tue, 22 Jul 2014 08:51:35 +0800 Subject: [PATCH 2/9] =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=8A=A8=E6=80=81?= =?UTF-8?q?=E6=9D=83=E9=99=90=E5=88=A4=E5=AE=9A=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/users_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 34745709b..9e7ee0229 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -33,7 +33,7 @@ class UsersController < ApplicationController before_filter :require_admin, :except => [:show, :index, :search, :tag_save, :tag_saveEx,:user_projects, :user_newfeedback, :user_comments, :watch_bids, :watch_contests, :info, :user_watchlist, :user_fanslist,:update, :user_courses, :user_homeworks, :watch_projects, :show_score, :topic_score_index, :project_score_index, :activity_score_index, :influence_score_index, :score_index,:show_new_score, :topic_new_score_index, :project_new_score_index, - :activity_new_score_index, :influence_new_score_index, :score_new_index,:update_score] + :activity_new_score_index, :influence_new_score_index, :score_new_index,:update_score,:user_activities] #edit has been deleted by huang, 2013-9-23 before_filter :find_user, :only => [:user_fanslist, :user_watchlist, :show, :edit, :update, :destroy, :edit_membership, :user_courses, :user_homeworks, :destroy_membership, :user_activities, :user_projects, :user_newfeedback, :user_comments, From 3e79dd6e329e617430b62f4c701a6d11e5f258b3 Mon Sep 17 00:00:00 2001 From: z9hang Date: Tue, 22 Jul 2014 08:53:14 +0800 Subject: [PATCH 3/9] =?UTF-8?q?=E7=AB=9E=E8=B5=9B=E9=80=9A=E7=9F=A5?= =?UTF-8?q?=E9=BC=A0=E6=A0=87=E6=82=AC=E5=81=9C=20=E5=AF=BC=E8=88=AA?= =?UTF-8?q?=E4=B8=A2=E5=A4=B1=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ReadMe.txt | 2 + app/controllers/contests_controller.rb | 1 + .../softapplications_controller.rb | 1 + app/views/issues/_list.html.erb | 2 +- app/views/layouts/contest_base.html.erb | 49 +++++++++++++++++++ app/views/welcome/contest.html.erb | 49 ++++++++++++++++++- 6 files changed, 101 insertions(+), 3 deletions(-) create mode 100644 app/views/layouts/contest_base.html.erb diff --git a/ReadMe.txt b/ReadMe.txt index 32ac107e3..8c57f348c 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -68,5 +68,7 @@ bundle exec rake db:migrate:up VERSION=20140410021724 4 点击“查询”(就是确定的功能) =============================================================================== 0719:若遇到首页定制报错问题请尝试如下操作 +如果运行迁移文件有报错与‘sort_type’相关 先运行 bundle exec rake db:migrate:down version=20140716021202 bundle exec rake db:migrate:up version=20140716021202 +在按如下步骤执行,未报与之相关的则直接按如下步骤执行 1.运行 bundle exec rake db:migrate:down version=20140719080032 2.运行 bundle exec rake db:migrate:up version=20140719080032 \ No newline at end of file diff --git a/app/controllers/contests_controller.rb b/app/controllers/contests_controller.rb index 456aa7b4a..c3ddfafdc 100644 --- a/app/controllers/contests_controller.rb +++ b/app/controllers/contests_controller.rb @@ -1,6 +1,7 @@ # fq # class BidsController < ApplicationController class ContestsController < ApplicationController + layout "contest_base" menu_item :respond menu_item :project, :only => :show_project menu_item :application, :only => :show_softapplication diff --git a/app/controllers/softapplications_controller.rb b/app/controllers/softapplications_controller.rb index b60e9ba5c..596b60da2 100644 --- a/app/controllers/softapplications_controller.rb +++ b/app/controllers/softapplications_controller.rb @@ -1,4 +1,5 @@ class SoftapplicationsController < ApplicationController + layout "contest_base" before_filter :find_softapplication, only: [:edit, :update, :destroy] before_filter :editable, only: [:edit, :update] before_filter :destroyable, only: :destroy diff --git a/app/views/issues/_list.html.erb b/app/views/issues/_list.html.erb index c9fecc6a9..4c2a63844 100644 --- a/app/views/issues/_list.html.erb +++ b/app/views/issues/_list.html.erb @@ -39,7 +39,7 @@
    - <%= textilizable issue, :description, :attachments => issue.attachments %> + <%= textilizable issue, :description %>
    diff --git a/app/views/layouts/contest_base.html.erb b/app/views/layouts/contest_base.html.erb new file mode 100644 index 000000000..ba187be3e --- /dev/null +++ b/app/views/layouts/contest_base.html.erb @@ -0,0 +1,49 @@ +<% + @nav_dispaly_contest_label = 1 + @nav_dispaly_store_all_label = 1 +%> + + + + + <%=h html_title %> + + + <%= csrf_meta_tag %> + <%= favicon %> + <%= stylesheet_link_tag 'jquery/jquery-ui-1.9.2', 'application', 'nyan', :media => 'all' %> + <%= stylesheet_link_tag 'rtl', :media => 'all' if l(:direction) == 'rtl' %> + <%= javascript_heads %> + <%= javascript_include_tag "jquery.leanModal.min" %> + <%= javascript_include_tag 'seems_rateable/jRating', 'seems_rateable/rateable'%> + <%= heads_for_theme %> + <%= call_hook :view_layouts_base_html_head %> + + <%= yield :header_tags -%> + + +
    +
    +
    + <%=render :partial => 'layouts/base_header'%> +
    +
    + <%= render_flash_messages %> + <%= yield %> + <%= call_hook :view_layouts_base_content %> +
    + <%=render :partial => 'layouts/base_footer'%> +
    + +
    +
    + + + + + +
    +
    +<%= call_hook :view_layouts_base_body_bottom %> + + diff --git a/app/views/welcome/contest.html.erb b/app/views/welcome/contest.html.erb index 4efbbe6d4..76cfcb626 100644 --- a/app/views/welcome/contest.html.erb +++ b/app/views/welcome/contest.html.erb @@ -3,6 +3,10 @@ @nav_dispaly_store_all_label = 1 %> <%= stylesheet_link_tag 'welcome' %> +
From 513fd32ec57dd7e3e9118df08c4f4fd24128a3dc Mon Sep 17 00:00:00 2001 From: z9hang Date: Tue, 22 Jul 2014 09:11:37 +0800 Subject: [PATCH 4/9] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=9F=A5=E7=9C=8B?= =?UTF-8?q?=E4=B8=AA=E4=BA=BA=E5=8A=A8=E6=80=81=E6=97=A0=E6=9D=83=E9=99=90?= =?UTF-8?q?bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/users_controller.rb | 2 +- db/schema.rb | 33 +++++++++-------------------- 2 files changed, 11 insertions(+), 24 deletions(-) diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 34745709b..9e7ee0229 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -33,7 +33,7 @@ class UsersController < ApplicationController before_filter :require_admin, :except => [:show, :index, :search, :tag_save, :tag_saveEx,:user_projects, :user_newfeedback, :user_comments, :watch_bids, :watch_contests, :info, :user_watchlist, :user_fanslist,:update, :user_courses, :user_homeworks, :watch_projects, :show_score, :topic_score_index, :project_score_index, :activity_score_index, :influence_score_index, :score_index,:show_new_score, :topic_new_score_index, :project_new_score_index, - :activity_new_score_index, :influence_new_score_index, :score_new_index,:update_score] + :activity_new_score_index, :influence_new_score_index, :score_new_index,:update_score,:user_activities] #edit has been deleted by huang, 2013-9-23 before_filter :find_user, :only => [:user_fanslist, :user_watchlist, :show, :edit, :update, :destroy, :edit_membership, :user_courses, :user_homeworks, :destroy_membership, :user_activities, :user_projects, :user_newfeedback, :user_comments, diff --git a/db/schema.rb b/db/schema.rb index fc169552e..05d24bf9b 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -809,18 +809,18 @@ ActiveRecord::Schema.define(:version => 20140721074353) do create_table "relative_memos", :force => true do |t| t.integer "osp_id" t.integer "parent_id" - t.string "subject", :null => false - t.text "content", :limit => 16777215, :null => false + t.string "subject", :null => false + t.text "content", :null => false t.integer "author_id" - t.integer "replies_count", :default => 0 + t.integer "replies_count", :default => 0 t.integer "last_reply_id" - t.boolean "lock", :default => false - t.boolean "sticky", :default => false - t.boolean "is_quote", :default => false - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.integer "viewed_count_crawl", :default => 0 - t.integer "viewed_count_local", :default => 0 + t.boolean "lock", :default => false + t.boolean "sticky", :default => false + t.boolean "is_quote", :default => false + t.datetime "created_at", :null => false + t.datetime "updated_at", :null => false + t.integer "viewed_count_crawl", :default => 0 + t.integer "viewed_count_local", :default => 0 t.string "url" t.string "username" t.string "userhomeurl" @@ -844,19 +844,6 @@ ActiveRecord::Schema.define(:version => 20140721074353) do add_index "repositories", ["project_id"], :name => "index_repositories_on_project_id" - create_table "rich_rich_files", :force => true do |t| - t.datetime "created_at", :null => false - t.datetime "updated_at", :null => false - t.string "rich_file_file_name" - t.string "rich_file_content_type" - t.integer "rich_file_file_size" - t.datetime "rich_file_updated_at" - t.string "owner_type" - t.integer "owner_id" - t.text "uri_cache" - t.string "simplified_type", :default => "file" - end - create_table "roles", :force => true do |t| t.string "name", :limit => 30, :default => "", :null => false t.integer "position", :default => 1 From 518edeac68696b473de09efecea558d9900a388d Mon Sep 17 00:00:00 2001 From: nwb Date: Tue, 22 Jul 2014 09:15:19 +0800 Subject: [PATCH 5/9] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E6=B5=8F=E8=A7=88BUG=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/boards_controller.rb | 2 +- app/controllers/documents_controller.rb | 2 +- app/models/project.rb | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/controllers/boards_controller.rb b/app/controllers/boards_controller.rb index a692acc12..40674b53f 100644 --- a/app/controllers/boards_controller.rb +++ b/app/controllers/boards_controller.rb @@ -70,7 +70,7 @@ class BoardsController < ApplicationController @message = Message.new(:board => @board) #modify by nwb if @project - render :action => 'show', :layout => !request.xhr? + render :action => 'show', :layout => 'base_projects' elsif @course render :action => 'show', :layout => 'base_courses' end diff --git a/app/controllers/documents_controller.rb b/app/controllers/documents_controller.rb index 89bd9dc92..7bca47f36 100644 --- a/app/controllers/documents_controller.rb +++ b/app/controllers/documents_controller.rb @@ -105,7 +105,7 @@ class DocumentsController < ApplicationController # 权限判断 # add by nwb def authorize_document - if !(User.current.admin? || User.current.member_of?(@project) || @document.is_public==1) + if !(User.current.admin? || User.current.member_of?(@project) || @document == nil || (@document != nil && @document.is_public==1)) render_403 :message => :notice_not_authorized end end diff --git a/app/models/project.rb b/app/models/project.rb index 5bcd2e8c5..35a360ac3 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -1138,13 +1138,13 @@ class Project < ActiveRecord::Base # 创建项目后在项目下同步创建一个讨论区 def create_board_sync @board = self.boards.build - self.name=" #{l(:label_borad_course) }" + self.name=" #{l(:label_borad_project) }" @board.name = self.name @board.description = self.name.to_s if @board.save - logger.debug "[Course Model] ===> #{@board.to_json}" + logger.debug "[Project Model] ===> #{@board.to_json}" else - logger.error "[Course Model] ===> Auto create board when Course saved, because #{@board.full_messages}" + logger.error "[Project Model] ===> Auto create board when Project saved, because #{@board.full_messages}" end end From edee2b23273487fa37f774fb7c654228b9486d8a Mon Sep 17 00:00:00 2001 From: yanxd Date: Mon, 21 Jul 2014 17:21:09 +0800 Subject: [PATCH 6/9] =?UTF-8?q?=E5=88=A0=E6=8E=89welcome=E6=B2=A1=E7=94=A8?= =?UTF-8?q?=E7=9A=84=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/welcome_controller.rb | 24 +----------------------- 1 file changed, 1 insertion(+), 23 deletions(-) diff --git a/app/controllers/welcome_controller.rb b/app/controllers/welcome_controller.rb index 9330d1d44..516b88310 100644 --- a/app/controllers/welcome_controller.rb +++ b/app/controllers/welcome_controller.rb @@ -148,7 +148,7 @@ class WelcomeController < ApplicationController end private - + # 判断网站的入口,是课程 course 则跳过index去渲染 course 方法 def entry_select url = request.original_url if url.include?("course.trustie.net") @@ -166,28 +166,6 @@ class WelcomeController < ApplicationController end - # 判断网站的入口,是课程 course 则跳过index去渲染 course 方法 - def entry_select_course - if request.original_url.match(/.*course\.trustie\.net/) - (course() and render :course and return 0) - end - end - - def entry_select_contest - if request.original_url.match(/.*contest\.trustie\.net/) - contest - render :contest - return 0 - end - end - - def entry_select_user - if request.original_url.match(/.*user\.trustie\.net$/) - redirect_to(:controller => "users", :action => "index") - return 0 - end - end - # def render(*args) # _fake if @fake_filter # super From 8496d6e0d2942fd1c3a6214960b0734e6e57c032 Mon Sep 17 00:00:00 2001 From: yanxd Date: Tue, 22 Jul 2014 09:16:07 +0800 Subject: [PATCH 7/9] =?UTF-8?q?=E5=88=A0=E9=99=A4project=E5=A4=9A=E4=BD=99?= =?UTF-8?q?=E5=AF=BC=E8=87=B4=E5=88=A0=E9=99=A4=E9=A1=B9=E7=9B=AE=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=E7=9A=84=E5=85=B3=E8=81=94=E5=85=B3=E7=B3=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/project.rb | 5 ++--- test/functional/courses_controller_test.rb | 4 ++++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/models/project.rb b/app/models/project.rb index 35a360ac3..d6283e44f 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -56,13 +56,12 @@ class Project < ActiveRecord::Base #added by xianbo for delete biding_project has_many :biding_projects, :dependent => :destroy has_many :contesting_projects, :dependent => :destroy - has_many :projecting_softapplications, :dependent => :destroy has_many :softapplications, :through => :projecting_softapplications #ended by xianbo # added by fq has_many :journals_for_messages, :as => :jour, :dependent => :destroy - has_many :homework_for_courses, :dependent => :destroy - has_many :homeworks, :through => :homework_for_courses, :source => :bid, :dependent => :destroy + #has_many :homework_for_courses, :dependent => :destroy + #has_many :homeworks, :through => :homework_for_courses, :source => :bid, :dependent => :destroy has_many :shares, :dependent => :destroy # has_many :students_for_courses, :dependent => :destroy has_many :student, :through => :students_for_courses, :source => :user diff --git a/test/functional/courses_controller_test.rb b/test/functional/courses_controller_test.rb index a1551a717..7185f6303 100644 --- a/test/functional/courses_controller_test.rb +++ b/test/functional/courses_controller_test.rb @@ -10,6 +10,7 @@ class CoursesControllerTest < ActionController::TestCase Setting.default_language = 'en' end + # Get :index def test_index_by_anonymous_should_not_show_private_projects get :index assert_response :success @@ -19,6 +20,7 @@ class CoursesControllerTest < ActionController::TestCase assert courses.all?(&:is_public?) end + # Get :new # 人员添加课程的权限是不属于任何角色 def test_new_course_anyone_temporary @request.session[:user_id] = 5 @@ -29,6 +31,7 @@ class CoursesControllerTest < ActionController::TestCase assert_template :new end + # post :create def test_create_course_with_access_control @request.session[:user_id] = 5 Role.find_by_name("Non member").add_permission! :add_course #Non member @@ -54,6 +57,7 @@ class CoursesControllerTest < ActionController::TestCase # assert_redirected_to "courses/#{course.id}/settings" end + # post :create 403 def test_create_course_without_access_control @request.session[:user_id] = 5 #Role.find_by_name("Non member").add_permission! :add_course #Non member From cf11cac0ad11a30b1bf8f2869891823075bef28a Mon Sep 17 00:00:00 2001 From: nwb Date: Tue, 22 Jul 2014 09:32:46 +0800 Subject: [PATCH 8/9] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E6=9D=83=E9=99=90=E5=88=A4=E6=96=AD=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/documents_controller.rb | 8 +++++++- app/models/document.rb | 4 ++++ app/views/documents/index.html.erb | 6 +++--- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/app/controllers/documents_controller.rb b/app/controllers/documents_controller.rb index 7bca47f36..b0ad6b109 100644 --- a/app/controllers/documents_controller.rb +++ b/app/controllers/documents_controller.rb @@ -29,7 +29,13 @@ class DocumentsController < ApplicationController def index @sort_by = %w(category date title author).include?(params[:sort_by]) ? params[:sort_by] : 'category' - documents = @project.documents.includes(:attachments, :category).all + temp = @project.documents.includes(:attachments, :category).all + documents = [] + temp.each do |doc| + if doc.has_right?(@project) + documents << doc + end + end case @sort_by when 'date' @grouped = documents.group_by {|d| d.updated_on.to_date } diff --git a/app/models/document.rb b/app/models/document.rb index 5cfce896b..1467903b0 100644 --- a/app/models/document.rb +++ b/app/models/document.rb @@ -46,6 +46,10 @@ class Document < ActiveRecord::Base !user.nil? && user.allowed_to?(:view_documents, project) end + def has_right?(project,user=User.current) + user.admin? || user.member_of?(project) || self.is_public==1 + end + def initialize(attributes=nil, *args) super if new_record? diff --git a/app/views/documents/index.html.erb b/app/views/documents/index.html.erb index 41b2d13fd..43b0cff49 100644 --- a/app/views/documents/index.html.erb +++ b/app/views/documents/index.html.erb @@ -27,8 +27,8 @@ <% if @grouped.empty? %>

<%= l(:label_no_data) %>

<% end %> <% @grouped.keys.sort.each do |group| %> - - <%= render :partial => 'documents/document', :collection => @grouped[group] %> -<% end %> + + <%= render :partial => 'documents/document', :collection => @grouped[group] %> +<% end %> <% html_title(l(:label_document_plural)) -%> From ab55043880ac1e19ecabbfd7c7acc49391e4c82a Mon Sep 17 00:00:00 2001 From: sw <939547590@qq.com> Date: Tue, 22 Jul 2014 09:42:41 +0800 Subject: [PATCH 9/9] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=BD=93=E4=BD=9C?= =?UTF-8?q?=E4=B8=9A=E9=99=84=E4=BB=B6=E5=88=97=E8=A1=A8=E4=B8=BA=E7=A9=BA?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E7=82=B9=E5=87=BB=E6=89=93=E5=8C=85=E4=B8=8B?= =?UTF-8?q?=E8=BD=BD=E4=BC=9A=E6=8A=A5500=E9=94=99=E7=9A=84BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/zipdown_controller.rb | 34 +++++++++++++++++--------- app/views/bids/_homework_list.html.erb | 5 +--- config/locales/zh.yml | 1 + 3 files changed, 24 insertions(+), 16 deletions(-) diff --git a/app/controllers/zipdown_controller.rb b/app/controllers/zipdown_controller.rb index 33a569f5d..777c0d8b7 100644 --- a/app/controllers/zipdown_controller.rb +++ b/app/controllers/zipdown_controller.rb @@ -37,9 +37,17 @@ class ZipdownController < ApplicationController #下载某一学生的作业的所有文件 def download_user_homework homework = HomeworkAttach.find params[:homework] - if homework != nil && (User.current.admin? || User.current.member_of_course?(homework.bid.courses.first)) - zipfile = zip_homework_by_user homework - send_file zipfile, :filename => homework.name+".zip", :type => detect_content_type(zipfile) if zipfile + if User.current.admin? || User.current.member_of_course?(homework.bid.courses.first) + if homework != nil + if homework.attachments.count > 0 + zipfile = zip_homework_by_user homework + send_file zipfile, :filename => homework.name+".zip", :type => detect_content_type(zipfile) if zipfile + else + render_403 :message => :no_file_dowmload + end + else + render_403 :message =>:notice_file_not_found + end else render_403 :message => :notice_not_authorized end @@ -81,15 +89,17 @@ class ZipdownController < ApplicationController end def zip_homework_by_user(homeattach) - homeworks_attach_path = [] - # 需要将所有homework.attachments遍历加入zip - # 并且返回zip路径 - user_attaches_paths = homeattach.attachments.each do |attach| - #length = attach.storage_path.length - homeworks_attach_path << attach.diskfile#.to_s.slice((length+1)..-1) - end - zipping "#{homeattach.user.name.to_s}_#{Time.now.to_i}.zip", homeworks_attach_path, OUTPUT_FOLDER, true - #user_attaches_paths + #if homeattach.attachments.count > 0 + homeworks_attach_path = [] + # 需要将所有homework.attachments遍历加入zip + # 并且返回zip路径 + user_attaches_paths = homeattach.attachments.each do |attach| + #length = attach.storage_path.length + homeworks_attach_path << attach.diskfile#.to_s.slice((length+1)..-1) + end + zipping("#{homeattach.user.name.to_s}_#{Time.now.to_i}.zip", homeworks_attach_path, OUTPUT_FOLDER, true) + #user_attaches_paths + #end end diff --git a/app/views/bids/_homework_list.html.erb b/app/views/bids/_homework_list.html.erb index 8b241030a..81c960781 100644 --- a/app/views/bids/_homework_list.html.erb +++ b/app/views/bids/_homework_list.html.erb @@ -8,10 +8,7 @@
<%= l(:label_task_plural)%>(<%= @homework_list.count%>) - <%#= link_to "作业打包下载", zipdown_assort_path(obj_class: @bid.class, obj_id: @bid), remote: false, class: "button_submit button_submit_font_white", style: "margin: 5px 10px;line-height: 20px;height: 20px;display: inline-block;" if( - User.current.admin? || - !(User.current.roles_for_project(@bid.courses.first).map(&:id) & ([7,9])).empty? ) || - (Rails.env.development?) %> + <%#= link_to "作业打包下载", zipdown_assort_path(obj_class: @bid.class, obj_id: @bid), remote: false, class: "button_submit button_submit_font_white", style: "margin: 5px 10px;line-height: 20px;height: 20px;display: inline-block;" if(is_teacher) %>