|
|
|
Environment:
|
PHP 4.4.6 and MySQL 5.0.27 running on Linux/Apache
|
|
Issue Links:
|
Relates
|
|
|
|
This issue has been marked as being related by:
|
|
MDL-11142
Enrolment data discarded during upgrade
|
|
|
|
|
|
MDL-17949 List of problems related to potential enrolment rewrite in 2.0 - META
|
|
|
|
|
|
|
|
To reproduce:
1. Enter a course that has an enrollment duration specified in its settings.
2. Click "Assign Roles" in the Administration panel.
3. Click "Student" under Roles.
4. Select a student in the "potential users" pane on the right and click the left-arrow button to assign that user as a student in the course.
5. Check (using something like phpMyAdmin) the new entry in mdl_role_assignments. Its "timestart" and "timeend" values will each be "0".
A quick and dirty fix:
In the file admin/roles/assign.php, add the following two lines of code around line 142 (in 1.8.1):
$timestart = time();
$timeend = time() + $course->enrolperiod;
I am not a Moodle developer and am not familiar with the intricacies and dependencies of the code in this file, so this should be used with caution. Hopefully a real Moodle developer can check into it.
A final observation:
At the top of admin/roles/assign.php is a series of parameter checks. This includes $timestart and $timeend, although apparently these do not actually do anything (since timestart and timeend have to be defined manually, as in the code above, to have any values). Having said that, there is a typo in line 19:
$timeend = optional_param('timened', 0, PARAM_INT);
Should be:
$timeend = optional_param('timeend', 0, PARAM_INT);
|
|
Description
|
To reproduce:
1. Enter a course that has an enrollment duration specified in its settings.
2. Click "Assign Roles" in the Administration panel.
3. Click "Student" under Roles.
4. Select a student in the "potential users" pane on the right and click the left-arrow button to assign that user as a student in the course.
5. Check (using something like phpMyAdmin) the new entry in mdl_role_assignments. Its "timestart" and "timeend" values will each be "0".
A quick and dirty fix:
In the file admin/roles/assign.php, add the following two lines of code around line 142 (in 1.8.1):
$timestart = time();
$timeend = time() + $course->enrolperiod;
I am not a Moodle developer and am not familiar with the intricacies and dependencies of the code in this file, so this should be used with caution. Hopefully a real Moodle developer can check into it.
A final observation:
At the top of admin/roles/assign.php is a series of parameter checks. This includes $timestart and $timeend, although apparently these do not actually do anything (since timestart and timeend have to be defined manually, as in the code above, to have any values). Having said that, there is a typo in line 19:
$timeend = optional_param('timened', 0, PARAM_INT);
Should be:
$timeend = optional_param('timeend', 0, PARAM_INT);
|
Show » |
| No commits have yet been performed on this issue.
|
|