diff --git a/.github/workflows/moodle-ci.yml b/.github/workflows/moodle-ci.yml index 5ae01946..d3e3a4f8 100644 --- a/.github/workflows/moodle-ci.yml +++ b/.github/workflows/moodle-ci.yml @@ -115,18 +115,6 @@ jobs: - php: '8.2' moodle-branch: 'MOODLE_401_STABLE' include: - - php: '7.4' - moodle-branch: 'MOODLE_39_STABLE' - database: 'mariadb' - - php: '7.4' - moodle-branch: 'MOODLE_39_STABLE' - database: 'pgsql' - - php: '8.0' - moodle-branch: 'MOODLE_311_STABLE' - database: 'mariadb' - - php: '8.0' - moodle-branch: 'MOODLE_311_STABLE' - database: 'pgsql' - php: '8.0' moodle-branch: 'MOODLE_400_STABLE' database: 'mariadb' diff --git a/lang/en/ratingallocate.php b/lang/en/ratingallocate.php index 325b03e9..3c676d85 100644 --- a/lang/en/ratingallocate.php +++ b/lang/en/ratingallocate.php @@ -278,6 +278,7 @@ $string['edit_choice'] = 'Edit choice'; $string['rating_endtime'] = 'Rating ends at'; $string['rating_begintime'] = 'Rating begins at'; +$string['choice_navigation'] = 'Choices'; $string['newchoicetitle'] = 'New choice {$a}'; $string['deletechoice'] = 'Delete choice'; $string['publishdate'] = 'Estimated publication date'; diff --git a/lib.php b/lib.php index c1bed7d3..57d77ec5 100644 --- a/lib.php +++ b/lib.php @@ -40,6 +40,7 @@ // define('NEWMODULE_ULTIMATE_ANSWER', 42); require_once(dirname(__FILE__) . '/db/db_structure.php'); +require_once(dirname(__FILE__) . '/locallib.php'); use mod_ratingallocate\db as this_db; @@ -381,6 +382,23 @@ function ratingallocate_extend_navigation(navigation_node $navref, stdclass $cou * {@link navigation_node} */ function ratingallocate_extend_settings_navigation(settings_navigation $settingsnav, navigation_node $ratingallocatenode = null) { + $hassecondary = $settingsnav->get_page()->has_secondary_navigation(); + if (!$context = context_module::instance($settingsnav->get_page()->cm->id, IGNORE_MISSING)) { + throw new \moodle_exception('badcontext'); + } + if (has_capability('mod/ratingallocate:modify_choices', $context)) { + $choicenode = navigation_node::create(get_string('choice_navigation', RATINGALLOCATE_MOD_NAME), + new moodle_url('/mod/ratingallocate/view.php', ['id' => $settingsnav->get_page()->cm->id, 'action' => ACTION_SHOW_CHOICES]), + navigation_node::TYPE_CUSTOM, null, 'mod_ratingallocate_choices'); + $ratingallocatenode->add_node($choicenode); + } + + if (has_capability('mod/ratingallocate:start_distribution', $context)) { + $reportsnode = navigation_node::create(get_string('reports_group', RATINGALLOCATE_MOD_NAME), + new moodle_url('/mod/ratingallocate/view.php', ['id' => $settingsnav->get_page()->cm->id, 'action' => ACTION_SHOW_RATINGS_AND_ALLOCATION_TABLE]), + navigation_node::TYPE_CUSTOM, null, 'mod_ratingallocate_reports'); + $ratingallocatenode->add_node($reportsnode); + } } diff --git a/locallib.php b/locallib.php index 137c7c7e..17853780 100644 --- a/locallib.php +++ b/locallib.php @@ -390,8 +390,10 @@ private function process_action_delete_rating() { private function process_action_show_choices() { if (has_capability('mod/ratingallocate:modify_choices', $this->context)) { - global $OUTPUT; + global $OUTPUT, $PAGE; + $PAGE->set_secondary_active_tab('mod_ratingallocate_choices'); $renderer = $this->get_renderer(); + $status = $this->get_status(); // Notifications if no choices exist or too few in comparison to strategy settings. $availablechoices = $this->get_rateable_choices(); @@ -409,6 +411,11 @@ private function process_action_show_choices() { echo $renderer->render_header($this->ratingallocate, $this->context, $this->coursemodule->id); echo $OUTPUT->heading(get_string('show_choices_header', RATINGALLOCATE_MOD_NAME)); + // Get description dependent on status + $descriptionbaseid = 'modify_choices_group_desc_'; + $description = get_string($descriptionbaseid . $status, RATINGALLOCATE_MOD_NAME); + echo $renderer->format_text($description); + $renderer->ratingallocate_show_choices_table($this, true); echo $OUTPUT->single_button(new moodle_url('/mod/ratingallocate/view.php', array('id' => $this->coursemodule->id)), get_string('back'), 'get'); @@ -422,7 +429,8 @@ private function process_action_edit_choice() { $output = ''; if (has_capability('mod/ratingallocate:modify_choices', $this->context)) { - global $OUTPUT; + global $OUTPUT, $PAGE; + $PAGE->set_secondary_active_tab('mod_ratingallocate_choices'); $choiceid = optional_param('choiceid', 0, PARAM_INT); if ($choiceid) { @@ -506,6 +514,7 @@ private function process_action_upload_choices() { $output = ''; if (has_capability('mod/ratingallocate:modify_choices', $this->context)) { global $OUTPUT; + $PAGE->set_secondary_active_tab('mod_ratingallocate_choices'); $url = new moodle_url('/mod/ratingallocate/view.php', array('id' => $this->coursemodule->id, @@ -959,20 +968,21 @@ public function distribute_users_without_choice(string $distributionalgorithm): private function process_action_show_ratings_and_alloc_table() { $output = ''; + // Print ratings table. if (has_capability('mod/ratingallocate:start_distribution', $this->context)) { - global $OUTPUT; + global $OUTPUT, $PAGE; + $PAGE->set_secondary_active_tab('mod_ratingallocate_reports'); $renderer = $this->get_renderer(); + $status = $this->get_status(); + $output .= $renderer->reports_group($this->ratingallocateid, $this->coursemodule->id, $status, $this->context, ACTION_SHOW_RATINGS_AND_ALLOCATION_TABLE); + $output .= $renderer->ratings_table_for_ratingallocate($this->get_rateable_choices(), $this->get_ratings_for_rateable_choices(), $this->get_raters_in_course(), $this->get_allocations(), $this); $output = html_writer::div($output, 'ratingallocate_ratings_table_container'); - $output .= html_writer::empty_tag('br', array()); - $output .= $OUTPUT->single_button(new moodle_url('/mod/ratingallocate/view.php', array( - 'id' => $this->coursemodule->id)), get_string('back'), 'get'); - // Logging. $event = \mod_ratingallocate\event\ratings_and_allocation_table_viewed::create_simple( context_module::instance($this->coursemodule->id), $this->ratingallocateid); @@ -983,16 +993,17 @@ private function process_action_show_ratings_and_alloc_table() { private function process_action_show_allocation_table() { $output = ''; + // Print ratings table. if (has_capability('mod/ratingallocate:start_distribution', $this->context)) { - global $OUTPUT; + global $OUTPUT, $PAGE; + $PAGE->set_secondary_active_tab('mod_ratingallocate_reports'); $renderer = $this->get_renderer(); + $status = $this->get_status(); + $output .= $renderer->reports_group($this->ratingallocateid, $this->coursemodule->id, $status, $this->context, ACTION_SHOW_ALLOCATION_TABLE); $output .= $renderer->allocation_table_for_ratingallocate($this); - $output .= html_writer::empty_tag('br', array()); - $output .= $OUTPUT->single_button(new moodle_url('/mod/ratingallocate/view.php', - array('id' => $this->coursemodule->id)), get_string('back'), 'get'); // Logging. $event = \mod_ratingallocate\event\allocation_table_viewed::create_simple( context_module::instance($this->coursemodule->id), $this->ratingallocateid); @@ -1005,14 +1016,14 @@ private function process_action_show_statistics() { $output = ''; // Print ratings table. if (has_capability('mod/ratingallocate:start_distribution', $this->context)) { - global $OUTPUT; + global $OUTPUT, $PAGE; + $PAGE->set_secondary_active_tab('mod_ratingallocate_reports'); $renderer = $this->get_renderer(); + $status = $this->get_status(); + $output .= $renderer->reports_group($this->ratingallocateid, $this->coursemodule->id, $status, $this->context, ACTION_SHOW_STATISTICS); $output .= $renderer->statistics_table_for_ratingallocate($this); - $output .= html_writer::empty_tag('br', array()); - $output .= $OUTPUT->single_button(new moodle_url('/mod/ratingallocate/view.php', - array('id' => $this->coursemodule->id)), get_string('back'), 'get'); // Logging. $event = \mod_ratingallocate\event\allocation_statistics_viewed::create_simple( context_module::instance($this->coursemodule->id), $this->ratingallocateid); @@ -1070,10 +1081,6 @@ private function process_default() { } } } - // Print data and controls to edit the choices. - if (has_capability('mod/ratingallocate:modify_choices', $this->context)) { - $output .= $renderer->modify_choices_group($this->ratingallocateid, $this->coursemodule->id, $status); - } // Print data and controls for teachers. if (has_capability('mod/ratingallocate:start_distribution', $this->context)) { @@ -1082,7 +1089,7 @@ private function process_default() { $undistributeduserscount, (int) $this->ratingallocate->algorithmstatus, (boolean) $this->ratingallocate->runalgorithmbycron); $output .= $renderer->publish_allocation_group($this->ratingallocateid, $this->coursemodule->id, $status); - $output .= $renderer->reports_group($this->ratingallocateid, $this->coursemodule->id, $status, $this->context); + // $output .= $renderer->reports_group($this->ratingallocateid, $this->coursemodule->id, $status, $this->context); } // Logging. diff --git a/renderer.php b/renderer.php index aa270ba4..65a90d0a 100644 --- a/renderer.php +++ b/renderer.php @@ -405,25 +405,20 @@ public function publish_allocation_group($ratingallocateid, $coursemoduleid, $st /** * Output the ratingallocate modfify allocation */ - public function reports_group($ratingallocateid, $coursemoduleid, $status, $context) { + public function reports_group($ratingallocateid, $coursemoduleid, $status, $context, $action = '') { $output = ''; $output .= $this->heading(get_string('reports_group', RATINGALLOCATE_MOD_NAME), 2); $output .= $this->box_start(); - $tableurl = new moodle_url($this->page->url, array('action' => ACTION_SHOW_RATINGS_AND_ALLOCATION_TABLE)); - - // Button with link to display information about the allocations and ratings. - $output .= $this->single_button($tableurl, get_string('show_table', RATINGALLOCATE_MOD_NAME), 'get'); - - $tableurl = new moodle_url($this->page->url, array('action' => ACTION_SHOW_ALLOCATION_TABLE)); - - // Button with link to display information about the allocations and ratings. - $output .= $this->single_button($tableurl, get_string('show_allocation_table', RATINGALLOCATE_MOD_NAME), 'get'); - - $tableurl = new moodle_url($this->page->url, array('action' => ACTION_SHOW_STATISTICS)); - - // Buttton with link to display statistical information about the allocations. - $output .= $this->single_button($tableurl, get_string('show_allocation_statistics', RATINGALLOCATE_MOD_NAME), 'get'); + $output .= $this->output->single_select( + new moodle_url('/mod/ratingallocate/view.php', array('id' => $coursemoduleid)), + 'action', array( + ACTION_SHOW_RATINGS_AND_ALLOCATION_TABLE => get_string('show_table', RATINGALLOCATE_MOD_NAME), + ACTION_SHOW_ALLOCATION_TABLE => get_string('show_allocation_table', RATINGALLOCATE_MOD_NAME), + ACTION_SHOW_STATISTICS => get_string('show_allocation_statistics', RATINGALLOCATE_MOD_NAME) + ), + $action + ); /* TODO: File not readable $output .= html_writer::empty_tag('br', array()); diff --git a/tests/behat/allocation_status.feature b/tests/behat/allocation_status.feature index 7b84c26f..f7cd1fb8 100644 --- a/tests/behat/allocation_status.feature +++ b/tests/behat/allocation_status.feature @@ -21,52 +21,51 @@ Feature: Students should get status information according to their rating and th | activity | course | idnumber | name | accesstimestart | | ratingallocate | C1 | ra1 | My Fair Allocation | ##yesterday## | And I log in as "teacher1" - And I am on the "My Fair Allocation" "ratingallocate activity" page - And I press "Edit Choices" + And I am on the "My Fair Allocation" "mod_ratingallocate > Choices" page And I add a new choice with the values: | title | My only choice | | Description (optional) | Test | | maxsize | 1 | And I log out And I log in as "student1" - And I am on the "My Fair Allocation" "ratingallocate activity" page + And I am on the "My Fair Allocation" "mod_ratingallocate > View" page And I press "Edit Rating" And I press "Save changes" And I log out And I log in as "student2" - And I am on the "My Fair Allocation" "ratingallocate activity" page + And I am on the "My Fair Allocation" "mod_ratingallocate > View" page And I press "Edit Rating" And I click on "Deny" "radio" And I press "Save changes" And I log out And I log in as "teacher1" - And I am on the "My Fair Allocation" "ratingallocate activity editing" page + And I am on the "My Fair Allocation" "mod_ratingallocate > Edit" page And I set the following fields to these values: | Rating begins at | ##2 days ago## | | Rating ends at | ##yesterday## | And I press "id_submitbutton" And I run the scheduled task "mod_ratingallocate\task\cron_task" - And I am on the "My Fair Allocation" "ratingallocate activity" page + And I am on the "My Fair Allocation" "mod_ratingallocate > View" page And I press "Publish Allocation" And I log out @javascript Scenario: As a user, who rated and was allocated, I should see my allocated choice. When I log in as "student1" - And I am on the "My Fair Allocation" "ratingallocate activity" page + And I am on the "My Fair Allocation" "mod_ratingallocate > View" page Then I should see "My only choice" in the "//*[contains(@class, 'allocation')]" "xpath_element" And I should see "My only choice" in the "//*[contains(@class, 'alert-success')]" "xpath_element" @javascript Scenario: As a user, who rated and was not allocated, I should see a warning. When I log in as "student2" - And I am on the "My Fair Allocation" "ratingallocate activity" page + And I am on the "My Fair Allocation" "mod_ratingallocate > View" page Then I should see "You were not allocated to any choice!" in the "//*[contains(@class, 'allocation')]" "xpath_element" And I should see "You could not be allocated to any choice." in the "//*[contains(@class, 'alert-danger')]" "xpath_element" @javascript Scenario: As a user, who did not rate, I should not see my allocated choice When I log in as "student3" - And I am on the "My Fair Allocation" "ratingallocate activity" page + And I am on the "My Fair Allocation" "mod_ratingallocate > View" page Then I should not see "Your Allocation" And I should see "The rating is over." in the "//*[contains(@class, 'alert-info')]" "xpath_element" diff --git a/tests/behat/behat_mod_ratingallocate.php b/tests/behat/behat_mod_ratingallocate.php index 4f657182..b5800c39 100644 --- a/tests/behat/behat_mod_ratingallocate.php +++ b/tests/behat/behat_mod_ratingallocate.php @@ -572,4 +572,85 @@ public function i_rate_choices_with_the_following_points(TableNode $ratingdata) } } + /** + * Convert page names to URLs for steps like 'When I am on the "mod_ratingallocate > [page name]" page'. + * + * Recognised page names are: + * | None so far! | | + * + * @param string $page name of the page, with the component name removed e.g. 'Edit'. + * @return moodle_url the corresponding URL. + * @throws Exception with a meaningful error message if the specified page cannot be found. + */ + protected function resolve_page_url(string $page): moodle_url { + switch (strtolower($page)) { + default: + throw new Exception('Unrecognised mod_ratingallocate page type "' . $page . '."'); + } + } + + /** + * Convert page names to URLs for steps like 'When I am on the "[identifier]" "[page type]" page'. + * + * Recognised page names are: + * | pagetype | name meaning | description | + * | View | Ratingallocate name | The ratingallocate info page | + * | Edit | Ratingallocate name | The edit ratingallocate page | + * | Choices | Ratingallocate name | The page for editing choices | + * | Reports | Ratingallocate name | The page for reports and statistics | + * + * @param string $type identifies which type of page this is, e.g. 'mod_ratingallocate > Choices'. + * @param string $identifier identifies the particular page, e.g. 'My Fair Allocation'. + * @return moodle_url the corresponding URL. + * @throws Exception with a meaningful error message if the specified page cannot be found. + */ + protected function resolve_page_instance_url(string $type, string $identifier): moodle_url { + + switch (strtolower($type)) { + case 'view': + return new moodle_url('/mod/ratingallocate/view.php', + ['id' => $this->get_cm_by_ratingallocate_name($identifier)->id]); + + case 'edit': + return new moodle_url('/course/modedit.php', [ + 'update' => $this->get_cm_by_ratingallocate_name($identifier)->id]); + + case 'choices': + return new moodle_url('/mod/ratingallocate/view.php', [ + 'id' => $this->get_cm_by_ratingallocate_name($identifier)->id, 'action' => ACTION_SHOW_CHOICES + ]); + + case 'reports': + return new moodle_url('/mod/ratingallocate/view.php', [ + 'id' => $this->get_cm_by_ratingallocate_name($identifier)->id, + 'action' => ACTION_SHOW_RATINGS_AND_ALLOCATION_TABLE + ]); + + default: + throw new Exception('Unrecognised ratingallocate page type "' . $type . '."'); + } + } + + /** + * Get a ratingallocate instance by name. + * + * @param string $name ratingallocate name. + * @return stdClass the corresponding DB row. + */ + protected function get_ratingallocate_by_name(string $name): stdClass { + global $DB; + return $DB->get_record('ratingallocate', ['name' => $name], '*', MUST_EXIST); + } + + /** + * Get a ratingallocate cmid from the ratingallocate name. + * + * @param string $name ratingallocate name. + * @return stdClass cm from get_coursemodule_from_instance. + */ + protected function get_cm_by_ratingallocate_name(string $name): stdClass { + $ratingallocate = $this->get_ratingallocate_by_name($name); + return get_coursemodule_from_instance('ratingallocate', $ratingallocate->id, $ratingallocate->course); + } + } diff --git a/tests/behat/defaultratings.feature b/tests/behat/defaultratings.feature index 2ed5abe2..76bb0b2e 100644 --- a/tests/behat/defaultratings.feature +++ b/tests/behat/defaultratings.feature @@ -18,8 +18,7 @@ Feature: When a student starts a rating the default values of all choices | activity | course | idnumber | name | | ratingallocate | C1 | ra1 | My Fair Allocation | And I log in as "teacher1" - And I am on the "My Fair Allocation" "ratingallocate activity" page - And I press "Edit Choices" + And I am on the "My Fair Allocation" "mod_ratingallocate > Choices" page And I add a new choice with the values: | title | My first choice | | Description (optional) | Test 1 | @@ -31,12 +30,12 @@ Feature: When a student starts a rating the default values of all choices @javascript Scenario: The default rating is the max rating - And I am on the "My Fair Allocation" "ratingallocate activity editing" page + And I am on the "My Fair Allocation" "mod_ratingallocate > Edit" page And I select "strategy_lickert" from the "strategy" singleselect And I press "id_submitbutton" And I log out When I log in as "student1" - And I am on the "My Fair Allocation" "ratingallocate activity" page + And I am on the "My Fair Allocation" "mod_ratingallocate > View" page And I press "Edit Rating" Then I should see the following rating form: | My first choice | 4 | @@ -44,13 +43,13 @@ Feature: When a student starts a rating the default values of all choices @javascript Scenario: The default rating should be changeable to a medium rating - And I am on the "My Fair Allocation" "ratingallocate activity editing" page + And I am on the "My Fair Allocation" "mod_ratingallocate > Edit" page And I select "strategy_lickert" from the "strategy" singleselect And I select "3" from the "strategyopt[strategy_lickert][default]" singleselect And I press "id_submitbutton" And I log out When I log in as "student1" - And I am on the "My Fair Allocation" "ratingallocate activity" page + And I am on the "My Fair Allocation" "mod_ratingallocate > View" page And I press "Edit Rating" Then I should see the following rating form: | My first choice | 3 | @@ -58,13 +57,13 @@ Feature: When a student starts a rating the default values of all choices @javascript Scenario: The default rating should be changeable to the lowest rating - And I am on the "My Fair Allocation" "ratingallocate activity editing" page + And I am on the "My Fair Allocation" "mod_ratingallocate > Edit" page And I select "strategy_lickert" from the "strategy" singleselect And I select "0" from the "strategyopt[strategy_lickert][default]" singleselect And I press "id_submitbutton" And I log out When I log in as "student1" - And I am on the "My Fair Allocation" "ratingallocate activity" page + And I am on the "My Fair Allocation" "mod_ratingallocate > View" page And I press "Edit Rating" Then I should see the following rating form: | My first choice | 0 | @@ -72,12 +71,12 @@ Feature: When a student starts a rating the default values of all choices @javascript Scenario: The default rating is the max rating - And I am on the "My Fair Allocation" "ratingallocate activity editing" page + And I am on the "My Fair Allocation" "mod_ratingallocate > Edit" page And I select "strategy_lickert" from the "strategy" singleselect And I press "id_submitbutton" And I log out When I log in as "student1" - And I am on the "My Fair Allocation" "ratingallocate activity" page + And I am on the "My Fair Allocation" "mod_ratingallocate > View" page And I press "Edit Rating" And I set the rating form to the following values: | My first choice | 2 | diff --git a/tests/behat/manual_allocation.feature b/tests/behat/manual_allocation.feature index 734816be..ad1a2963 100644 --- a/tests/behat/manual_allocation.feature +++ b/tests/behat/manual_allocation.feature @@ -34,7 +34,7 @@ Feature: Teachers should be able to alter the allocations manually. Scenario: As a teacher, I want to allocate a so far not allocated user. And I log in as "teacher1" - And I am on the "My Fair Allocation" "ratingallocate activity" page + And I am on the "My Fair Allocation" "mod_ratingallocate > View" page And I press "Manual Allocation Form" Then I should see "Steve" assigned to "C1" And I should see "Steve" not assigned to "C2" diff --git a/tests/behat/mod_form.feature b/tests/behat/mod_form.feature index 225f0fdd..0b6a6585 100644 --- a/tests/behat/mod_form.feature +++ b/tests/behat/mod_form.feature @@ -18,8 +18,7 @@ Feature: Creating a new rating allocation, where new choices need to And I am on "Course 1" course homepage with editing mode on And I add a "Fair Allocation" to section "0" and I fill the form with: | id_name | My Fair Allocation | - And I am on the "My Fair Allocation" "ratingallocate activity" page - And I press "Edit Choices" + And I am on the "My Fair Allocation" "mod_ratingallocate > Choices" page And I add a new choice with the values: | title | My first choice | | Description (optional) | Test 1 | @@ -113,19 +112,19 @@ Feature: Creating a new rating allocation, where new choices need to And the choice with name "My fourth choice" should not be active Scenario: Create a new rating alloation and check the field runalgorithmbycron. It should be saved as true. - When I am on the "My Fair Allocation" "ratingallocate activity editing" page + When I am on the "My Fair Allocation" "mod_ratingallocate > Edit" page And I set the field "runalgorithmbycron" to "1" And I press "id_submitbutton" - And I am on the "My Fair Allocation" "ratingallocate activity editing" page + And I am on the "My Fair Allocation" "mod_ratingallocate > Edit" page Then the field "runalgorithmbycron" matches value "1" Scenario: Create a new rating alloation and uncheck the field runalgorithmbycron. It should be saved as false. - When I am on the "My Fair Allocation" "ratingallocate activity editing" page + When I am on the "My Fair Allocation" "mod_ratingallocate > Edit" page And I set the field "runalgorithmbycron" to "" And I press "id_submitbutton" - And I am on the "My Fair Allocation" "ratingallocate activity editing" page + And I am on the "My Fair Allocation" "mod_ratingallocate > Edit" page Then the field "runalgorithmbycron" matches value "" Scenario: Create a new rating alloation and assume the default for the field runalgorithmbycron is true. - When I am on the "My Fair Allocation" "ratingallocate activity editing" page + When I am on the "My Fair Allocation" "mod_ratingallocate > Edit" page Then the field "runalgorithmbycron" matches value "1" diff --git a/tests/behat/ratings.feature b/tests/behat/ratings.feature index 844092ef..1bd8a17d 100644 --- a/tests/behat/ratings.feature +++ b/tests/behat/ratings.feature @@ -17,8 +17,7 @@ Feature: When a student rates a rating should be saved and it should be possible | activity | course | idnumber | name | | ratingallocate | C1 | ra1 | My Fair Allocation | And I log in as "teacher1" - And I am on the "My Fair Allocation" "ratingallocate activity" page - And I press "Edit Choices" + And I am on the "My Fair Allocation" "mod_ratingallocate > Choices" page And I add a new choice with the values: | title | My first choice | | Description (optional) | Test 1 | @@ -36,7 +35,7 @@ Feature: When a student rates a rating should be saved and it should be possible @javascript Scenario: The user can create a rating When I log in as "student1" - And I am on the "My Fair Allocation" "ratingallocate activity" page + And I am on the "My Fair Allocation" "mod_ratingallocate > View" page And I press "Edit Rating" And I press "Save changes" Then the user "student1" should have ratings @@ -44,7 +43,7 @@ Feature: When a student rates a rating should be saved and it should be possible @javascript Scenario: The user can delete a rating When I log in as "student1" - And I am on the "My Fair Allocation" "ratingallocate activity" page + And I am on the "My Fair Allocation" "mod_ratingallocate > View" page And I press "Edit Rating" And I press "Save changes" Then the user "student1" should have ratings diff --git a/tests/behat/validate_rating.feature b/tests/behat/validate_rating.feature index 5ae606b0..e680a12d 100644 --- a/tests/behat/validate_rating.feature +++ b/tests/behat/validate_rating.feature @@ -20,8 +20,7 @@ Feature: When a student attempts to rate choices it should be validated prior to | strategy | strategy_points | | Rating begins at | ##2 days ago## | | strategyopt[strategy_points][maxzero] | 2 | - And I am on the "Validated Rating" "ratingallocate activity" page - And I press "Edit Choices" + And I am on the "Validated Rating" "mod_ratingallocate > Choices" page And I add a new choice with the values: | title | My first choice | | Description (optional) | Test 1 | @@ -42,7 +41,7 @@ Feature: When a student attempts to rate choices it should be validated prior to Scenario: The user cannot enter values less than 0. When I log in as "student1" - And I am on the "Validated Rating" "ratingallocate activity" page + And I am on the "Validated Rating" "mod_ratingallocate > View" page And I press "Edit Rating" And I rate choices with the following points: | My first choice | -1 | @@ -54,7 +53,7 @@ Feature: When a student attempts to rate choices it should be validated prior to Scenario: The values entered by the user must sum up to the (default) maximum. When I log in as "student1" - And I am on the "Validated Rating" "ratingallocate activity" page + And I am on the "Validated Rating" "mod_ratingallocate > View" page And I press "Edit Rating" And I rate choices with the following points: | My first choice | 1 | @@ -66,7 +65,7 @@ Feature: When a student attempts to rate choices it should be validated prior to Scenario: The user may not rate more than a (default) number of choices with 0. When I log in as "student1" - And I am on the "Validated Rating" "ratingallocate activity" page + And I am on the "Validated Rating" "mod_ratingallocate > View" page And I press "Edit Rating" And I rate choices with the following points: | My first choice | 0 |