1
0
mirror of https://github.com/moodle/moodle.git synced 2025-04-23 17:34:56 +02:00

Merge branch 'MDL-55360-master-workshopgradepass' of git://github.com/mudrd8mz/moodle

This commit is contained in:
Dan Poltawski 2016-08-01 18:57:00 +01:00
commit 6349765c44
3 changed files with 99 additions and 8 deletions

@ -82,11 +82,11 @@ function workshop_add_instance(stdclass $workshop) {
$workshop->evaluation = 'best';
if (isset($workshop->gradinggradepass)) {
$workshop->gradinggradepass = unformat_float($workshop->gradinggradepass);
$workshop->gradinggradepass = (float)unformat_float($workshop->gradinggradepass);
}
if (isset($workshop->submissiongradepass)) {
$workshop->submissiongradepass = unformat_float($workshop->submissiongradepass);
$workshop->submissiongradepass = (float)unformat_float($workshop->submissiongradepass);
}
if (isset($workshop->submissionfiletypes)) {
@ -158,11 +158,11 @@ function workshop_update_instance(stdclass $workshop) {
$workshop->phaseswitchassessment = (int)!empty($workshop->phaseswitchassessment);
if (isset($workshop->gradinggradepass)) {
$workshop->gradinggradepass = unformat_float($workshop->gradinggradepass);
$workshop->gradinggradepass = (float)unformat_float($workshop->gradinggradepass);
}
if (isset($workshop->submissiongradepass)) {
$workshop->submissiongradepass = unformat_float($workshop->submissiongradepass);
$workshop->submissiongradepass = (float)unformat_float($workshop->submissiongradepass);
}
if (isset($workshop->submissionfiletypes)) {

@ -396,9 +396,9 @@ class mod_workshop_mod_form extends moodleform_mod {
}
// Check that the submission grade pass is a valid number.
if (isset($data['submissiongradepass'])) {
if (!empty($data['submissiongradepass'])) {
$submissiongradefloat = unformat_float($data['submissiongradepass'], true);
if ($submissiongradefloat === false || $submissiongradefloat === null) {
if ($submissiongradefloat === false) {
$errors['submissiongradepass'] = get_string('err_numeric', 'form');
} else {
if ($submissiongradefloat > $data['grade']) {
@ -408,9 +408,9 @@ class mod_workshop_mod_form extends moodleform_mod {
}
// Check that the grade pass is a valid number.
if (isset($data['gradinggradepass'])) {
if (!empty($data['gradinggradepass'])) {
$gradepassfloat = unformat_float($data['gradinggradepass'], true);
if ($gradepassfloat === false || $gradepassfloat === null) {
if ($gradepassfloat === false) {
$errors['gradinggradepass'] = get_string('err_numeric', 'form');
} else {
if ($gradepassfloat > $data['gradinggrade']) {

@ -0,0 +1,91 @@
@mod @mod_workshop
Feature: Setting grades to pass via workshop editing form
In order to define grades to pass
As a teacher
I can set them in the workshop settings form, without the need to go to the gradebook
Background:
Given the following "users" exist:
| username | firstname | lastname | email |
| teacher1 | Terry1 | Teacher1 | teacher1@example.com |
And the following "courses" exist:
| fullname | shortname |
| Course1 | c1 |
And the following "course enrolments" exist:
| user | course | role |
| teacher1 | c1 | editingteacher |
Scenario: Adding a new workshop with grade to pass field set
Given I log in as "teacher1"
And I follow "Course1"
And I turn editing mode on
When I add a "Workshop" to section "1" and I fill the form with:
| Workshop name | Awesome workshop |
| Description | Grades to pass are set here |
| Submission grade to pass | 45 |
| Assessment grade to pass | 10.5 |
Then I should not see "Adding a new Workshop"
And I follow "Awesome workshop"
And I navigate to "Edit settings" node in "Workshop administration"
And the field "Submission grade to pass" matches value "45.00"
And the field "Assessment grade to pass" matches value "10.50"
Scenario: Adding a new workshop with grade to pass fields left empty
Given I log in as "teacher1"
And I follow "Course1"
And I turn editing mode on
When I add a "Workshop" to section "1" and I fill the form with:
| Workshop name | Another awesome workshop |
| Description | No grades to pass are set here |
| Submission grade to pass | |
| Assessment grade to pass | |
Then I should not see "Adding a new Workshop"
And I follow "Another awesome workshop"
And I navigate to "Edit settings" node in "Workshop administration"
And the field "Submission grade to pass" matches value "0.00"
And the field "Assessment grade to pass" matches value "0.00"
Scenario: Adding a new workshop with non-numeric value of a grade to pass
Given I log in as "teacher1"
And I follow "Course1"
And I turn editing mode on
When I add a "Workshop" to section "1" and I fill the form with:
| Workshop name | Almost awesome workshop |
| Description | Invalid grade to pass is set here |
| Assessment grade to pass | You shall not pass! |
Then I should see "Adding a new Workshop"
And I should see "You must enter a number here"
Scenario: Adding a new workshop with invalid value of a grade to pass
Given I log in as "teacher1"
And I follow "Course1"
And I turn editing mode on
When I add a "Workshop" to section "1" and I fill the form with:
| Workshop name | Almost awesome workshop |
| Description | Invalid grade to pass is set here |
| Assessment grade to pass | 10000000 |
Then I should see "Adding a new Workshop"
And I should see "The grade to pass can not be greater than the maximum possible grade"
Scenario: Emptying grades to pass fields sets them to zero
Given I log in as "teacher1"
And I follow "Course1"
And I turn editing mode on
And I add a "Workshop" to section "1" and I fill the form with:
| Workshop name | Super awesome workshop |
| Description | Grade to pass are set and then unset here |
| Submission grade to pass | 59.99 |
| Assessment grade to pass | 0.000 |
And I should not see "Adding a new Workshop"
And I follow "Super awesome workshop"
And I navigate to "Edit settings" node in "Workshop administration"
And the field "Submission grade to pass" matches value "59.99"
And the field "Assessment grade to pass" matches value "0.00"
When I set the field "Submission grade to pass" to ""
And I set the field "Assessment grade to pass" to ""
And I press "Save and display"
Then I should not see "Adding a new Workshop"
And I follow "Super awesome workshop"
And I navigate to "Edit settings" node in "Workshop administration"
And the field "Submission grade to pass" matches value "0.00"
And the field "Assessment grade to pass" matches value "0.00"