make_testplan_form.php 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. <?php
  2. // This file is part of Moodle - http://moodle.org/
  3. //
  4. // Moodle is free software: you can redistribute it and/or modify
  5. // it under the terms of the GNU General Public License as published by
  6. // the Free Software Foundation, either version 3 of the License, or
  7. // (at your option) any later version.
  8. //
  9. // Moodle is distributed in the hope that it will be useful,
  10. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. // GNU General Public License for more details.
  13. //
  14. // You should have received a copy of the GNU General Public License
  15. // along with Moodle. If not, see <http://www.gnu.org/licenses/>.
  16. /**
  17. * Test plan form.
  18. *
  19. * @package tool_generator
  20. * @copyright 2013 David Monllaó
  21. * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  22. */
  23. defined('MOODLE_INTERNAL') || die();
  24. require_once($CFG->libdir . '/formslib.php');
  25. /**
  26. * Form with options for creating large course.
  27. *
  28. * @package tool_generator
  29. * @copyright 2013 David Monllaó
  30. * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  31. */
  32. class tool_generator_make_testplan_form extends moodleform {
  33. /**
  34. * Test plan form definition.
  35. *
  36. * @return void
  37. */
  38. public function definition() {
  39. $mform = $this->_form;
  40. $mform->addElement('select', 'size', get_string('size', 'tool_generator'),
  41. tool_generator_testplan_backend::get_size_choices());
  42. $mform->setDefault('size', tool_generator_testplan_backend::DEFAULT_SIZE);
  43. $mform->addElement('select', 'courseid', get_string('targetcourse', 'tool_generator'),
  44. tool_generator_testplan_backend::get_course_options());
  45. $mform->addElement('advcheckbox', 'updateuserspassword', get_string('updateuserspassword', 'tool_generator'));
  46. $mform->addHelpButton('updateuserspassword', 'updateuserspassword', 'tool_generator');
  47. $mform->addElement('submit', 'submit', get_string('createtestplan', 'tool_generator'));
  48. }
  49. /**
  50. * Checks that the submitted data allows us to create a test plan.
  51. *
  52. * @param array $data
  53. * @param array $files
  54. * @return array An array of errors
  55. */
  56. public function validation($data, $files) {
  57. global $CFG;
  58. $errors = array();
  59. if (empty($CFG->tool_generator_users_password) || is_bool($CFG->tool_generator_users_password)) {
  60. $errors['updateuserspassword'] = get_string('error_nouserspassword', 'tool_generator');
  61. }
  62. // Better to repeat here the query than to do it afterwards and end up with an exception.
  63. if ($courseerrors = tool_generator_testplan_backend::has_selected_course_any_problem($data['courseid'], $data['size'])) {
  64. $errors = array_merge($errors, $courseerrors);
  65. }
  66. return $errors;
  67. }
  68. }