diff --git a/app/controllers/homework_common_controller.rb b/app/controllers/homework_common_controller.rb
index 6e6fa7d20..50f303700 100644
--- a/app/controllers/homework_common_controller.rb
+++ b/app/controllers/homework_common_controller.rb
@@ -18,6 +18,28 @@ class HomeworkCommonController < ApplicationController
end
def new
+ @homework_type = "1"
+
+ @homework = HomeworkCommon.new
+ @homework.safe_attributes = params[:homework_common]
+ @homework.late_penalty = 0
+ @homework.end_time = (Time.now + 3600 * 24).strftime('%Y-%m-%d')
+ @homework.publish_time = Time.now.strftime('%Y-%m-%d')
+
+ if @homework_type == "1"
+ #匿评作业相关属性
+ @homework_detail_manual = HomeworkDetailManual.new
+ @homework_detail_manual.ta_proportion = 0.6
+ @homework_detail_manual.absence_penalty = 0
+ @homework_detail_manual.evaluation_num = 3
+ @homework_detail_manual.evaluation_start = Time.now.strftime('%Y-%m-%d')
+ @homework_detail_manual.evaluation_end = (Time.now + 3600 * 24).strftime('%Y-%m-%d')
+ @homework.homework_detail_manual = @homework_detail_manual
+ elsif @homework_type == "2"
+ #编程作业相关属性
+ @homework_detail_programing = HomeworkDetailPrograming.new
+ @homework.homework_detail_programing = @homework_detail_programing
+ end
respond_to do |format|
format.html
end
@@ -73,7 +95,7 @@ class HomeworkCommonController < ApplicationController
homework_detail_programing = HomeworkDetailPrograming.new
homework_detail_programing.language = "C++"
homework_detail_programing.standard_code = params[:standard_code]
-
+ homework_detail_programing.ta_proportion = params[:ta_proportion] || 0.6
question = {title:homework.name,content:homework.description}
question[:input] = []
question[:output] = []
@@ -189,6 +211,7 @@ class HomeworkCommonController < ApplicationController
if @homework.homework_type == 2 && @homework_detail_programing #编程作业
@homework_detail_programing.language = "C++"
@homework_detail_programing.standard_code = params[:standard_code]
+ @homework_detail_programing.ta_proportion = params[:ta_proportion] || 0.6
homework_tests = @homework.homework_tests
#需要删除的测试
ids = homework_tests.map(&:id) - params[:input].keys.map(&:to_i)
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb
index 18240aa20..2efaf591a 100644
--- a/app/controllers/projects_controller.rb
+++ b/app/controllers/projects_controller.rb
@@ -361,8 +361,34 @@ class ProjectsController < ApplicationController
end
end
- # dts工具接口
- def dts_repos
+ # dts测试工具
+ def dts_dep
+ render_403 unless User.current.admin?
+ @dts = Dts.all
+ end
+
+ # dts云部署
+ def yun_dep
+ render_403 unless User.current.admin?
+ end
+
+ # 软件知识库
+ def soft_knowledge
+ render_403 unless User.current.admin?
+ end
+
+ # 在线开发平台
+ def online_dev
+ render_403 unless User.current.admin?
+ end
+
+ # 软件资源库
+ def soft_file
+ render_403 unless User.current.admin?
+ end
+
+ # 软件服务
+ def soft_service
render_403 unless User.current.admin?
end
diff --git a/app/controllers/words_controller.rb b/app/controllers/words_controller.rb
index 4ff01d36c..161791954 100644
--- a/app/controllers/words_controller.rb
+++ b/app/controllers/words_controller.rb
@@ -89,6 +89,7 @@ class WordsController < ApplicationController
elsif @journal_destroyed.jour_type == "Principal"
@user = User.find(@journal_destroyed.jour_id)
@jours_count = @user.journals_for_messages.where('m_parent_id IS NULL').count
+ @is_user = true
end
respond_to do |format|
format.js
diff --git a/app/helpers/activities_helper.rb b/app/helpers/activities_helper.rb
index 822613455..c8cb20ba9 100644
--- a/app/helpers/activities_helper.rb
+++ b/app/helpers/activities_helper.rb
@@ -57,7 +57,7 @@ module ActivitiesHelper
end
#留言
if activity.act_type == 'JournalsForMessage'
- return [activity.act.jour_type,activity.act.jour_id]
+ return [activity.act.jour_type,activity.act.jour_id,activity.act.user_id]
end
# HomeworkCommon Issue Journal Message News
diff --git a/app/helpers/api_helper.rb b/app/helpers/api_helper.rb
index fa231607a..1f34112ad 100644
--- a/app/helpers/api_helper.rb
+++ b/app/helpers/api_helper.rb
@@ -66,7 +66,7 @@ module ApiHelper
(user.language.nil? || user.language == "") ? 'zh':user.language
end
- # 获取课程作业的状态
+ # 学生获取课程作业的状态
def get_homework_status homework
homework_status = ""
if !homework.nil?
@@ -75,9 +75,9 @@ module ApiHelper
when 1
homework_status = show_homework_deadline homework
when 2
- homework_status = "正在匿评中"
+ homework_status = "正在匿评"
when 3
- homework_status = "匿评已结束"
+ homework_status = "匿评结束"
end
elsif homework.homework_type == 0
homework_status = "未启用匿评"
diff --git a/app/models/activity.rb b/app/models/activity.rb
index 679cb9599..63081be6f 100644
--- a/app/models/activity.rb
+++ b/app/models/activity.rb
@@ -14,8 +14,11 @@ class Activity < ActiveRecord::Base
#helper :activities
include ActivitiesHelper
def set_container_type_val
- container_type,container_id =get_container_type(self)
- self.activity_container_type = container_type
- self.activity_container_id = container_id
+ params =get_container_type(self)
+ self.activity_container_type = params[0]
+ self.activity_container_id = params[1]
+ if(self.act_type == 'JournalsForMessage')
+ self.user_id = params[2]
+ end
end
end
diff --git a/app/models/dts.rb b/app/models/dts.rb
new file mode 100644
index 000000000..3a9dcbcfb
--- /dev/null
+++ b/app/models/dts.rb
@@ -0,0 +1,5 @@
+class Dts < ActiveRecord::Base
+ attr_accessible :Category, :Defect, :Description, :File, :IPLine, :IPLineCode, :Method, :Num, :PreConditions, :Review, :StartLine, :TraceInfo, :Variable, :project_id
+
+ belongs_to :project
+end
diff --git a/app/models/project.rb b/app/models/project.rb
index f201e6e3c..8ab377ccc 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -68,6 +68,7 @@ class Project < ActiveRecord::Base
has_one :course_extra, :class_name => 'Course', :foreign_key => :extra,:primary_key => :identifier, :dependent => :destroy
has_many :applied_projects
has_many :invite_lists
+ has_one :dts
# end
#ADDED BY NIE
diff --git a/app/models/student_work_test.rb b/app/models/student_work_test.rb
index d9ac5e935..2e6efdf0a 100644
--- a/app/models/student_work_test.rb
+++ b/app/models/student_work_test.rb
@@ -1,12 +1,12 @@
# encoding: utf-8
class StudentWorkTest < ActiveRecord::Base
- attr_accessible :student_work_id, :homework_test_id
+ attr_accessible :student_work_id, :homework_test_id, :result
belongs_to :homework_test
belongs_to :student_work
def status_to_s
- case self.result
+ case self.result.to_i
when -1
'编译出错'
when -2
@@ -33,7 +33,7 @@ class StudentWorkTest < ActiveRecord::Base
end
def test_score
- if self.result == 0
+ if self.result.to_i == 0
format("%.1f",100.0 / self.student_work.homework_common.homework_tests.count)
else
0
diff --git a/app/services/courses_service.rb b/app/services/courses_service.rb
index e4e84a7c4..185f448ce 100644
--- a/app/services/courses_service.rb
+++ b/app/services/courses_service.rb
@@ -711,19 +711,19 @@ class CoursesService
" limit 0,4"
active_students = User.find_by_sql(sql1)
if homework_count != 0 && !better_students.empty?
- latest_course_dynamics <<{:type=> 6,:time=>Time.now.to_s,:count=> 4,:better_students=> better_students}
+ latest_course_dynamics <<{:type=> 6,:time=>"1970-01-01 0:0:0 +0800",:count=> 4,:better_students=> better_students}
end
unless active_students.empty?
- latest_course_dynamics <<{:type=> 7,:time=>Time.now.to_s,:count=> 4,:active_students=>active_students}
+ latest_course_dynamics <<{:type=> 7,:time=>"1970-01-01 0:0:0 +0800",:count=> 4,:active_students=>active_students}
end
latest_course_dynamic = latest_course_dynamics.first
unless latest_course_dynamic.nil?
result << {:course_name => course.name,:current_user_is_member => current_user.member_of_course?(course),:current_user_is_teacher => is_course_teacher(current_user,course), :course_id => course.id, :course_img_url => url_to_avatar(course), :course_time => course.time, :course_term => course.term,:message => "", :dynamics => latest_course_dynamics,
- :course_student_num=>course ? course.members.count : 0,:time_from_now=> distance_of_time_in_words(Time.now, latest_course_dynamic[:time].to_time) << "前"}
+ :course_student_num=>course ? course.members.count : 0,:time_from_now=> distance_of_time_in_words(Time.now, latest_course_dynamic[:time].to_time) << "前",:time=>latest_course_dynamic[:time].to_time}
end
end
#返回数组集合
- result.sort! { |order, newer| newer[:update_time] <=> order[:update_time] }
+ result.sort! { |order, newer| newer[:time] <=> order[:time] }
result
end
@@ -759,7 +759,7 @@ class CoursesService
# 获取某次作业的所有作业列表
def student_work_list params,current_user
- is_teacher = User.current.allowed_to?(:as_teacher,Course.find(params[:course_id]))
+ is_teacher = current_user.allowed_to?(:as_teacher,Course.find(params[:course_id]))
homework = HomeworkCommon.find(params[:homework_id])
student_works = []
#老师 || 非匿评作业 || 匿评结束 显示所有的作品
diff --git a/app/views/homework_attach/new.html.erb b/app/views/homework_attach/new.html.erb
index cf182716e..b32eb8c8d 100644
--- a/app/views/homework_attach/new.html.erb
+++ b/app/views/homework_attach/new.html.erb
@@ -1,42 +1,4 @@
<%= stylesheet_link_tag 'css', :media => 'all' %>
-
@@ -69,7 +31,7 @@
作品名称 :
- <%= f.text_field "name", :required => true, :size => 60, :class => "w430 bo", :maxlength => 254, :placeholder => "作品名称", :onkeyup => "regexName();" %>
+ <%= f.text_field "name", :required => true, :size => 60, :class => "w430 bo", :maxlength => 254, :placeholder => "作品名称", :onkeyup => "regexHomeworkCommonName();" %>
@@ -79,7 +41,7 @@
作品描述 :
- <%= f.text_area "description", :class => "w620", :maxlength => 3000, :style => "width:430px", :placeholder => "最多3000个汉字", :onkeyup => "regexDescription();"%>
+ <%= f.text_area "description", :class => "w620", :maxlength => 3000, :style => "width:430px", :placeholder => "最多3000个汉字", :onkeyup => "regexHomeworkCommonDescription();"%>
diff --git a/app/views/homework_common/_homework_detail_programing_form.html.erb b/app/views/homework_common/_homework_detail_programing_form.html.erb
index 806768954..e27fb5b9e 100644
--- a/app/views/homework_common/_homework_detail_programing_form.html.erb
+++ b/app/views/homework_common/_homework_detail_programing_form.html.erb
@@ -57,7 +57,7 @@
开发语言:
- C++
+ C
@@ -89,11 +89,11 @@
测试输入:
-
+
输出:
-
+
@@ -107,11 +107,11 @@
测试输入:
-
+
输出:
-
+
diff --git a/app/views/homework_common/new.html.erb b/app/views/homework_common/new.html.erb
index 01fcb9f4d..6fc0fff0e 100644
--- a/app/views/homework_common/new.html.erb
+++ b/app/views/homework_common/new.html.erb
@@ -1,27 +1,17 @@
+<%= javascript_include_tag "/assets/kindeditor/kindeditor" %>
+<%= error_messages_for 'homework_common' %>
<%= l(:label_course_homework_new)%>
-
- <%= form_for("new_homework_common",:url => next_step_homework_common_index_path) do |f|%>
-
-
- 请选择将要发布的作业类型
-
-
-
- 人工评分的作业(支持匿名互评、灵活设置评分比例)
-
-
-
-
- 自动评测的编程作业(支持C++程序的自动评分)
-
-
-
- 下一步
-
+
+ <%= labelled_form_for @homework,:url => {:controller => 'homework_common',:action => 'create'} do |f| %>
+ <%= hidden_field_tag "course",@course.id%>
+ <%= render :partial => 'homework_common/homework_detail_manual_form', :locals => { :homework => @homework,:f => f,:edit_mode => false } %>
+
提交
+ <%#= link_to "上一步", new_homework_common_path(:course => @course.id), :class => "orange_btn_homework fl"%>
+ <%= link_to '取消',homework_common_index_path(:course => @course.id),:class => 'grey_btn fl'%>
<% end%>
diff --git a/app/views/projects/_tools_expand.html.erb b/app/views/projects/_tools_expand.html.erb
index 50884775f..4cf7ebcab 100644
--- a/app/views/projects/_tools_expand.html.erb
+++ b/app/views/projects/_tools_expand.html.erb
@@ -35,14 +35,105 @@
<%= link_to l(:label_project_tool_response) ,project_feedback_path(@project)%>
+
<% if User.current.admin? %>
- <%= link_to l(:label_project_dts) ,:controller => "projects", :action => "dts_repos", :id => @project.id %>
+ <%= link_to l(:label_project_dts_yun) ,yun_dep_project_path(@project), data: { confirm:'你确定要对本项目进行云化部署吗?' } %>
<% end %>
+
+ <% if User.current.admin? %>
+ 软件知识库
+ <%#= link_to l(:label_project_soft_knowledge) ,soft_knowledge_project_path(@project) %>
+ <% end %>
+
+
+ <% if User.current.admin? %>
+ 软件资源库
+ <%#= link_to l(:label_project_soft_file) ,soft_file_project_path(@project) %>
+ <% end %>
+
+
+
+ <% if User.current.admin? %>
+ <%= link_to l(:label_project_dts_new) ,dts_dep_project_path(@project), data: { confirm:'你确定要对本项目进行代码缺陷测试分析吗?' } %>
+ <% end %>
+
+
+
+ <% if User.current.admin? %>
+ 在线开发平台
+ <%#= link_to l(:label_project_online_dev) ,online_dev_project_path(@project) %>
+ <% end %>
+
+
+ <% if User.current.admin? %>
+ 软工服务平台
+ <%#= link_to l(:label_project_soft_service) ,soft_service_project_path(@project) %>
+ <% end %>
+
+
+
+ <% if User.current.admin? %>
+ 形式验证工具
+ <%#= link_to l(:label_project_soft_service) ,soft_service_project_path(@project) %>
+ <% end %>
+
+
+
+ <% if User.current.admin? %>
+ QoS 评估工具
+ <%#= link_to l(:label_project_soft_service) ,soft_service_project_path(@project) %>
+ <% end %>
+
+
+
+ <% if User.current.admin? %>
+ QoS 证据采集工具
+ <%#= link_to l(:label_project_soft_service) ,soft_service_project_path(@project) %>
+ <% end %>
+
+
+
+ <% if User.current.admin? %>
+ 可信度评估工具 SAS
+
+ <%#= link_to l(:label_project_soft_service) ,soft_service_project_path(@project) %>
+ <% end %>
+
+
+
+ <% if User.current.admin? %>
+ 可信评估工具 Evaluator
+ <%#= link_to l(:label_project_soft_service) ,soft_service_project_path(@project) %>
+ <% end %>
+
+
+
+ <% if User.current.admin? %>
+ 软件测试工具 SSCC-Web
+ <%#= link_to l(:label_project_soft_service) ,soft_service_project_path(@project) %>
+ <% end %>
+
+
+
+ <% if User.current.admin? %>
+ QoS 证据评估统计分析工具
+ <%#= link_to l(:label_project_soft_service) ,soft_service_project_path(@project) %>
+ <% end %>
+
+
+
+ <% if User.current.admin? %>
+ 在线验证工具 BACH-Online
+ <%#= link_to l(:label_project_soft_service) ,soft_service_project_path(@project) %>
+ <% end %>
+
+
diff --git a/app/views/projects/dts_dep.html.erb b/app/views/projects/dts_dep.html.erb
new file mode 100644
index 000000000..66e053ebe
--- /dev/null
+++ b/app/views/projects/dts_dep.html.erb
@@ -0,0 +1,72 @@
+
+
<%= l(:label_project_dts_new) %>
+
+
+
+
+
+
+
+
语言:Java 总文件数:361 代码行数:48662
+
+ <% @dts.each do |dt| %>
+
+
+ 错误变量
+ <%= dt.Variable %>
+ 起始行
+ <%= dt.StartLine %>
+ IP行
+ <%= dt.IPLine %>
+
+
+ 缺陷代码
+ <%= dt.IPLineCode %>
+
+
+ 错误描述
+ <%= dt.Description %>
+
+
+ 文件
+ <%= dt.File %>
+
+
+ <% end %>
+
\ No newline at end of file
diff --git a/app/views/projects/online_dev.html.erb b/app/views/projects/online_dev.html.erb
new file mode 100644
index 000000000..d6a4b6795
--- /dev/null
+++ b/app/views/projects/online_dev.html.erb
@@ -0,0 +1,47 @@
+
+
<%= l(:label_project_online_dev) %>
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/views/projects/soft_file.html.erb b/app/views/projects/soft_file.html.erb
new file mode 100644
index 000000000..9e486dd78
--- /dev/null
+++ b/app/views/projects/soft_file.html.erb
@@ -0,0 +1,46 @@
+
+
<%= l(:label_project_soft_file) %>
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/views/projects/soft_knowledge.html.erb b/app/views/projects/soft_knowledge.html.erb
new file mode 100644
index 000000000..bcb745357
--- /dev/null
+++ b/app/views/projects/soft_knowledge.html.erb
@@ -0,0 +1,46 @@
+
+
<%= l(:label_project_soft_knowledge) %>
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/views/projects/soft_service.html.erb b/app/views/projects/soft_service.html.erb
new file mode 100644
index 000000000..43376b915
--- /dev/null
+++ b/app/views/projects/soft_service.html.erb
@@ -0,0 +1,46 @@
+
+
<%= l(:label_project_soft_service) %>
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/views/projects/yun_dep.html.erb b/app/views/projects/yun_dep.html.erb
new file mode 100644
index 000000000..58bc1cfb4
--- /dev/null
+++ b/app/views/projects/yun_dep.html.erb
@@ -0,0 +1,47 @@
+
+
<%= l(:label_project_dts_yun) %>
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/views/student_work/_programing_work_show.html.erb b/app/views/student_work/_programing_work_show.html.erb
index 8060b8a79..b929e0f27 100644
--- a/app/views/student_work/_programing_work_show.html.erb
+++ b/app/views/student_work/_programing_work_show.html.erb
@@ -49,6 +49,7 @@
<%= test.student_work_test.nil? ? "正在编译" : test.student_work_test.status_to_s%>
<%= test.student_work_test.nil? ? "0" : test.student_work_test.test_score%>
+
<% end%>
@@ -72,4 +73,5 @@
<% end%>
收起
+
\ No newline at end of file
diff --git a/app/views/words/destroy.js.erb b/app/views/words/destroy.js.erb
index 94f40064c..92e15ab93 100644
--- a/app/views/words/destroy.js.erb
+++ b/app/views/words/destroy.js.erb
@@ -1,26 +1,26 @@
<% if @journal_destroyed.nil? %>
alert('<%=l(:notice_failed_delete)%>');
<% elsif (['Principal','Project','Course', 'Bid', 'Contest', 'Softapplication'].include? @journal_destroyed.jour_type)%>
- <% if @user && @jours_count%>
+ <% if @is_user%>
$("#nh_jours_<%= @journal_destroyed.id %>",$("div[nhname='container']",$("#nh_messages"))).remove();
var params = init_list_more_div_params($("#nh_messages"));
change_status_4_list_more_div(params);
<% else %>
-
- <% if @bid && @jours_count %>
- $('#jours_count').html("<%= @jours_count %>");
- <% elsif @course && @jours_count%>
- $('#course_jour_count').html("(<%= @jours_count %>)");
- <% elsif @user && @jours_count%>
- $('#jour_count').html("<%= @jours_count %>");
- <% end %>
- var destroyedItem = $('#word_li_<%=@journal_destroyed.id%>')
- destroyedItem.fadeOut(600,function(){
- destroyedItem.remove();
- });
+ <% if @bid && @jours_count %>
+ $('#jours_count').html("<%= @jours_count %>");
+ <% elsif @course && @jours_count%>
+ $('#course_jour_count').html("(<%= @jours_count %>)");
+ <% elsif @user && @jours_count%>
+ $('#jour_count').html("<%= @jours_count %>");
+ <% end %>
+ var destroyedItem = $('#word_li_<%=@journal_destroyed.id%>')
+ destroyedItem.fadeOut(600,function(){
+ destroyedItem.remove();
+ });
<% end %>
<% else %>
$('#message').html('<%= escape_javascript(render(:partial => 'words/message', :locals => {:jour => @jour, :state => false, :user => @user, :feedback_pages => @feedback_pages})) %>');
$('#new_form_reference_user_id').val("");
<% end %>
+
diff --git a/config/locales/projects/zh.yml b/config/locales/projects/zh.yml
index 72349dfe8..e1971cfb9 100644
--- a/config/locales/projects/zh.yml
+++ b/config/locales/projects/zh.yml
@@ -90,7 +90,13 @@ zh:
label_project_tool_response: 用户反馈
label_project_news: 项目新闻
- label_project_dts: DTS测试
+ label_project_dts_new: DTS缺陷测试
+ label_project_dts_statics: DTS缺陷报告
+ label_project_dts_yun: 云化部署
+ label_project_soft_knowledge: 软件知识库
+ label_project_soft_file: 软件资源库
+ label_project_online_dev: 在线开发平台
+ label_project_soft_service: 软工服务平台
label_project_overview: "项目简介"
label_expend_information: 展开更多信息
diff --git a/config/routes.rb b/config/routes.rb
index 388da80de..1ae607eb7 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -385,6 +385,15 @@ RedmineApp::Application.routes.draw do
get 'feedback', :action => 'feedback', :as => 'project_feedback'
get 'watcherlist', :action=> 'watcherlist'
+
+ # 添加dts测试工具
+ get 'dts_dep', :action=> 'dts_dep'
+ get 'yun_dep', :action=> 'yun_dep'
+ get 'soft_knowledge', :action=> 'soft_knowledge'
+ get 'soft_file', :action=> 'soft_file'
+ get 'online_dev', :action=> 'online_dev'
+ get 'soft_service', :action=> 'soft_service'
+
get 'invite_members', :action=> 'invite_members'
get 'invite_members_by_mail', :action=> 'invite_members_by_mail'
# get 'dts_repos', :aciton => 'dts_repos'
diff --git a/db/migrate/20150719092427_create_dts.rb b/db/migrate/20150719092427_create_dts.rb
new file mode 100644
index 000000000..36ff24756
--- /dev/null
+++ b/db/migrate/20150719092427_create_dts.rb
@@ -0,0 +1,22 @@
+class CreateDts < ActiveRecord::Migration
+ def change
+ create_table :dts do |t|
+ t.string :IPLineCode
+ t.string :Description
+ 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.timestamps
+ end
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 383545cf6..243079ed8 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -11,12 +11,14 @@
#
# It's strongly recommended to check this file into your version control system.
-ActiveRecord::Schema.define(:version => 20150715070534) do
+ActiveRecord::Schema.define(:version => 20150719092427) do
create_table "activities", :force => true do |t|
- t.integer "act_id", :null => false
- t.string "act_type", :null => false
- t.integer "user_id", :null => false
+ t.integer "act_id", :null => false
+ t.string "act_type", :null => false
+ t.integer "user_id", :null => false
+ t.integer "activity_container_id"
+ t.string "activity_container_type", :default => ""
end
add_index "activities", ["act_id", "act_type"], :name => "index_activities_on_act_id_and_act_type"
@@ -473,6 +475,25 @@ ActiveRecord::Schema.define(:version => 20150715070534) 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"
+ 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", :null => false
+ t.datetime "updated_at", :null => false
+ end
+
create_table "enabled_modules", :force => true do |t|
t.integer "project_id"
t.string "name", :null => false
@@ -1340,7 +1361,7 @@ ActiveRecord::Schema.define(:version => 20150715070534) do
end
create_table "user_extensions", :force => true do |t|
- t.integer "user_id", :null => false
+ t.integer "user_id", :null => false
t.date "birthday"
t.string "brief_introduction"
t.integer "gender"
@@ -1348,8 +1369,8 @@ ActiveRecord::Schema.define(:version => 20150715070534) do
t.string "occupation"
t.integer "work_experience"
t.integer "zip_code"
- t.datetime "created_at", :null => false
- t.datetime "updated_at", :null => false
+ t.datetime "created_at", :null => false
+ t.datetime "updated_at", :null => false
t.string "technical_title"
t.integer "identity"
t.string "student_id"
@@ -1357,6 +1378,7 @@ ActiveRecord::Schema.define(:version => 20150715070534) do
t.string "student_realname"
t.string "location_city"
t.integer "school_id"
+ t.string "description", :default => ""
end
create_table "user_grades", :force => true do |t|
@@ -1462,6 +1484,17 @@ ActiveRecord::Schema.define(:version => 20150715070534) do
add_index "versions", ["project_id"], :name => "versions_project_id"
add_index "versions", ["sharing"], :name => "index_versions_on_sharing"
+ create_table "visitors", :force => true do |t|
+ t.integer "user_id"
+ t.integer "master_id"
+ t.datetime "updated_on"
+ t.datetime "created_on"
+ end
+
+ add_index "visitors", ["master_id"], :name => "index_visitors_master_id"
+ add_index "visitors", ["updated_on"], :name => "index_visitors_updated_on"
+ add_index "visitors", ["user_id"], :name => "index_visitors_user_id"
+
create_table "watchers", :force => true do |t|
t.string "watchable_type", :default => "", :null => false
t.integer "watchable_id", :default => 0, :null => false
diff --git a/public/javascripts/course.js b/public/javascripts/course.js
index 7c165a4c6..b2736993b 100644
--- a/public/javascripts/course.js
+++ b/public/javascripts/course.js
@@ -506,14 +506,51 @@ function submit_homework(id)
}
}
+function regexHomeworkCommonName()
+{
+ var name = $.trim($("#homework_attach_name").val());
+
+ if(name=="")
+ {
+ $("#homework_attach_name_span").text("作品名称不能为空");
+ $("#homework_attach_name_span").css('color','#ff0000');
+ return false;
+ }
+ else
+ {
+ $("#homework_attach_name_span").text("填写正确");
+ $("#homework_attach_name_span").css('color','#008000');
+ return true;
+ }
+}
+function regexHomeworkCommonDescription()
+{
+ var name = $.trim($("#homework_attach_description").val());
+
+ if(name=="")
+ {
+ $("#homework_attach_description_span").text("作品描述不能为空");
+ $("#homework_attach_description_span").css('color','#ff0000');
+ return false;
+ }
+ else
+ {
+ $("#homework_attach_description_span").text("填写正确");
+ $("#homework_attach_description_span").css('color','#008000');
+ return true;
+ }
+}
+
+function submit_homework_form(){if(regexHomeworkCommonName()&®exHomeworkCommonDescription()){$('#new_homework_attach').submit();}}
+
//增加测试结果
function add_programing_test(obj) {
var now = new Date().getTime();
- obj.after("");
}
//删除测试结果
function remove_programing_test(obj) {
diff --git a/public/stylesheets/courses.css b/public/stylesheets/courses.css
index abeec52d3..5a7bb001a 100644
--- a/public/stylesheets/courses.css
+++ b/public/stylesheets/courses.css
@@ -609,6 +609,7 @@ a:hover.Reply_pic{border:1px solid #64bdd9;}
.w547{ width:544px;}
.w196{ width:196px;}
.w186{ width:186px;}
+.w200{width: 200px;}
.w459{ width:459px;}
.hwork_new_set{border:1px dashed #CCC; background:#f5f5f5; text-align:center; padding:10px 0; margin-bottom:10px;}
.hwork_new_grey{background:#dbdbdb; width:610px; padding:10px 20px; margin:0 auto; text-align:left; margin-bottom:5px;}
diff --git a/public/stylesheets/project.css b/public/stylesheets/project.css
index 673b1f59c..f005b2df6 100644
--- a/public/stylesheets/project.css
+++ b/public/stylesheets/project.css
@@ -12,6 +12,7 @@ a:hover.lg-foot{ color:#787b7e;}
/*右侧内容--动态*/
.project_r_h{ width:670px; height:40px; background:#eaeaea; margin-bottom:10px;}
.project_h2{ background:#64bdd9; color:#fff; height:33px; width:90px; text-align:center; font-weight:normal; padding-top:7px; font-size:16px;}
+.project_h22{ background:#64bdd9; color:#fff; height:33px; width:124px; text-align:center; font-weight:normal; padding-top:7px; font-size:16px;}
.project_r_box{ border:1px solid #e2e1e1; width:670px; margin-top:10px;}
.project_h3 { color:#646464; font-size:14px; padding:0 10px; border-bottom:1px solid #e2e1e1;}
a.more{ float:right; font-size:12px; font-weight:normal; color:#a9a9a9; margin-top:3px;}
@@ -752,3 +753,4 @@ a:hover.Reply_pic{border:1px solid #64bdd9;}
#about_newtalk{ display:none;}
+
diff --git a/public/stylesheets/public.css b/public/stylesheets/public.css
index 8e16c9436..b3d16908d 100644
--- a/public/stylesheets/public.css
+++ b/public/stylesheets/public.css
@@ -96,6 +96,7 @@ h4{ font-size:14px; color:#3b3b3b;}
.w60{ width:60px;}
.w70{ width:70px;}
.w90{ width:90px;}
+.w100{width: 100px;}
.w210{ width:210px;}
.w150{ width:150px;}
.w280{ width:280px;}
diff --git a/public/stylesheets/users.css b/public/stylesheets/users.css
index ddfb02e18..81529288c 100644
--- a/public/stylesheets/users.css
+++ b/public/stylesheets/users.css
@@ -1,4 +1,4 @@
-#RSide{ min-height:860px;}
+#RSide{ min-height:1px;}
/* 左侧信息*/
.users_info{background:#fff; padding:10px; width:230px; padding-right:0px; margin-bottom:10px; }
.pic_head{ width:214px; height:214px; border:1px solid #cbcbcb; padding:2px; position:relative;}
diff --git a/spec/factories/dts.rb b/spec/factories/dts.rb
new file mode 100644
index 000000000..05e6148c2
--- /dev/null
+++ b/spec/factories/dts.rb
@@ -0,0 +1,19 @@
+FactoryGirl.define do
+ factory :dt, :class => 'Dts' do
+ IPLineCode "MyString"
+Description "MyString"
+Num "MyString"
+Variable "MyString"
+TraceInfo "MyString"
+Method "MyString"
+File "MyString"
+IPLine "MyString"
+Review "MyString"
+Category "MyString"
+Defect "MyString"
+PreConditions "MyString"
+StartLine "MyString"
+project_id 1
+ end
+
+end
diff --git a/spec/models/dts_spec.rb b/spec/models/dts_spec.rb
new file mode 100644
index 000000000..5c274cba4
--- /dev/null
+++ b/spec/models/dts_spec.rb
@@ -0,0 +1,5 @@
+require 'rails_helper'
+
+RSpec.describe Dts, :type => :model do
+ pending "add some examples to (or delete) #{__FILE__}"
+end