试卷的查看页

dev_jupyter
cxt 5 years ago
parent 48ab836b54
commit 218f5f0262

@ -11,7 +11,11 @@ class ExaminationBanksController < ApplicationController
end
def show
@items = @exam.examination_items
@single_questions = @items.where(item_type: "SINGLE")
@multiple_questions = @items.where(item_type: "MULTIPLE")
@judgement_questions = @items.where(item_type: "JUDGMENT")
@program_questions = @items.where(item_type: "PROGRAM")
end
def create
@ -28,10 +32,12 @@ class ExaminationBanksController < ApplicationController
difficulty: item.difficulty, score: basket.score, position: basket.position)
new_item.save!
item.increment!(:quotes)
if item.item_type == "PROGRAM"
new_hack = item.container.fork
new_item.update_attributes!(container: new_hack)
elsif item.item_choices.present?
else
new_item.examination_item_analysis.create!(analysis: item.analysis)
item.item_choices.each do |choice|
new_item.examination_item_choices << ExaminationItemChoice.new(choice_text: choice.choice_text, is_answer: choice.is_answer)
end

@ -5,6 +5,23 @@ class ExaminationItem < ApplicationRecord
belongs_to :item_bank, optional: true
has_many :examination_item_choices, dependent: :destroy
has_one :examination_item_analysis, dependent: :destroy
belongs_to :container, polymorphic: true, optional: true
def analysis
examination_item_analysis&.analysis
end
def item_choices
examination_item_choices
end
def public
0
end
def quotes
0
end
end

@ -0,0 +1,3 @@
class ExaminationItemAnalysis < ApplicationRecord
belongs_to :examination_item
end

@ -0,0 +1,51 @@
json.single_questions do
json.questions @single_questions.each do |question|
json.(question, :id, :position, :score, :item_type)
json.partial! "item_banks/item", locals: {item: question}
end
json.questions_score @single_questions.map(&:score).sum
json.questions_count @single_questions.size
end
json.multiple_questions do
json.questions @multiple_questions.each do |question|
json.(question, :id, :position, :score, :item_type)
json.partial! "item_banks/item", locals: {item: question}
end
json.questions_score @multiple_questions.map(&:score).sum
json.questions_count @multiple_questions.size
end
json.judgement_questions do
json.questions @judgement_questions.each do |question|
json.(question, :id, :position, :score, :item_type)
json.partial! "item_banks/item", locals: {item: question}
end
json.questions_score @judgement_questions.map(&:score).sum
json.questions_count @judgement_questions.size
end
json.program_questions do
json.questions @program_questions.each do |question|
json.(question, :id, :position, :score, :item_type)
json.partial! "item_banks/item", locals: {item: question}
end
json.questions_score @program_questions.map(&:score).sum
json.questions_count @program_questions.size
end
json.exam do
json.(@exam, :id, :name, :difficulty, :sub_discipline_id, :duration)
json.all_score @items.map(&:score).sum
json.all_questions_count @items.size
json.discipline do
json.(@exam.sub_discipline&.discipline, :id, :name)
end
json.sub_discipline do
json.(@exam.sub_discipline, :id, :name)
end
json.tag_disciplines @exam.tag_disciplines do |tag|
json.(tag, :id, :name)
end
end

@ -0,0 +1,10 @@
class CreateExaminationItemAnalyses < ActiveRecord::Migration[5.2]
def change
create_table :examination_item_analyses do |t|
t.references :examination_item, index: true, unique: true
t.text :analysis
t.timestamps
end
end
end

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