/** * @param ilPropertyFormGUI $form */ private function saveResultSummarySettings(ilPropertyFormGUI $form) { if ($this->formPropertyExists($form, 'results_access_enabled')) { if ($form->getItemByPostVar('results_access_enabled')->getChecked()) { $this->testOBJ->setScoreReporting($form->getItemByPostVar('results_access_setting')->getValue()); if ($this->testOBJ->getScoreReporting() == REPORT_AFTER_DATE) { $this->testOBJ->setReportingDate($form->getItemByPostVar('reporting_date')->getDate()->get(IL_CAL_FKT_DATE, 'YmdHis')); } else { $this->testOBJ->setReportingDate(''); } $this->testOBJ->setShowPassDetails($form->getItemByPostVar('pass_details')->getChecked()); } else { $this->testOBJ->setScoreReporting(4); // never $this->testOBJ->setShowPassDetails(false); $this->testOBJ->setReportingDate(''); } } if ($this->formPropertyExists($form, 'grading_status')) { $this->testOBJ->setShowGradingStatusEnabled($form->getItemByPostVar('grading_status')->getChecked()); } if ($this->formPropertyExists($form, 'grading_mark')) { $this->testOBJ->setShowGradingMarkEnabled((int) $form->getItemByPostVar('grading_mark')->getChecked()); } }
/** * Save the form input of the scoring form * * @access public */ function saveScoringObject() { $hasErrors = $this->scoringObject(true); if (!$hasErrors) { $total = $this->object->evalTotalPersons(); $this->object->setCountSystem($_POST["count_system"]); $this->object->setMCScoring($_POST["mc_scoring"]); $this->object->setScoreCutting($_POST["score_cutting"]); $this->object->setPassScoring($_POST["pass_scoring"]); if (isset($_POST['obligations_enabled']) && $_POST['obligations_enabled']) { $this->object->setObligationsEnabled(true); } else { $this->object->setObligationsEnabled(false); } if (isset($_POST['offer_hints']) && $_POST['offer_hints']) { $this->object->setOfferingQuestionHintsEnabled(true); } else { $this->object->setOfferingQuestionHintsEnabled(false); } /* $this->object->setAnswerFeedback((is_array($_POST['instant_feedback']) && in_array('instant_feedback_answer', $_POST['instant_feedback'])) ? 1 : 0); $this->object->setAnswerFeedbackPoints((is_array($_POST['instant_feedback']) && in_array('instant_feedback_points', $_POST['instant_feedback'])) ? 1 : 0); $this->object->setInstantFeedbackSolution((is_array($_POST['instant_feedback']) && in_array('instant_feedback_solution', $_POST['instant_feedback'])) ? 1 : 0); */ /** * I introduced a single setter for instant_feedback options * @author jposselt at databay . de */ $this->object->setScoringFeedbackOptionsByArray($_POST['instant_feedback']); $this->object->setScoreReporting($_POST["results_access"]); if ($this->object->getScoreReporting() == REPORT_AFTER_DATE) { $this->object->setReportingDate(str_replace(array(':', '-'), '', $_POST["reporting_date"]['date'] . $_POST["reporting_date"]['time'])); } else { $this->object->setReportingDate(''); } $this->object->setShowPassDetails(is_array($_POST['results_presentation']) && in_array('pass_details', $_POST['results_presentation']) ? 1 : 0); $this->object->setShowSolutionDetails(is_array($_POST['results_presentation']) && in_array('solution_details', $_POST['results_presentation']) ? 1 : 0); $this->object->setShowSolutionPrintview(is_array($_POST['results_presentation']) && in_array('solution_printview', $_POST['results_presentation']) ? 1 : 0); $this->object->setShowSolutionFeedback(is_array($_POST['results_presentation']) && in_array('solution_feedback', $_POST['results_presentation']) ? 1 : 0); $this->object->setShowSolutionAnswersOnly(is_array($_POST['results_presentation']) && in_array('solution_answers_only', $_POST['results_presentation']) ? 1 : 0); $this->object->setShowSolutionSignature(is_array($_POST['results_presentation']) && in_array('solution_signature', $_POST['results_presentation']) ? 1 : 0); $this->object->setShowSolutionSuggested(is_array($_POST['results_presentation']) && in_array('solution_suggested', $_POST['results_presentation']) ? 1 : 0); $this->object->setShowSolutionListComparison(is_array($_POST['results_presentation']) && in_array('solution_compare', $_POST['results_presentation']) ? 1 : 0); $this->object->setExportSettingsSingleChoiceShort(is_array($_POST['export_settings']) && in_array('exp_sc_short', $_POST['export_settings']) ? 1 : 0); $this->object->setPrintBestSolutionWithResult((int) $_POST['print_bs_with_res'] ? true : false); $this->object->setPassDeletionAllowed((bool) $_POST['pass_deletion_allowed']); $this->object->saveToDb(true); ilUtil::sendSuccess($this->lng->txt("msg_obj_modified"), TRUE); if ($total != 0) { $this->object->recalculateScores(); } $this->ctrl->redirect($this, "scoring"); } }
private function performSaveForm(ilPropertyFormGUI $form) { if ($this->areScoringSettingsWritable()) { if (!$this->isHiddenFormItem('count_system')) { $this->testOBJ->setCountSystem($form->getItemByPostVar('count_system')->getValue()); } if (!$this->isHiddenFormItem('mc_scoring')) { $this->testOBJ->setMCScoring($form->getItemByPostVar('mc_scoring')->getValue()); } if (!$this->isHiddenFormItem('score_cutting')) { $this->testOBJ->setScoreCutting($form->getItemByPostVar('score_cutting')->getValue()); } if (!$this->isHiddenFormItem('pass_scoring')) { $this->testOBJ->setPassScoring($form->getItemByPostVar('pass_scoring')->getValue()); } } if (!$this->isHiddenFormItem('results_access_enabled')) { if ($form->getItemByPostVar('results_access_enabled')->getChecked()) { $this->testOBJ->setScoreReporting($form->getItemByPostVar('results_access_setting')->getValue()); if ($this->testOBJ->getScoreReporting() == REPORT_AFTER_DATE) { $this->testOBJ->setReportingDate($form->getItemByPostVar('reporting_date')->getDate()->get(IL_CAL_FKT_DATE, 'YmdHis')); } else { $this->testOBJ->setReportingDate(''); } $this->testOBJ->setShowPassDetails($form->getItemByPostVar('pass_details')->getChecked()); } else { $this->testOBJ->setScoreReporting(4); // never $this->testOBJ->setShowPassDetails(false); $this->testOBJ->setReportingDate(''); } } if (!$this->isHiddenFormItem('show_result_grading')) { $this->testOBJ->setShowGradingStatusEnabled($form->getItemByPostVar('grading_status')->getChecked()); $this->testOBJ->setShowGradingMarkEnabled((int) $form->getItemByPostVar('grading_mark')->getChecked()); } if (!$this->isHiddenFormItem('solution_details')) { if ($form->getItemByPostVar('solution_details')->getChecked()) { $this->testOBJ->setShowSolutionDetails(1); $this->testOBJ->setPrintBestSolutionWithResult((int) $form->getItemByPostVar('print_bs_with_res')->getChecked()); } else { $this->testOBJ->setShowSolutionDetails(0); $this->testOBJ->setPrintBestSolutionWithResult(0); } } if (!$this->isHiddenFormItem('solution_printview')) { if ($form->getItemByPostVar('solution_printview')->getChecked()) { $this->testOBJ->setShowSolutionPrintview(1); $this->testOBJ->setShowSolutionListComparison((bool) $form->getItemByPostVar('solution_compare')->getChecked()); $this->testOBJ->setShowSolutionAnswersOnly((int) $form->getItemByPostVar('solution_answers_only')->getChecked()); } else { $this->testOBJ->setShowSolutionPrintview(0); $this->testOBJ->setShowSolutionListComparison(false); $this->testOBJ->setShowSolutionAnswersOnly(0); } } if (!$this->isHiddenFormItem('solution_feedback')) { $this->testOBJ->setShowSolutionFeedback($form->getItemByPostVar('solution_feedback')->getChecked()); } if (!$this->isHiddenFormItem('solution_signature')) { $this->testOBJ->setShowSolutionSignature($form->getItemByPostVar('solution_signature')->getChecked()); } if (!$this->isHiddenFormItem('examid_in_test_res')) { $this->testOBJ->setShowExamIdInTestResultsEnabled($form->getItemByPostVar('examid_in_test_res')->getChecked()); } if (!$this->isHiddenFormItem('solution_suggested')) { $this->testOBJ->setShowSolutionSuggested($form->getItemByPostVar('solution_suggested')->getChecked()); } if (!$this->isHiddenFormItem('exp_sc_short')) { $this->testOBJ->setExportSettingsSingleChoiceShort((int) $form->getItemByPostVar('exp_sc_short')->getChecked()); } if (!$this->isHiddenFormItem('pass_deletion_allowed')) { $this->testOBJ->setPassDeletionAllowed((bool) $form->getItemByPostVar('pass_deletion_allowed')->getValue()); } // result filter taxonomies if ($this->testQuestionSetConfigFactory->getQuestionSetConfig()->isResultTaxonomyFilterSupported()) { if (!$this->isHiddenFormItem('results_tax_filters') && count($this->getAvailableTaxonomyIds())) { $this->testOBJ->setResultFilterTaxIds(array_intersect($this->getAvailableTaxonomyIds(), $form->getItemByPostVar('results_tax_filters')->getValue())); } } if (!$this->isHiddenFormItem('anonymity')) { // anonymity setting $this->testOBJ->setAnonymity($form->getItemByPostVar('anonymity')->getValue()); } if (!$this->isHiddenFormItem('enable_archiving')) { // Archiving if ($this->testOBJ->getAnonymity() == true && $form->getItemByPostVar('enable_archiving')->getChecked() == true) { $this->testOBJ->setEnableArchiving(false); ilUtil::sendInfo($this->lng->txt('no_archive_on_anonymous'), true); } else { $this->testOBJ->setEnableArchiving($form->getItemByPostVar('enable_archiving')->getChecked()); } } if (!$this->isHiddenFormItem('highscore_enabled')) { // highscore settings $this->testOBJ->setHighscoreEnabled((bool) $form->getItemByPostVar('highscore_enabled')->getChecked()); $this->testOBJ->setHighscoreAnon((bool) $form->getItemByPostVar('highscore_anon')->getChecked()); $this->testOBJ->setHighscoreAchievedTS((bool) $form->getItemByPostVar('highscore_achieved_ts')->getChecked()); $this->testOBJ->setHighscoreScore((bool) $form->getItemByPostVar('highscore_score')->getChecked()); $this->testOBJ->setHighscorePercentage((bool) $form->getItemByPostVar('highscore_percentage')->getChecked()); $this->testOBJ->setHighscoreHints((bool) $form->getItemByPostVar('highscore_hints')->getChecked()); $this->testOBJ->setHighscoreWTime((bool) $form->getItemByPostVar('highscore_wtime')->getChecked()); $this->testOBJ->setHighscoreMode((int) $form->getItemByPostVar('highscore_mode')->getValue()); $this->testOBJ->setHighscoreTopNum((int) $form->getItemByPostVar('highscore_top_num')->getValue()); } // store settings to db $this->testOBJ->saveToDb(true); }