实训详情

This commit is contained in:
huang 2017-03-22 13:45:01 +08:00
parent 9f0128a878
commit 4d23032937
11 changed files with 77 additions and 39 deletions

View File

@ -41,6 +41,11 @@ class ChallengesController < ApplicationController
end
end
end
if params[:knowledge][:input].length > 0
params[:knowledge][:input].each do |input|
ChallengeTag.create(:name => input, :challenge_id => @challenge.id)
end
end
respond_to do |format|
format.html {redirect_to shixun_challenge_path(@challenge, :shixun_id => @shixun)}
end
@ -65,6 +70,9 @@ class ChallengesController < ApplicationController
def show
@outputs = GameOutputs.all
@challenge_samples = @challenge.challenge_samples
@test_sets = @challenge.test_sets
@challenge_tags = @challenge.challenge_tags
respond_to do |format|
format.html
format.js
@ -76,6 +84,7 @@ class ChallengesController < ApplicationController
end
def update
@challenge = Challenge.new(params[:challenge])
end

View File

@ -4,6 +4,7 @@ class Challenge < ActiveRecord::Base
belongs_to :user
has_many :challenge_samples, :dependent => :destroy
has_many :test_sets, :dependent => :destroy
has_many :challenge_tags, :dependent => :destroy
validates_presence_of :subject
validates_presence_of :score

View File

@ -0,0 +1,4 @@
class ChallengeTag < ActiveRecord::Base
attr_accessible :challenge_id, :name
belongs_to :challenge
end

View File

@ -122,9 +122,9 @@
</div>
</div>
</li>
<li class="clearfix">
<li class="clearfix" style="line-height:1.9;">
<label class=" panel-form-label fl"> 参考答案:</label>
<%= f.text_area :answer, :id => 'challenge-answer', :class => "panel-form-width-690 panel-form-height-150 fl task-textarea-pd", :no_label => true %>
<%= f.text_area :answer, :id => 'challenge-answer', :class => "panel-form-width-690 panel-form-height-150 fl task-textarea-pd", :no_label => true, :style => "line-height:1.9;" %>
<script>
var text = document.getElementById("challenge-answer");
</script>

View File

@ -9,34 +9,35 @@
<div class="task-pm-box mt20">
<div class="panel-header clearfix">
<h3 class="fl mt5">阶段详情</h3>
<a href="<%= new_shixun_challenge_path(@shixun) %>" class=" task-btn task-btn-green fr">新建阶段</a>
</div>
<div class="panel-form">
<div class="clearfix mb20">
<h3 class="fl panel-inner-title"><span class="color-red mr10">第<%= @challenge.position %>关</span><%= @challenge.subject %></h3>
<p class="fr">
<a href="#" title="编辑"><i class="fa fa-pencil-square-o color-grey font-16 mr5"></i></a>
<a href="<%= edit_shixun_challenge_path(@challenge, :shixun_id => @shixun) %>" title="编辑"><i class="fa fa-pencil-square-o color-grey font-16 mr5"></i></a>
<a href="#" title="删除"><i class="fa fa-trash-o color-grey font-16 mr5"></i></a>
<a href="#" title="复制"><i class="fa fa-files-o color-grey font-16 mr5"></i></a>
<!--<a href="#" title="复制"><i class="fa fa-files-o color-grey font-16 mr5"></i></a>-->
</p>
</div>
<ul>
<li class="clearfix">
<label class="panel-form-label fl">预备知识:</label>
<div class="fl task-bg-grey">
<%= @challenge.ready_knowledge.blank? ? "无" : (h @challenge.ready_knowledge.html_safe) %>
<%= @challenge.ready_knowledge.blank? ? "无" : (h @challenge.ready_knowledge) %>
</div>
</li>
<li class="clearfix">
<label class="panel-form-label fl"><span class="c_red mr5">*</span>过关任务:</label>
<div class="fl task-bg-grey">
<%= h @challenge.task_pass.html_safe %>
<%= h @challenge.task_pass %>
</div>
</li>
<li class="clearfix">
<label class="panel-form-label fl">样例设置:</label>
<ul class="fl task-bg-grey">
<% if @challenge.challenge_samples.count > 0 %>
<% @challenge.challenge_samples.each_with_index do |sample, index| %>
<% if @challenge_samples.count > 0 %>
<% @challenge_samples.each_with_index do |sample, index| %>
<li class="clearfix">
<p class="clearfix">
<span class="color-green fb">样例<%= index + 1 %></span>
@ -53,8 +54,8 @@
<li class="clearfix">
<label class="panel-form-label fl">测试集设置:</label>
<ul class="fl task-bg-grey">
<% if @challenge.test_sets.count > 0 %>
<% @challenge.test_sets.each_with_index do |test, index| %>
<% if @test_sets.count > 0 %>
<% @test_sets.each_with_index do |test, index| %>
<li class="clearfix">
<p class="clearfix">
<span class="color-green fb">测试集<%= index + 1 %></span>
@ -69,26 +70,21 @@
</ul>
</li>
<li class="clearfix">
<label class="panel-form-label fl"> 知识/技能点:</label>
<div class="fl task-bd-grey">
<div class="task-tag tag-grey mb10 mr10 fl">
使用交互模式的 Python3 解释器
</div>
<div class="task-tag tag-grey mb10 mr10 fl">
简单使用 vim 编写脚本文件并执行这个脚本文件
</div>
<div class="task-tag tag-grey mb10 mr10 fl">
Python 语法:缩进
</div>
<div class="task-tag tag-grey mb10 mr10 fl">
规范代码风格和注释
</div>
</div>
<% unless @challenge_tags.blank? %>
<label class="panel-form-label fl"> 知识/技能点:</label>
<div class="fl task-bd-grey">
<% @challenge_tags.each do |tag| %>
<div class="task-tag tag-grey mb10 mr10 fl">
<%= tag.name %>
</div>
<% end %>
</div>
<% end %>
</li>
<li class="clearfix">
<label class=" panel-form-label fl"> 参考答案:</label>
<div class="fl task-bg-grey">
<%= @challenge.answer.blank? ? "无" : (h @challenge.answer.html_safe) %>
<%= @challenge.answer.blank? ? "无" : (h @challenge.answer) %>
</div>
</li>
<li class="clearfix">

View File

@ -1,9 +0,0 @@
class CreateShixunTags < ActiveRecord::Migration
def change
create_table :shixun_tags do |t|
t.string :name
t.integer :game_id
t.timestamps
end
end
end

View File

@ -0,0 +1,8 @@
class RenameShixunTags < ActiveRecord::Migration
def up
rename_column :shixun_tags, :game_id, :challenge_id
end
def down
end
end

View File

@ -0,0 +1,10 @@
class CreateChallengeTags < ActiveRecord::Migration
def change
create_table :challenge_tags do |t|
t.string :name
t.integer :challenge_id
t.timestamps
end
end
end

View File

@ -11,7 +11,7 @@
#
# It's strongly recommended to check this file into your version control system.
ActiveRecord::Schema.define(:version => 20170321102722) do
ActiveRecord::Schema.define(:version => 20170322033103) do
create_table "activities", :force => true do |t|
t.integer "act_id", :null => false
@ -338,6 +338,13 @@ ActiveRecord::Schema.define(:version => 20170321102722) do
t.integer "game_id"
end
create_table "challenge_tags", :force => true do |t|
t.string "name"
t.integer "challenge_id"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
create_table "challenges", :force => true do |t|
t.integer "shixun_id"
t.string "subject"
@ -2117,9 +2124,9 @@ ActiveRecord::Schema.define(:version => 20170321102722) do
create_table "shixun_tags", :force => true do |t|
t.string "name"
t.integer "game_id"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
t.integer "challenge_id"
t.datetime "created_at", :null => false
t.datetime "updated_at", :null => false
end
create_table "shixuns", :force => true do |t|

View File

@ -0,0 +1,7 @@
FactoryGirl.define do
factory :challenge_tag do
name "MyString"
challenge_id 1
end
end

View File

@ -0,0 +1,5 @@
require 'rails_helper'
RSpec.describe ChallengeTag, :type => :model do
pending "add some examples to (or delete) #{__FILE__}"
end