gradebook_edit_result.php 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. /* For licensing terms, see /license.txt */
  3. /**
  4. * Script.
  5. *
  6. * @package chamilo.gradebook
  7. */
  8. require_once __DIR__.'/../inc/global.inc.php';
  9. api_block_anonymous_users();
  10. GradebookUtils::block_students();
  11. $select_eval = (int) $_GET['selecteval'];
  12. if (empty($select_eval)) {
  13. api_not_allowed();
  14. }
  15. $resultedit = Result::load(null, null, $select_eval);
  16. $evaluation = Evaluation::load($select_eval);
  17. $evaluation[0]->check_lock_permissions();
  18. $edit_result_form = new EvalForm(
  19. EvalForm::TYPE_ALL_RESULTS_EDIT,
  20. $evaluation[0],
  21. $resultedit,
  22. 'edit_result_form',
  23. null,
  24. api_get_self().'?selecteval='.$select_eval.'&'.api_get_cidreq()
  25. );
  26. if ($edit_result_form->validate()) {
  27. $values = $edit_result_form->exportValues();
  28. $scores = $values['score'];
  29. foreach ($scores as $userId => $score) {
  30. /** @var array $resultedit */
  31. $resultedit = Result::load($userId);
  32. /** @var Result $result */
  33. $result = $resultedit[0];
  34. if (empty($score)) {
  35. $score = 0;
  36. }
  37. $score = api_number_format($score, api_get_setting('gradebook_number_decimals'));
  38. $result->set_score($score);
  39. $result->save();
  40. $allowMultipleAttempts = api_get_configuration_value('gradebook_multiple_evaluation_attempts');
  41. if ($allowMultipleAttempts) {
  42. $table = Database::get_main_table(TABLE_MAIN_GRADEBOOK_RESULT_ATTEMPT);
  43. $now = api_get_utc_datetime();
  44. $params = [
  45. 'result_id' => $result->get_id(),
  46. 'score' => $score,
  47. 'comment' => '',
  48. 'created_at' => $now,
  49. 'updated_at' => $now,
  50. ];
  51. Database::insert($table, $params);
  52. }
  53. }
  54. Display::addFlash(Display::return_message(get_lang('AllResultsEdited')));
  55. header('Location: gradebook_view_result.php?selecteval='.$select_eval.'&'.api_get_cidreq());
  56. exit;
  57. }
  58. $table = $edit_result_form->toHtml();
  59. $interbreadcrumb[] = [
  60. 'url' => Category::getUrl(),
  61. 'name' => get_lang('Gradebook'),
  62. ];
  63. $interbreadcrumb[] = [
  64. 'url' => 'gradebook_view_result.php?selecteval='.$select_eval.'&'.api_get_cidreq(),
  65. 'name' => get_lang('ViewResult'),
  66. ];
  67. Display::display_header(get_lang('EditResult'));
  68. DisplayGradebook::display_header_result($evaluation[0], null, 0, 0);
  69. echo $table;
  70. Display :: display_footer();