diff --git a/app/controllers/account_controller.rb b/app/controllers/account_controller.rb
index 75be302cd..dc1cceb87 100644
--- a/app/controllers/account_controller.rb
+++ b/app/controllers/account_controller.rb
@@ -336,7 +336,7 @@ class AccountController < ApplicationController
:expires => 1.month.from_now,
:path => (Redmine::Configuration['autologin_cookie_path'] || '/'),
:secure => (Redmine::Configuration['autologin_cookie_secure'] ? true : false),
- :domain => '.trustie.net',
+ :domain => Redmine::Configuration['cookie_domain'],
:httponly => true
}
cookies[autologin_cookie_name] = cookie_options
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index 0dc86fb01..02b2f0d1d 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -199,7 +199,7 @@ class ApplicationController < ActionController::Base
# Logs out current user
def logout_user
if User.current.logged?
- cookies.delete(autologin_cookie_name)
+ cookies.delete(autologin_cookie_name, domain: Redmine::Configuration['cookie_domain'])
# Token.delete_all(["user_id = ? AND action = ?", User.current.id, 'autologin'])
self.logged_user = nil
end
diff --git a/app/controllers/bids_controller.rb b/app/controllers/bids_controller.rb
index c98df27d3..35236414f 100644
--- a/app/controllers/bids_controller.rb
+++ b/app/controllers/bids_controller.rb
@@ -675,11 +675,12 @@ class BidsController < ApplicationController
#删除作业
#by xianbo
def homework_destroy
- @bid_to_destroy = Bid.find params[:course_id]
+ @bid_to_destroy = Bid.find params[:id]
+ course_url = course_homework_path(@bid_to_destroy.courses.first)
(render_403; return false) unless User.current.admin?||User.current.id==@bid_to_destroy.author_id
@bid_to_destroy.destroy
respond_to do |format|
- format.html { redirect_to :back }
+ format.html { redirect_to course_url }
format.js
#format.api { render_api_ok }
end
diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb
index cadff5f15..539d84e65 100644
--- a/app/controllers/issues_controller.rb
+++ b/app/controllers/issues_controller.rb
@@ -130,7 +130,7 @@ class IssuesController < ApplicationController
@project_base_tag = (params[:project_id] || @issue.project) ? 'base_projects':'base'#by young
@available_watchers = (@issue.project.users.sort + @issue.watcher_users).uniq
- respond_to do |format|
+ respond_to do |format|``
format.html {
retrieve_previous_and_next_issue_ids
render :template => 'issues/show', :layout => @project_base_tag#by young
diff --git a/app/views/courses/homework.html.erb b/app/views/courses/homework.html.erb
index f7cf2a360..7b74351cd 100644
--- a/app/views/courses/homework.html.erb
+++ b/app/views/courses/homework.html.erb
@@ -21,6 +21,9 @@
<%= l(:lebel_homework_commit)%> ( <%= link_to bid.homeworks.count, course_for_bid_path(bid.id), :class => 'c_red'%> )
<% if @is_teacher%>
<%= bid_anonymous_comment(bid)%>
+ <% if bid.homeworks.empty? %>
+ <%= link_to(l(:button_delete),bids_homework_path(:id => bid.id), :method => :delete, :confirm => l(:label_delete_confirm), :class => "fr mr10 work_edit") %>
+ <% end %>
<%= link_to(l(:button_edit),edit_bid_path(:course_id =>@course.id, :bid_id => bid.id), :class => "fr mr10 work_edit") %>
<% elsif @is_student%>
<%= student_anonymous_comment bid %>
@@ -59,4 +62,4 @@
<%= pagination_links_full @obj_pages, @obj_count, :per_page_links => false, :remote => false, :flag => true%>
-
\ No newline at end of file
+
diff --git a/app/views/issues/_form.html.erb b/app/views/issues/_form.html.erb
index fb087a47c..27ac07d64 100644
--- a/app/views/issues/_form.html.erb
+++ b/app/views/issues/_form.html.erb
@@ -51,8 +51,8 @@
<% if @issue.safe_attribute? 'description' %>
<%= f.label_for_field :description, :required => @issue.required_attribute?('description'), :no_label => true, :class => "label" %>
- <%= link_to_function image_tag('edit.png'), '$(this).hide(); $("#issue_description_and_toolbar").show()' unless @issue.new_record? %>
- <%= content_tag 'span', :id => "issue_description_and_toolbar" do %>
+ <%#= link_to_function image_tag('edit.png'), '$(this).hide(); $("#issue_description_and_toolbar").show()' unless @issue.new_record? %>
+ <%#= content_tag 'span', :id => "issue_description_and_toolbar" do %>
<%= f.kindeditor :description,:editor_id => "issue_desc_editor",
# :rows => (@issue.description.blank? ? 10 : [[10, @issue.description.length / 50].max, 100].min),
# :accesskey => accesskey(:edit),
@@ -60,7 +60,7 @@
:width=>'87%',
:resizeType => 0,
:no_label => true %>
- <% end %>
+ <%# end %>
<%#= wikitoolbar_for 'issue_description' %>
<% end %>
diff --git a/app/views/issues/show.html.erb b/app/views/issues/show.html.erb
index 88bbb4a71..26d79d4e8 100644
--- a/app/views/issues/show.html.erb
+++ b/app/views/issues/show.html.erb
@@ -124,18 +124,12 @@
<%= render :partial => 'changesets', :locals => {:changesets => @changesets} %>
<% end %>
-
-
-
-
<% other_formats_links do |f| %>
<%= f.link_to 'Atom', :url => {:key => User.current.rss_key} %>
<%= f.link_to 'PDF' %>
<% end %>
-
<% content_for :sidebar do %>
<%= render :partial => 'issues/sidebar' %>
diff --git a/app/views/layouts/base_projects.html.erb b/app/views/layouts/base_projects.html.erb
index 43861d99a..87ceeaf9a 100644
--- a/app/views/layouts/base_projects.html.erb
+++ b/app/views/layouts/base_projects.html.erb
@@ -18,54 +18,7 @@
<%= yield :header_tags -%>
-
-
@@ -83,13 +36,7 @@
<%= l(:label_user_location) %> :
- <%= link_to l(:field_homepage), home_path %>
- >
-
- <%=l(:label_project_hosting_platform) %>
-
- >
- <%= link_to @project.name, project_path(@project.id) %>
+ <%= link_to l(:field_homepage), home_path %> > <%=l(:label_project_hosting_platform) %> ><%= link_to @project.name, project_path(@project.id) %>
@@ -144,10 +91,11 @@
<%= l(:label_member) %>(<%= link_to "#{@project.members.count}", project_member_path(@project), :class => 'info_foot_num c_blue' %>)
|
<%= l(:label_user_watcher) %>(<%= link_to "#{@project.watcher_users.count}", {:controller=>"projects", :action=>"watcherlist", :id => @project.id}, :class => 'info_foot_num c_blue' %>)
+ <% attaments_num = @project.attachments.count+Attachment.where(["`container_type` = 'Version' and `container_id` in (?)",@project.versions.map{ |v| v.id}]).all.count %>
<% unless @project.enabled_modules.where("name = 'files'").empty? %>
|
<%= l(:project_module_attachments) %>(
- <% attaments_num = @project.attachments.count+Attachment.where(["`container_type` = 'Version' and `container_id` in (?)",@project.versions.map{ |v| v.id}]).all.count %>
+ <% attaments_num %>
<%= link_to "#{attaments_num}", project_files_path(@project), :class => 'info_foot_num c_blue' %>)
<% end %>
@@ -166,14 +114,14 @@
<% end %>
-
+ <%#--project_new_type: 1为开发组;2为科研组;3为朋友圈子--%>
<% if @project.project_new_type == 1 || @project.project_new_type.nil? %>
- <%= render :partial => 'projects/development_group', :locals => {:project => @project}%>
+ <%= render :partial => 'projects/development_group', :locals => {:project => @project, :attaments_num => attaments_num} %>
<% elsif @project.project_new_type == 2 %>
- <%= render :partial => 'projects/research_team', :locals => {:project => @project}%>
+ <%= render :partial => 'projects/research_team', :locals => {:project => @project, :attaments_num => attaments_num} %>
<% else %>
- <%= render :partial => 'projects/friend_group', :locals => {:project => @project}%>
+ <%= render :partial => 'projects/friend_group', :locals => {:project => @project, :attaments_num => attaments_num} %>
<% end %>
@@ -232,8 +180,55 @@
id="friend_organization"/>
确定
-
+
+
123
<%= render :partial => 'layouts/new_feedback' %>
diff --git a/app/views/projects/_development_group.html.erb b/app/views/projects/_development_group.html.erb
index 726e9646f..d4bc7012a 100644
--- a/app/views/projects/_development_group.html.erb
+++ b/app/views/projects/_development_group.html.erb
@@ -1,4 +1,3 @@
-<% attaments_num = @project.attachments.count+Attachment.where(["`container_type` = 'Version' and `container_id` in (?)",@project.versions.map{ |v| v.id}]).all.count %>
<%= link_to l(:label_activity), {:controller => 'projects', :action => 'show', :id => @project.id}, :class => "f14 c_blue02" %>
<% unless ForgeActivity.where("project_id = ?", @project.id).count == 0 %>
diff --git a/app/views/projects/_friend_group.html.erb b/app/views/projects/_friend_group.html.erb
index dca5473f7..03df67b0e 100644
--- a/app/views/projects/_friend_group.html.erb
+++ b/app/views/projects/_friend_group.html.erb
@@ -1,4 +1,3 @@
-<% attaments_num = @project.attachments.count+Attachment.where(["`container_type` = 'Version' and `container_id` in (?)",@project.versions.map{ |v| v.id}]).all.count %>
<%= link_to l(:label_activity), {:controller => 'projects', :action => 'show', :id => @project.id}, :class => "f14 c_blue02" %>
<% unless ForgeActivity.where("project_id = ?", @project.id).count == 0 %>
diff --git a/app/views/projects/_research_team.html.erb b/app/views/projects/_research_team.html.erb
index 8bd32a98e..6dc27a2fb 100644
--- a/app/views/projects/_research_team.html.erb
+++ b/app/views/projects/_research_team.html.erb
@@ -1,4 +1,3 @@
-<% attaments_num = @project.attachments.count+Attachment.where(["`container_type` = 'Version' and `container_id` in (?)",@project.versions.map{ |v| v.id}]).all.count %>
<%= link_to l(:label_activity), {:controller => 'projects', :action => 'show', :id => @project.id}, :class => "f14 c_blue02" %>
<% unless ForgeActivity.where("project_id = ?", @project.id).count == 0 %>
diff --git a/app/views/users/user_homeworks.html.erb b/app/views/users/user_homeworks.html.erb
index 06c67320a..74560909d 100644
--- a/app/views/users/user_homeworks.html.erb
+++ b/app/views/users/user_homeworks.html.erb
@@ -1,4 +1,4 @@
-
+u
<% if @user.user_extensions.identity == 0 %>
<%= render :partial => 'my_create_homework' %>
diff --git a/config/configuration.yml b/config/configuration.yml
index 87a54a976..45e307157 100644
--- a/config/configuration.yml
+++ b/config/configuration.yml
@@ -90,6 +90,7 @@ default:
user_name: "huang.jingquan@163.com"
password: 'xinhu1ji2qu366'
+ cookie_domain: ".trustie.net"
# Absolute path to the directory where attachments are stored.
# The default is the 'files' directory in your Redmine instance.
# Your Redmine instance needs to have write permission on this
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 09897c1eb..8419ae188 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -759,6 +759,7 @@ en:
button_create_and_continue: Create and continue
button_test: Test
button_edit: Edit
+ button_delete: Delete
button_edit_associated_wikipage: "Edit associated Wiki page: %{page_title}"
button_add: Add
button_change: Change
diff --git a/config/locales/zh.yml b/config/locales/zh.yml
index 4c752660a..73a97c035 100644
--- a/config/locales/zh.yml
+++ b/config/locales/zh.yml
@@ -849,6 +849,7 @@ zh:
button_create_and_continue: 创建并继续
button_test: 测试
button_edit: 编辑
+ button_delete: 删除
button_edit_associated_wikipage: "编辑相关wiki页面: %{page_title}"
button_add: 新增
button_change: 修改
diff --git a/config/routes.rb b/config/routes.rb
index 411386afc..9a8e71156 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -251,7 +251,7 @@ RedmineApp::Application.routes.draw do
post 'boards/:board_id/topics/:id/edit', :to => 'messages#edit'
post 'boards/:board_id/topics/:id/destroy', :to => 'messages#destroy'
# boards end
- post 'bids/homework_destroy', :to => 'bids#homework_destroy'
+ delete 'bids/homework', :to => 'bids#homework_destroy'
# Misc issue routes. TODO: move into resources
match '/issues/auto_complete', :to => 'auto_completes#issues', :via => :get, :as => 'auto_complete_issues'
diff --git a/spec/requests/homework_request_spec.rb b/spec/requests/homework_request_spec.rb
new file mode 100644
index 000000000..05733a56d
--- /dev/null
+++ b/spec/requests/homework_request_spec.rb
@@ -0,0 +1,52 @@
+require 'rails_helper'
+require 'shared_account_spec'
+
+RSpec.describe "homework", type: :request do
+ include_context "create user"
+ let(:course) {FactoryGirl.create(:course, teacher: current_user)}
+ let(:homework){FactoryGirl.attributes_for(:homework)}
+
+ before {
+ shared_register
+ }
+ describe "创建作业" do
+ before do
+ post calls_create_homework_path(course_id: course.id), {
+ bid: homework
+ }
+ @homework = assigns(:bid)
+ end
+ it "参数正确,可以成功创建作业" do
+ expect(response).to redirect_to(course_homework_url(course.id))
+ end
+ it {expect(course.homeworks).to_not be_empty}
+ it {expect(@homework.acts).to_not be_empty}
+ it {expect(@homework.watchers).to_not be_empty}
+ it {expect(@homework.attachments).to_not be_empty}
+ end
+
+ describe "删除作业" do
+ before do
+ shared_login
+ post calls_create_homework_path(course_id: course.id), {
+ bid: homework
+ }
+ @homework = assigns(:bid)
+ delete bids_homework_path(id: @homework.id)
+ end
+ it{expect(response).to redirect_to(course_homework_path(course.id))}
+ it "homework_for_courses应删除" do
+ expect(course.homeworks).to be_empty
+ end
+ it "相关活动也删除" do
+ expect(@homework.acts).to be_empty
+ end
+ it "watches 删除" do
+ expect(@homework.watchers).to be_empty
+ end
+ it "附件 删除" do
+ expect(@homework.attachments).to be_empty
+ end
+ end
+
+end