diff --git a/app/assets/javascripts/edu_datas.js b/app/assets/javascripts/edu_datas.js new file mode 100644 index 000000000..dee720fac --- /dev/null +++ b/app/assets/javascripts/edu_datas.js @@ -0,0 +1,2 @@ +// Place all the behaviors and hooks related to the matching controller here. +// All this logic will automatically be available in application.js. diff --git a/app/assets/stylesheets/edu_datas.scss b/app/assets/stylesheets/edu_datas.scss new file mode 100644 index 000000000..761de8ec4 --- /dev/null +++ b/app/assets/stylesheets/edu_datas.scss @@ -0,0 +1,3 @@ +// Place all the styles related to the edu_datas controller here. +// They will automatically be included in application.css. +// You can use Sass (SCSS) here: http://sass-lang.com/ diff --git a/app/controllers/edu_datas_controller.rb b/app/controllers/edu_datas_controller.rb new file mode 100644 index 000000000..bb6f7776e --- /dev/null +++ b/app/controllers/edu_datas_controller.rb @@ -0,0 +1,29 @@ +class EduDatasController < ApplicationController + before_action :find_game + skip_before_action :user_setup + skip_before_action :setup_laboratory + # layout :false + include GitHelper + + # params[:game_id] + def game + @shixun = @challenge.shixun + @shixun_env = @shixun.mirror_name + @shixun_tags = @challenge.challenge_tags.map(&:name) + end + + def code_lines + path = @challenge.path + myshixun = @game.myshixun + # content = git_fle_content(myshixun.repo_path, path) || "" + @content = {"content":"#coding=utf-8\n\n#请在此处添加代码完成输出“Hello Python”,注意要区分大小写!\n###### Begin ######\n\n\n\n###### End ######\n\n"} + @content[:content].include?("Begin") + end + + private + def find_game + game_id = params[:game_id] + @game = Game.find(game_id) + @challenge = @game.challenge + end +end diff --git a/app/helpers/edu_datas_helper.rb b/app/helpers/edu_datas_helper.rb new file mode 100644 index 000000000..1a8584d15 --- /dev/null +++ b/app/helpers/edu_datas_helper.rb @@ -0,0 +1,2 @@ +module EduDatasHelper +end diff --git a/app/views/edu_datas/code_lines.json.jbuilder b/app/views/edu_datas/code_lines.json.jbuilder new file mode 100644 index 000000000..d4cccf0a7 --- /dev/null +++ b/app/views/edu_datas/code_lines.json.jbuilder @@ -0,0 +1 @@ +json.content @content \ No newline at end of file diff --git a/app/views/edu_datas/game.json.jbuilder b/app/views/edu_datas/game.json.jbuilder new file mode 100644 index 000000000..3f4a0335e --- /dev/null +++ b/app/views/edu_datas/game.json.jbuilder @@ -0,0 +1,6 @@ +json.challenge @challenge +json.game @game + +json.shixun @shixun +json.shixun_env @env +json.shixun_tags @shixun_tags \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index f13fd714b..a65a7f4c1 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1044,6 +1044,13 @@ Rails.application.routes.draw do get :student_hot_evaluations end end + + resources :edu_datas do + collection do + get :game + get :code_lines + end + end end namespace :admins do diff --git a/spec/controllers/edu_datas_controller_spec.rb b/spec/controllers/edu_datas_controller_spec.rb new file mode 100644 index 000000000..08fd0c8df --- /dev/null +++ b/spec/controllers/edu_datas_controller_spec.rb @@ -0,0 +1,5 @@ +require 'rails_helper' + +RSpec.describe EduDatasController, type: :controller do + +end diff --git a/spec/helpers/edu_datas_helper_spec.rb b/spec/helpers/edu_datas_helper_spec.rb new file mode 100644 index 000000000..2d82005b1 --- /dev/null +++ b/spec/helpers/edu_datas_helper_spec.rb @@ -0,0 +1,15 @@ +require 'rails_helper' + +# Specs in this file have access to a helper object that includes +# the EduDatasHelper. For example: +# +# describe EduDatasHelper do +# describe "string concat" do +# it "concats two strings with spaces" do +# expect(helper.concat_strings("this","that")).to eq("this that") +# end +# end +# end +RSpec.describe EduDatasHelper, type: :helper do + pending "add some examples to (or delete) #{__FILE__}" +end