From 2eb3259cb7cc9837d48c5f20dc9cd52af6c531a2 Mon Sep 17 00:00:00 2001 From: p31729568 Date: Wed, 9 Oct 2019 15:22:21 +0800 Subject: [PATCH] ecs: modify api --- .../ecs/course_targets_controller.rb | 4 +-- .../with_achievement_methods.json.jbuilder | 32 ++++++++++++++++++- 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/app/controllers/ecs/course_targets_controller.rb b/app/controllers/ecs/course_targets_controller.rb index e5ac4b36e..bcd09f64a 100644 --- a/app/controllers/ecs/course_targets_controller.rb +++ b/app/controllers/ecs/course_targets_controller.rb @@ -20,8 +20,8 @@ class Ecs::CourseTargetsController < Ecs::CourseBaseController def with_achievement_methods @course_targets = current_course.ec_course_targets - .includes(:ec_graduation_subitems, - ec_course_achievement_methods: [:ec_course_evaluation, :ec_course_evaluation_subitems]) + .includes(ec_course_achievement_methods: + [:ec_course_evaluation, ec_achievement_evaluation_relates: :ec_course_evaluation_subitem]) end private diff --git a/app/views/ecs/course_targets/with_achievement_methods.json.jbuilder b/app/views/ecs/course_targets/with_achievement_methods.json.jbuilder index 689504ec3..02a4efc6e 100644 --- a/app/views/ecs/course_targets/with_achievement_methods.json.jbuilder +++ b/app/views/ecs/course_targets/with_achievement_methods.json.jbuilder @@ -1,2 +1,32 @@ +json.course_targets @course_targets, + partial: 'ecs/course_targets/shared/ec_course_target_with_achievement_methods', + as: :ec_course_target +json.course_targets do + json.array! @course_targets do |course_target| + json.extract! course_target, :id, :position, :content -json.course_targets @course_targets, partial: 'ecs/course_targets/shared/ec_course_target_with_achievement_methods', as: :ec_course_target + json.course_achievement_methods do + json.array! course_target.ec_course_achievement_methods do |achievement_method| + evaluation = achievement_method.ec_course_evaluation + json.extract! achievement_method, :id, :score, :percentage + + json.course_evaluation do + json.partial! 'ecs/course_evaluations/shared/ec_course_evaluation_only', ec_course_evaluation: evaluation + end + + json.course_evaluation_relates do + json.array! achievement_method.ec_achievement_evaluation_relates do |relate| + json.extract! relate, :id, :position, :ec_course_evaluation_subitem_id + + subitem = relate.ec_course_evaluation_subitem + if evaluation.is_course_type? + json.name subitem&.name + else + json.name subitem&.name ? "#{evaluation.name}(#{relate.position}):#{subitem&.name}" : "#{evaluation.name}(#{relate.position})" + end + end + end + end + end + end +end \ No newline at end of file