- 0
- 아포리아
- 조회 수 573
5/19
[버그] 문제 삭제시 해당 문제의 배점만큼 총 배점도 감산
현재는 시험 문제를 삭제할 때 해당 문제의 배점(point)만큼 시험의 총배점(total_point)이 감소되지 않고 있습니다.
procExamQuestionDelete() 함수를 개선할 필요가 있겠습니다.
exam.controller.php #328-329 행의
$output = $this->deleteQuestion($args);
if(!$output->toBool()) return $output;
윗부분을 다음과 같이 바꾸니 total_point도 수정되고 캐시 삭제로 바뀐 값도 바로 적용됩니다.
$output = $this->deleteQuestion($args);
if(!$output->toBool()) return $this->makeObject(-1, "msg_invalid_request");
// 삭제한 문제의 배점만큼 만점 재계산
$total_point = $examitem->get('total_point') - $questionitem->get('point');
$output = $this->updateTotalPoint($document_srl, $total_point);
if(!$output->toBool()) return $this->makeObject(-1, "Failed to update total_point");
//remove from cache
$oCacheHandler = CacheHandler::getInstance('object');
if($oCacheHandler->isSupport())
{
//remove document item from cache
$cache_key = 'exam_item:'. getNumberingPath($document_srl) . $document_srl;
$oCacheHandler->delete($cache_key);
}