diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
index 9ff833f48..9090a814c 100644
--- a/app/controllers/users_controller.rb
+++ b/app/controllers/users_controller.rb
@@ -551,12 +551,21 @@ class UsersController < ApplicationController
)
end
end
+ end
+ #分组作业
+ if homework.homework_type == 3
+ homework_detail_group = HomeworkDetailGroup.new
+ homework.homework_detail_group = homework_detail_group
+ homework_detail_group.min_num = params[:min_num].to_i
+ homework_detail_group.max_num = params[:max_num].to_i
+ homework_detail_group.base_on_project = params[:base_on_project].to_i
end
if homework.save
homework_detail_manual.save if homework_detail_manual
homework_detail_programing.save if homework_detail_programing
+ homework_detail_group.save if homework_detail_group
if params[:is_in_course] == "1"
redirect_to homework_common_index_path(:course => homework.course_id)
diff --git a/app/models/homework_common.rb b/app/models/homework_common.rb
index 8d421a98f..461c7d35b 100644
--- a/app/models/homework_common.rb
+++ b/app/models/homework_common.rb
@@ -9,6 +9,7 @@ class HomeworkCommon < ActiveRecord::Base
belongs_to :user
has_one :homework_detail_manual, :dependent => :destroy
has_one :homework_detail_programing, :dependent => :destroy
+ has_one :homework_detail_group, :dependent => :destroy
has_many :homework_tests, :dependent => :destroy
has_many :student_works, :dependent => :destroy, :conditions => "is_test=0"
has_many :student_works_evaluation_distributions, :through => :student_works #一个作业的分配的匿评列表
@@ -74,6 +75,10 @@ class HomeworkCommon < ActiveRecord::Base
self.homework_type == 2 && self.homework_detail_programing
end
+ def is_group_homework?
+ self.homework_type == 3 && self.homework_detail_group
+ end
+
###添加回复
def self.add_homework_jour(user, notes, id , options = {})
homework = HomeworkCommon.find(id)
diff --git a/app/models/homework_detail_group.rb b/app/models/homework_detail_group.rb
new file mode 100644
index 000000000..0a9cb5fe2
--- /dev/null
+++ b/app/models/homework_detail_group.rb
@@ -0,0 +1,4 @@
+class HomeworkDetailGroup < ActiveRecord::Base
+ belongs_to :homework_common
+ attr_accessible :base_on_project, :homework_common_id, :max_num, :min_num
+end
diff --git a/app/views/homework_common/index.html.erb b/app/views/homework_common/index.html.erb
index 3b3877228..010bc8ec9 100644
--- a/app/views/homework_common/index.html.erb
+++ b/app/views/homework_common/index.html.erb
@@ -4,7 +4,7 @@
$("#homework_publish_time").val("");
$("#homework_end_time").val("");
$("#course_id").val($("#option_select").val());
- $("#homework_attachments").html("<%= escape_javascript(render :partial => 'users/user_homework_attachment', :locals => { :container => HomeworkCommon.new,:has_program => true })%>");
+ $("#homework_attachments").html("<%= escape_javascript(render :partial => 'users/user_homework_attachment', :locals => { :container => HomeworkCommon.new,:has_program => true,:has_group => true})%>");
homework_description_editor.html("");
$("#homework_editor").toggle();
}
diff --git a/app/views/student_work/_choose_group_member.html.erb b/app/views/student_work/_choose_group_member.html.erb
new file mode 100644
index 000000000..c14e8a06e
--- /dev/null
+++ b/app/views/student_work/_choose_group_member.html.erb
@@ -0,0 +1,41 @@
+
请添加小组成员
+
+
+
+
+
+
+
+-
+ 同学一(061530301)
+
+-
+ 同学二同学二(061530302)
+
+-
+ 同学三(061530303)
+
+-
+ 同学四同学四(061530304)
+
+-
+ 同学五同学五(061530305)
+
+-
+ 同学六同学六(061530306)
+
+-
+ 同学七同学七(061530307)
+
+
+
+
+- TimTang(040930319)×
+- suntao(060930106)×
+
+
+
+
+
\ No newline at end of file
diff --git a/app/views/student_work/_relate_project.html.erb b/app/views/student_work/_relate_project.html.erb
new file mode 100644
index 000000000..06649baba
--- /dev/null
+++ b/app/views/student_work/_relate_project.html.erb
@@ -0,0 +1,30 @@
+
\ No newline at end of file
diff --git a/app/views/student_work/edit.html.erb b/app/views/student_work/edit.html.erb
index d506b5542..bfdf8c316 100644
--- a/app/views/student_work/edit.html.erb
+++ b/app/views/student_work/edit.html.erb
@@ -48,7 +48,7 @@
- <%= render :partial => 'users/user_homework_attachment', :locals => {:container => @work, :has_program=>false} %>
+ <%= render :partial => 'users/user_homework_attachment', :locals => {:container => @work, :has_program=>false,:has_group=>false} %>
diff --git a/app/views/student_work/new.html.erb b/app/views/student_work/new.html.erb
index 45c26654e..995126cb5 100644
--- a/app/views/student_work/new.html.erb
+++ b/app/views/student_work/new.html.erb
@@ -95,20 +95,32 @@
- <%= render :partial => 'users/user_homework_attachment', :locals => {:container => @student_work, :has_program=>false} %>
+ <%= render :partial => 'users/user_homework_attachment', :locals => {:container => @student_work, :has_program=>false,:has_group=>false} %>
+ <% if @homework.homework_type == 3 %>
+
+
+ <% end %>
+
+
-
- <%= select_tag :project_id, options_for_select(user_projects_option, @student_work.project_id), {:class => "InputBox W680 fl"} %>
+
\ No newline at end of file
diff --git a/app/views/users/_user_homework_attachment.html.erb b/app/views/users/_user_homework_attachment.html.erb
index 28dc35026..f1c0ae97e 100644
--- a/app/views/users/_user_homework_attachment.html.erb
+++ b/app/views/users/_user_homework_attachment.html.erb
@@ -52,9 +52,11 @@
上传附件
<%= link_to "资源库",{:controller => 'users',:action=>'user_import_resource',:id=>User.current.id,:homework_id=>container.id},:class => "FilesBtn fl mt3 mr15",:title=>"请从资源库中选择文件作为作品的附件",:remote => true%>
<% if defined?(has_program) && has_program %>
- 编程
-
- 分组
+ 编程
+
+ <% end %>
+ <% if defined?(has_group) && has_group %>
+ 分组
<% end %>
diff --git a/app/views/users/_user_homework_form.html.erb b/app/views/users/_user_homework_form.html.erb
index 5c4cd1734..40c8ac5bd 100644
--- a/app/views/users/_user_homework_form.html.erb
+++ b/app/views/users/_user_homework_form.html.erb
@@ -4,6 +4,9 @@
<% end %>
@@ -54,7 +57,7 @@
- <%= render :partial => 'users/user_homework_attachment', :locals => {:container => homework, :has_program=>!(edit_mode && homework.homework_type == 1)} %>
+ <%= render :partial => 'users/user_homework_attachment', :locals => {:container => homework, :has_program=>!(edit_mode && homework.homework_type != 2), :has_group=>!(edit_mode && homework.homework_type != 3)} %>
diff --git a/app/views/users/user_homeworks.html.erb b/app/views/users/user_homeworks.html.erb
index 121450d4d..7be803720 100644
--- a/app/views/users/user_homeworks.html.erb
+++ b/app/views/users/user_homeworks.html.erb
@@ -4,7 +4,7 @@
$("#homework_publish_time").val("");
$("#homework_end_time").val("");
$("#course_id").val($("#option_select").val());
- $("#homework_attachments").html("<%= escape_javascript(render :partial => 'users/user_homework_attachment', :locals => { :container => HomeworkCommon.new,:has_program => true })%>");
+ $("#homework_attachments").html("<%= escape_javascript(render :partial => 'users/user_homework_attachment', :locals => { :container => HomeworkCommon.new,:has_program => true,:has_group => true })%>");
homework_description_editor.html("");
$("#homework_editor").toggle();
}
diff --git a/app/views/users/user_select_homework.js.erb b/app/views/users/user_select_homework.js.erb
index 1d9cc8d70..cd94a6816 100644
--- a/app/views/users/user_select_homework.js.erb
+++ b/app/views/users/user_select_homework.js.erb
@@ -5,7 +5,7 @@ $("#homework_end_time").val("<%= @homework.end_time%>");
<% if @select_course == "0"%>
$("#course_id").val("<%= @homework.course_id%>");
<% end%>
-$("#homework_attachments").html("<%= escape_javascript(render :partial => 'users/user_homework_attachment', :locals => { :container => @homework,:has_program => true })%>");
+$("#homework_attachments").html("<%= escape_javascript(render :partial => 'users/user_homework_attachment', :locals => { :container => @homework,:has_program => true,:has_group => true })%>");
homework_description_editor.html("<%= escape_javascript(@homework.description.html_safe)%>");
$("#BluePopupBox").html("<%=escape_javascript( render :partial => 'users/user_programing_attr', :locals => {:edit_mode => true, :homework => @homework})%>");
//$("input[name='homework_type']").val("<%#= @homework.homework_type%>");
diff --git a/db/migrate/20151202064455_create_homework_detail_groups.rb b/db/migrate/20151202064455_create_homework_detail_groups.rb
new file mode 100644
index 000000000..a77e50f01
--- /dev/null
+++ b/db/migrate/20151202064455_create_homework_detail_groups.rb
@@ -0,0 +1,14 @@
+class CreateHomeworkDetailGroups < ActiveRecord::Migration
+ def change
+ create_table :homework_detail_groups do |t|
+ t.integer :homework_common_id
+ t.integer :min_num
+ t.integer :max_num
+ t.integer :base_on_project
+ t.references :homework_common
+
+ t.timestamps
+ end
+ add_index :homework_detail_groups, :homework_common_id
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index c6ca6a0ce..442ceaab9 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 => 20151130033906) do
+ActiveRecord::Schema.define(:version => 20151202064455) do
create_table "activities", :force => true do |t|
t.integer "act_id", :null => false
@@ -543,23 +543,26 @@ ActiveRecord::Schema.define(:version => 20151130033906) 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 "enabled_modules", :force => true do |t|
@@ -735,6 +738,17 @@ ActiveRecord::Schema.define(:version => 20151130033906) do
add_index "homework_commons", ["course_id", "id"], :name => "index_homework_commons_on_course_id_and_id"
+ create_table "homework_detail_groups", :force => true do |t|
+ t.integer "homework_common_id"
+ t.integer "min_num"
+ t.integer "max_num"
+ t.integer "base_on_project"
+ t.datetime "created_at", :null => false
+ t.datetime "updated_at", :null => false
+ end
+
+ add_index "homework_detail_groups", ["homework_common_id"], :name => "index_homework_detail_groups_on_homework_common_id"
+
create_table "homework_detail_manuals", :force => true do |t|
t.float "ta_proportion"
t.integer "comment_status"
@@ -891,16 +905,6 @@ ActiveRecord::Schema.define(:version => 20151130033906) 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"
diff --git a/public/images/course/right-arrow.png b/public/images/course/right-arrow.png
new file mode 100644
index 000000000..b152e9ce9
Binary files /dev/null and b/public/images/course/right-arrow.png differ
diff --git a/public/javascripts/homework.js b/public/javascripts/homework.js
index 39351cc6b..373cce51c 100644
--- a/public/javascripts/homework.js
+++ b/public/javascripts/homework.js
@@ -19,7 +19,7 @@ $(function(){
return false;
}
return true;
- }
+ };
var test_program = function(cb){
var homework_id = $('#test-program-btn').attr('data-homework-id');
diff --git a/public/javascripts/new_user.js b/public/javascripts/new_user.js
index a0647b592..dcd8a35ca 100644
--- a/public/javascripts/new_user.js
+++ b/public/javascripts/new_user.js
@@ -304,6 +304,19 @@ function show_project()
$("#about_project").slideToggle();
}
+//添加分组成员
+function show_group_member(){
+ $("#chooseGroupMember").dialog("open");
+ $(".ui-dialog-titlebar").hide();
+ $("a.popClose").on('click', function(){
+ $("#chooseGroupMember" ).dialog("close");
+ });
+ $("#cancel_add").on('click', function(){
+ $("#chooseGroupMember" ).dialog("close");
+ });
+ //$('#min_num').focus();
+}
+
//textarea自适应高度 纯js写的 有浏览器判断
/**
* 文本框根据输入内容自适应高度
diff --git a/public/stylesheets/courses.css b/public/stylesheets/courses.css
index 93594794e..57838bdba 100644
--- a/public/stylesheets/courses.css
+++ b/public/stylesheets/courses.css
@@ -1186,3 +1186,9 @@ a:hover.groupBtn{background: url(/images/course/hwork_icon.png) -80px -61px no-r
.popClose {background:url(/images/resource_icon_list.png) 0px -40px no-repeat; width:20px; height:20px; display:inline-block; position: absolute; z-index: 1000; right:2px; top:3px;}
a.memberBtn{ background: url(/images/course/hwork_icon.png) -7px -90px no-repeat !important; height:20px; display:block; padding-left:20px; color:#888888; -moz-transition :all 0s linear 0s; -webkit-transition :all 0s linear 0s; -o-transition:all 0s linear 0s; transition:all 0s linear 0s;}
a:hover.memberBtn{background: url(/images/course/hwork_icon.png) -80px -90px no-repeat !important; color:#3598db; -moz-transition :all 0s linear 0s; -webkit-transition :all 0s linear 0s; -o-transition:all 0s linear 0s; transition:all 0s linear 0s;}
+.addMemberC {float:left; max-height:150px; margin-bottom:10px; overflow:auto; overflow-x:hidden; width:227px; background-color:#f1f1f1; min-height:150px; padding-top:10px;}
+.addMemberC li {padding-left:10px; line-height:18px;}
+.addMemberC li:hover {cursor:pointer; background-color:#cccccc;}
+.addMemberCP {width:514px; height:auto; border:3px solid #269ac9; padding-left:16px; padding-bottom:16px; background-color:#ffffff; position:absolute; z-index:1000;}
+.rightArrow {margin:50px 15px 0px 15px; float:left;}
+.relateText {font-size:16px; color:#269ac9; line-height:16px; padding-top:20px; display:inline-block; font-weight: bold;}
diff --git a/public/stylesheets/new_user.css b/public/stylesheets/new_user.css
index 90ac82f2b..ad07259d3 100644
--- a/public/stylesheets/new_user.css
+++ b/public/stylesheets/new_user.css
@@ -1359,4 +1359,9 @@ a:hover.groupBtn{background: url(/images/course/hwork_icon.png) -80px -61px no-r
.popClose {background:url(/images/resource_icon_list.png) 0px -40px no-repeat; width:20px; height:20px; display:inline-block; position: absolute; z-index: 1000; right:2px; top:3px;}
a.memberBtn{ background: url(/images/course/hwork_icon.png) -7px -90px no-repeat !important; height:20px; display:block; padding-left:20px; color:#888888; -moz-transition :all 0s linear 0s; -webkit-transition :all 0s linear 0s; -o-transition:all 0s linear 0s; transition:all 0s linear 0s;}
a:hover.memberBtn{background: url(/images/course/hwork_icon.png) -80px -90px no-repeat !important; color:#3598db; -moz-transition :all 0s linear 0s; -webkit-transition :all 0s linear 0s; -o-transition:all 0s linear 0s; transition:all 0s linear 0s;}
-
+.addMemberC {float:left; max-height:150px; margin-bottom:10px; overflow:auto; overflow-x:hidden; width:227px; background-color:#f1f1f1; min-height:150px; padding-top:10px;}
+.addMemberC li {padding-left:10px; line-height:18px;}
+.addMemberC li:hover {cursor:pointer; background-color:#cccccc;}
+.addMemberCP {width:514px; height:auto; border:3px solid #269ac9; padding-left:16px; padding-bottom:16px; background-color:#ffffff; position:absolute; z-index:1000;}
+.rightArrow {margin:50px 15px 0px 15px; float:left;}
+.relateText {font-size:16px; color:#269ac9; line-height:16px; padding-top:20px; display:inline-block; font-weight: bold;}
diff --git a/spec/factories/homework_detail_groups.rb b/spec/factories/homework_detail_groups.rb
new file mode 100644
index 000000000..86897c68e
--- /dev/null
+++ b/spec/factories/homework_detail_groups.rb
@@ -0,0 +1,11 @@
+# Read about factories at https://github.com/thoughtbot/factory_girl
+
+FactoryGirl.define do
+ factory :homework_detail_group do
+ homework_common_id 1
+ min_num 1
+ max_num 1
+ base_on_project 1
+ homework_common nil
+ end
+end
diff --git a/spec/models/homework_detail_group_spec.rb b/spec/models/homework_detail_group_spec.rb
new file mode 100644
index 000000000..2217ad28d
--- /dev/null
+++ b/spec/models/homework_detail_group_spec.rb
@@ -0,0 +1,5 @@
+require 'rails_helper'
+
+RSpec.describe HomeworkDetailGroup, :type => :model do
+ pending "add some examples to (or delete) #{__FILE__}"
+end