Uploaded image for project: 'Moodle'
  1. Moodle
  2. MDL-7315

Give time/date extensions to individual students for course activities.

    Details

    • Affected Branches:
      MOODLE_17_STABLE, MOODLE_18_STABLE, MOODLE_19_STABLE, MOODLE_20_STABLE, MOODLE_28_STABLE

      Description

      Have the ability to extend time/date limitations for activities for individual students. It would be nice to be able to set this at a course OR student level.

      Discussed in various ways at:

      http://moodle.org/mod/forum/discuss.php?d=57271
      http://moodle.org/mod/forum/discuss.php?d=52690&parent=241064

      and probably others.

        Gliffy Diagrams

        1. patch.txt
          77 kB
          yogeshrl
        1. mainExtensionsWindow.png
          150 kB
        2. override_edit.png
          71 kB
        3. override_list.png
          38 kB
        4. singleUserExtension.png
          129 kB

          Issue Links

            Activity

            Hide
            aborrow Anthony Borrow added a comment -

            As per, http://moodle.org/mod/forum/discuss.php?d=57271 for quizzes and lessons this would help accomodate what we refer to as extended time. I think with one table the extension of times could be handled on a per user basis. I think the interface for adding the entries would be the more complicated part.

            Show
            aborrow Anthony Borrow added a comment - As per, http://moodle.org/mod/forum/discuss.php?d=57271 for quizzes and lessons this would help accomodate what we refer to as extended time. I think with one table the extension of times could be handled on a per user basis. I think the interface for adding the entries would be the more complicated part.
            Hide
            timtak Timothy Takemoto added a comment -

            Bearing in mind the
            http://tracker.moodle.org/browse/MDL-4464
            bug, I often have to extend quiz submission times for students, I do this with a password and general extension but as was pointed out in other forums, this is confusing to other students, who think that they should be able to take the test and ask me what the password is.

            Show
            timtak Timothy Takemoto added a comment - Bearing in mind the http://tracker.moodle.org/browse/MDL-4464 bug, I often have to extend quiz submission times for students, I do this with a password and general extension but as was pointed out in other forums, this is confusing to other students, who think that they should be able to take the test and ask me what the password is.
            Hide
            aborrow Anthony Borrow added a comment -

            FYI - Just to update here that in MDL-14234 we were discussing a way of implementing adding time extensions for user activities. Peace - Anthony

            Show
            aborrow Anthony Borrow added a comment - FYI - Just to update here that in MDL-14234 we were discussing a way of implementing adding time extensions for user activities. Peace - Anthony
            Hide
            aborrow Anthony Borrow added a comment -

            adding 1.8, 1.9, and 2.0 to list of affected versions. I doubt this will be fixed in versions prior to 2.0. Perhaps we can get an updated fix version from Nick. Peace - Anthony

            Show
            aborrow Anthony Borrow added a comment - adding 1.8, 1.9, and 2.0 to list of affected versions. I doubt this will be fixed in versions prior to 2.0. Perhaps we can get an updated fix version from Nick. Peace - Anthony
            Hide
            blepoxp Glenn Ansley added a comment -

            Hello,
            I've taken a swing at this. It's a big swing so I'm going to assume a miss followed by several revisions with your help. I've not undertaken a patch this big for Moodle core before so please offer advice where needed.

            Modifications made (per conversation here, in the forums, and on MDL-14234):

            • I created a new class inside the lib/ folder. I've constructed this class in a manner that any activity module should be able to use it to create individual student/cm extensions or 'customizations' to any of the db fields that activity normally supports.
            • I've added one table to the DB structure
            • I've updated the install.xml and the upgrade.php files to handle that.
            • I've modified the Quiz module to demonstrate how integration could take place.

            Caveats

            • I have developed this for Moodle 1.9.11 as that is what version I needed it for
            • I've written this with hopes of it being brushed up by the community and included in core so its not written as a module.
            • I've only prototyped - though extensively - so there are no translation strings available yet and i imagine custom capabilities might be suggested.
            • Because I created it for core and not for a module, you will need to bump your main Moodle version # to get the tables installed.

            Use

            • Create a quiz w/o starttime, endtime, or timelimit
            • Attempt the quiz with multiple students (or multiple times with one student)
            • Go back to the Edit Quiz screen
            • Navigate to the bottom and assign an extension to a student for the quiz. (extend the timeclose for them or something)
            • Log back in as a student and see that quiz has been updated.

            Notes

            • Regrade compensates for changed values
            • The class I added to the /lib folder has PHPDoc so use that if you need to.
            • I'm probably forgetting to mention something else.

            Warning DO NOT INSTALL THIS ON PRODUCTION. THIS IS NOT SAFE FOR PRODUCTION.

            You can pull my modifications here: https://github.com/glennansley/moodle/tree/MDL-7315-time-date-extensions

            I look forward to your feedback.

            Show
            blepoxp Glenn Ansley added a comment - Hello, I've taken a swing at this. It's a big swing so I'm going to assume a miss followed by several revisions with your help. I've not undertaken a patch this big for Moodle core before so please offer advice where needed. Modifications made (per conversation here, in the forums, and on MDL-14234 ): I created a new class inside the lib/ folder. I've constructed this class in a manner that any activity module should be able to use it to create individual student/cm extensions or 'customizations' to any of the db fields that activity normally supports. I've added one table to the DB structure I've updated the install.xml and the upgrade.php files to handle that. I've modified the Quiz module to demonstrate how integration could take place. Caveats I have developed this for Moodle 1.9.11 as that is what version I needed it for I've written this with hopes of it being brushed up by the community and included in core so its not written as a module. I've only prototyped - though extensively - so there are no translation strings available yet and i imagine custom capabilities might be suggested. Because I created it for core and not for a module, you will need to bump your main Moodle version # to get the tables installed. Use Create a quiz w/o starttime, endtime, or timelimit Attempt the quiz with multiple students (or multiple times with one student) Go back to the Edit Quiz screen Navigate to the bottom and assign an extension to a student for the quiz. (extend the timeclose for them or something) Log back in as a student and see that quiz has been updated. Notes Regrade compensates for changed values The class I added to the /lib folder has PHPDoc so use that if you need to. I'm probably forgetting to mention something else. Warning DO NOT INSTALL THIS ON PRODUCTION. THIS IS NOT SAFE FOR PRODUCTION. You can pull my modifications here: https://github.com/glennansley/moodle/tree/MDL-7315-time-date-extensions I look forward to your feedback.
            Hide
            timhunt Tim Hunt added a comment -

            I assume you spotted that this has already been implemented in the quiz module in Moodle 2.0. (Of course, it would be better to implement this in a way that works in all modules eventually.)

            Show
            timhunt Tim Hunt added a comment - I assume you spotted that this has already been implemented in the quiz module in Moodle 2.0. (Of course, it would be better to implement this in a way that works in all modules eventually.)
            Hide
            blepoxp Glenn Ansley added a comment -

            I honestly didn't look at 2.0 because that's probably a year out at this point for us. I will now though. I'd be interested to see how you do your interface and probably mimic that.

            Show
            blepoxp Glenn Ansley added a comment - I honestly didn't look at 2.0 because that's probably a year out at this point for us. I will now though. I'd be interested to see how you do your interface and probably mimic that.
            Hide
            drex Mark Drechsler added a comment -

            Can this please have the 'partner' tag added? It is one on my hit list for clients - even if its not as pressing as rubric grading forms

            Show
            drex Mark Drechsler added a comment - Can this please have the 'partner' tag added? It is one on my hit list for clients - even if its not as pressing as rubric grading forms
            Hide
            aborrow Anthony Borrow added a comment -

            Mark - Since this is working for the quiz activity module, I would think that a similar strategy could be applied to all modules as Tim mentions. Seems like a reasonable request as I like to see that type of consistency with activity modules. Peace - Anthony

            Show
            aborrow Anthony Borrow added a comment - Mark - Since this is working for the quiz activity module, I would think that a similar strategy could be applied to all modules as Tim mentions. Seems like a reasonable request as I like to see that type of consistency with activity modules. Peace - Anthony
            Hide
            aborrow Anthony Borrow added a comment -

            I'm bumping the priority of this to major and set the fix version to dev backlog. I'll let one of the Michael's do the tagging of the issue. Peace - Anthony

            Show
            aborrow Anthony Borrow added a comment - I'm bumping the priority of this to major and set the fix version to dev backlog. I'll let one of the Michael's do the tagging of the issue. Peace - Anthony
            Hide
            drex Mark Drechsler added a comment -

            Sounds like a plan Anthony - love the way it works in quizzes, having this extended to other activities.

            Cheers,

            Mark.

            Show
            drex Mark Drechsler added a comment - Sounds like a plan Anthony - love the way it works in quizzes, having this extended to other activities. Cheers, Mark.
            Hide
            mblake Michael Blake added a comment -

            This issue is affecting MP clients. Please give it priority.

            Show
            mblake Michael Blake added a comment - This issue is affecting MP clients. Please give it priority.
            Hide
            salvetore Michael de Raadt added a comment -

            Bumping priority on this.

            Show
            salvetore Michael de Raadt added a comment - Bumping priority on this.
            Hide
            timhunt Tim Hunt added a comment -

            Did you read the comments above before adding component quiz? Seemingly not. This was implemented in the quiz for Moodle 2.1 - so no more work needed there.

            Show
            timhunt Tim Hunt added a comment - Did you read the comments above before adding component quiz? Seemingly not. This was implemented in the quiz for Moodle 2.1 - so no more work needed there.
            Hide
            aolley Adam Olley added a comment -

            I've posted a proposed way of handling this that'd work for all activities on the forums.

            http://moodle.org/mod/forum/discuss.php?d=183478

            Very much RFC. Let me know if I'm on the right track or completely mad.

            Cheers,
            Adam.

            Show
            aolley Adam Olley added a comment - I've posted a proposed way of handling this that'd work for all activities on the forums. http://moodle.org/mod/forum/discuss.php?d=183478 Very much RFC. Let me know if I'm on the right track or completely mad. Cheers, Adam.
            Hide
            drex Mark Drechsler added a comment -

            Anyone got any comments on Adam's suggested implementation? Like many, I would love to see Tim's quiz solution implemented in at the very least the Assignment module, which is where I get the majority of queries around how to make extensions for individuals and groups.

            Keep voting, keep talking.

            Show
            drex Mark Drechsler added a comment - Anyone got any comments on Adam's suggested implementation? Like many, I would love to see Tim's quiz solution implemented in at the very least the Assignment module, which is where I get the majority of queries around how to make extensions for individuals and groups. Keep voting, keep talking.
            Hide
            timhunt Tim Hunt added a comment -

            Adam's suggested implementation is too simplistic. There is no way that this can be done completely generically, because different activities have different DB columns that need to be overridden.

            Compare this with Moodle works for editing the basic activity settings. The mod has to create all the DB columns itself; it has be define the editing form; it has to provide specific add/update_instance functions.

            To implement overrides 'generally' you would require at least that much specific support from each module. Not impossible, but a substantial task.

            My suggestion would be that whoever wants to implement this should first implement it in a single module (e.g. assignment) while looking at the quiz code and basically copying it. Only then, once there are two different working implementations, so you try to refactor this into a generic system with callbacks in the modules.

            Show
            timhunt Tim Hunt added a comment - Adam's suggested implementation is too simplistic. There is no way that this can be done completely generically, because different activities have different DB columns that need to be overridden. Compare this with Moodle works for editing the basic activity settings. The mod has to create all the DB columns itself; it has be define the editing form; it has to provide specific add/update_instance functions. To implement overrides 'generally' you would require at least that much specific support from each module. Not impossible, but a substantial task. My suggestion would be that whoever wants to implement this should first implement it in a single module (e.g. assignment) while looking at the quiz code and basically copying it. Only then, once there are two different working implementations, so you try to refactor this into a generic system with callbacks in the modules.
            Hide
            aolley Adam Olley added a comment -

            All the main interface would require is to know which user you want to apply an override for, and the new override time(s)/setting(s). The modules can decide themselves what they apply those to, if at all.

            It seems far less work would be involved in having modules define a FEATURE_OVERRIDE in their supports method and to then provide a function or two to supply stuff like a list of possible fields to be overriden and their type.

            Naturally any module that will support this will need to alter its checks on any override-able fields to make sure they haven't been overridden.

            Merely copying how its done in quiz for another mod, say assignment (where this is most requested), would pretty much be a carbon copy and bring us no closer to a generic solution.

            What may be a good idea is rather than one big table for overrides site-wide, you instead have a table per supported module (much like we have quiz_overrides). This would give each module more control over its override data (and would be beneficial for lookups and other stuff like backup/restore).

            Show
            aolley Adam Olley added a comment - All the main interface would require is to know which user you want to apply an override for, and the new override time(s)/setting(s). The modules can decide themselves what they apply those to, if at all. It seems far less work would be involved in having modules define a FEATURE_OVERRIDE in their supports method and to then provide a function or two to supply stuff like a list of possible fields to be overriden and their type. Naturally any module that will support this will need to alter its checks on any override-able fields to make sure they haven't been overridden. Merely copying how its done in quiz for another mod, say assignment (where this is most requested), would pretty much be a carbon copy and bring us no closer to a generic solution. What may be a good idea is rather than one big table for overrides site-wide, you instead have a table per supported module (much like we have quiz_overrides). This would give each module more control over its override data (and would be beneficial for lookups and other stuff like backup/restore).
            Hide
            yogeshrl yogeshrl added a comment -

            Hi all,
            I want to Participant to this issue , how should i go for it?

            Show
            yogeshrl yogeshrl added a comment - Hi all, I want to Participant to this issue , how should i go for it?
            Hide
            mhughes2k Michael Hughes added a comment -

            We would like to issue "permits" (for lack of a better term) for late submission (this is typically specifically around assignment submissions). These would 'administratively' grant a student the ability to submit a piece of work late and take some sort of sanction (or none) that would be applied against the grade they get for the activity.

            In my head it makes sense for this to be applied at the Gradebook level as the sanction is modifier of the result of their performance rather than a modifier before the performance result is reported (if that makes sense).

            It would seem to me that a separate "Extensions Manager" module could implement the necessary database tables to record the issue(and revocation) of permits and then a gradebook report could display the information. I'm not sure how this could be implemented with the current gradebook API for updating grade items (so that a permit's sanction is applied to raw grade as it is being reported to the gradebook) without core changes...

            It also potentially raises the prospect that you could have "stacking" permits (e.g. 1st extension applies a 10%, 2nd one applies an additional 10% etc).

            The only permit I can think of at the moment is "extend submission deadline".

            Show
            mhughes2k Michael Hughes added a comment - We would like to issue "permits" (for lack of a better term) for late submission (this is typically specifically around assignment submissions). These would 'administratively' grant a student the ability to submit a piece of work late and take some sort of sanction (or none) that would be applied against the grade they get for the activity. In my head it makes sense for this to be applied at the Gradebook level as the sanction is modifier of the result of their performance rather than a modifier before the performance result is reported (if that makes sense). It would seem to me that a separate "Extensions Manager" module could implement the necessary database tables to record the issue(and revocation) of permits and then a gradebook report could display the information. I'm not sure how this could be implemented with the current gradebook API for updating grade items (so that a permit's sanction is applied to raw grade as it is being reported to the gradebook) without core changes... It also potentially raises the prospect that you could have "stacking" permits (e.g. 1st extension applies a 10%, 2nd one applies an additional 10% etc). The only permit I can think of at the moment is "extend submission deadline".
            Hide
            yogeshrl yogeshrl added a comment -

            hello all,
            I have almost finished the coding part of giving time/date extensions to individual students for assignment module.
            I am going to send a patch in upcoming 2-3 days, before that I have some doubts.

            1)Display strings (lang) must be added into the lang pack.I am thinking to create the local lang for this, am i right, if not, Tell me what to do? and how to do?

            2)There should be button to open the main window of extensions. considering the capabilities are given to teacher , editing teacher, manager. Where do I add this button/link so that user with specified capability can see the button/link? and how to add this?

            3) I have added a new table (assignment_extensions) in to database manually. how to add this new table into database, so others can upgrade there database to use this functionality.

            please give me some suggestion to do this, that will finalize my work and i can switch to new task.

            thanks..

            see screenshots attached above how this feature look likes.

            Show
            yogeshrl yogeshrl added a comment - hello all, I have almost finished the coding part of giving time/date extensions to individual students for assignment module. I am going to send a patch in upcoming 2-3 days, before that I have some doubts. 1)Display strings (lang) must be added into the lang pack.I am thinking to create the local lang for this, am i right, if not, Tell me what to do? and how to do? 2)There should be button to open the main window of extensions. considering the capabilities are given to teacher , editing teacher, manager. Where do I add this button/link so that user with specified capability can see the button/link? and how to add this? 3) I have added a new table (assignment_extensions) in to database manually. how to add this new table into database, so others can upgrade there database to use this functionality. please give me some suggestion to do this, that will finalize my work and i can switch to new task. thanks.. see screenshots attached above how this feature look likes.
            Hide
            yogeshrl yogeshrl added a comment - - edited

            see the attachment above, How does it look like.
            1)main extension window. -> displays the all all users the the course and extension table, different filters are also provided like 1) show all, extended, requireextension etc. Also provides a way to give one or more student extension by selecting "QUICKEXTEND".

            2)single user extension window -> display the all info about the single user, his extension field, and lots more.

            please help me to do task maintained in above post.

            thanks..

            Show
            yogeshrl yogeshrl added a comment - - edited see the attachment above, How does it look like. 1)main extension window. -> displays the all all users the the course and extension table, different filters are also provided like 1) show all, extended, requireextension etc. Also provides a way to give one or more student extension by selecting "QUICKEXTEND". 2)single user extension window -> display the all info about the single user, his extension field, and lots more. please help me to do task maintained in above post. thanks..
            Hide
            ray Ray Lawrence added a comment -

            Where do you access the page to grant extensions?

            Show
            ray Ray Lawrence added a comment - Where do you access the page to grant extensions?
            Hide
            yogeshrl yogeshrl added a comment - - edited

            For the main extensions window, I need to type url every time.
            like..
            localhost/moodle/mod/assignment/extensions.php?id=2 or
            localhost/moodle/mod/assignment/extensions.php?a=3

            Here value of "id" is course module id and "a" is assignment id. you can see attachment url also.
            After loading the main window, buttons are provided for displaying single user extension in the main window.
            so, where do I link the main window? considering the capabilities are given to teacher, editing teacher, manager .

            Show
            yogeshrl yogeshrl added a comment - - edited For the main extensions window, I need to type url every time. like.. localhost/moodle/mod/assignment/extensions.php?id=2 or localhost/moodle/mod/assignment/extensions.php?a=3 Here value of "id" is course module id and "a" is assignment id. you can see attachment url also. After loading the main window, buttons are provided for displaying single user extension in the main window. so, where do I link the main window? considering the capabilities are given to teacher, editing teacher, manager .
            Hide
            yogeshrl yogeshrl added a comment -

            Hello all,
            I have solved the problem (how to add a new table in database) as stated in earlier post.I fixed it using XMLDB and changing install.xml version.php upgrade.php.
            Until now I could't fix..
            1) how to add lang (display string ) in newly created feature(patch).
            2) Button that will display main extensions window for selected assignment, which has input course_module id or assignment id, Considering capabilities are given to teacher, editing teacher and manager.

            Thanks.

            Show
            yogeshrl yogeshrl added a comment - Hello all, I have solved the problem (how to add a new table in database) as stated in earlier post.I fixed it using XMLDB and changing install.xml version.php upgrade.php. Until now I could't fix.. 1) how to add lang (display string ) in newly created feature(patch). 2) Button that will display main extensions window for selected assignment, which has input course_module id or assignment id, Considering capabilities are given to teacher, editing teacher and manager. Thanks.
            Hide
            mikidream miki Alliel added a comment -

            hello yogeshrl '
            is this only for moodle 2?
            is it also to moodle 1.9.x?
            thanks

            Show
            mikidream miki Alliel added a comment - hello yogeshrl ' is this only for moodle 2? is it also to moodle 1.9.x? thanks
            Hide
            yogeshrl yogeshrl added a comment -

            I am writing it in moodle 2.2+ code, so it will be functional in moodle 2.2+ and further versions.
            For making it functional in lower versions, I need to change some some part of code ( functions that are part of moodle 2.2+ versions and not of moodle 1.9+, which I am using in extensions code), not more than 10 line of code.
            I am sending patch in few hours here. please check it and give me feedback.

            Show
            yogeshrl yogeshrl added a comment - I am writing it in moodle 2.2+ code, so it will be functional in moodle 2.2+ and further versions. For making it functional in lower versions, I need to change some some part of code ( functions that are part of moodle 2.2+ versions and not of moodle 1.9+, which I am using in extensions code), not more than 10 line of code. I am sending patch in few hours here. please check it and give me feedback.
            Hide
            yogeshrl yogeshrl added a comment -

            I am sending patch here, I think, I don't have permissions to add label, so i am sending patch.txt file through attachment. Please promote this patch. If possible I will be giving github pull url.

            HOW TO TEST.
            0) your moodle version must be moodle2.2+
            1) merge this patch in your moodle
            2) upgrade your moodle
            3) create a course and provide a assignment(any type) by setting up timedue and preventlate.
            4) login as teacher or admin.
            5) click on assignment to view it, that will display assignment. If you are logged in as teacher, then will get a link below and right of assignment dates. click on that, main extensions window will be displayed, containing all student in the course who are have permission to submit assignment.
            5) give extension to the student, on using various options like "Quickextend" or "extend". You can give multiple extension at a time by selecting "Quickextend" option. Also provided comment text box helps to give feedback to the student who has given extension, when they view assignment.
            6) Option like final are really helpful for not to give extension to student many times.
            7) After providing extension, login as a student, view the assignment, you will get all extension details like how much extension given and time due of assignment including extension. The upload link will be available until the extension date of that student.
            8) login as another student who haven't given extension, view assignment, will display original assignment dates and link will be available as per timedue of assignment.

            Other features....
            1) When teacher opens the grading window, the student who had given extension will be displayed in faint red color along with the extension time and submission time. This will be helpful for teacher while grading student.
            2) Another hack is that when teacher is in single user grading window, there also he/she can view extension time, and submission time.

            Different options...
            1) filters are provided like extended, require extension, per page extensions to show etc.
            2) save, saveandnext, next, cancel buttons are provided.
            3) for open assignment means not set preventlate and time, no require extension facility is provided.

            Future work....
            1) handling groups in the course.
            2) giving extension to the group.

            PLEASE PROMOTE THIS PATCH, THIS WILL BE MINIMAL VERSION OF EXTENSION TO COURSE ACTIVITY, WE WILL BE PLANING TO DO OTHER TASKS LIKE EXTENSION TO QUIZ AND LESSON MODULE.

            Show
            yogeshrl yogeshrl added a comment - I am sending patch here, I think, I don't have permissions to add label, so i am sending patch.txt file through attachment. Please promote this patch. If possible I will be giving github pull url. HOW TO TEST. 0) your moodle version must be moodle2.2+ 1) merge this patch in your moodle 2) upgrade your moodle 3) create a course and provide a assignment(any type) by setting up timedue and preventlate. 4) login as teacher or admin. 5) click on assignment to view it, that will display assignment. If you are logged in as teacher, then will get a link below and right of assignment dates. click on that, main extensions window will be displayed, containing all student in the course who are have permission to submit assignment. 5) give extension to the student, on using various options like "Quickextend" or "extend". You can give multiple extension at a time by selecting "Quickextend" option. Also provided comment text box helps to give feedback to the student who has given extension, when they view assignment. 6) Option like final are really helpful for not to give extension to student many times. 7) After providing extension, login as a student, view the assignment, you will get all extension details like how much extension given and time due of assignment including extension. The upload link will be available until the extension date of that student. 8) login as another student who haven't given extension, view assignment, will display original assignment dates and link will be available as per timedue of assignment. Other features.... 1) When teacher opens the grading window, the student who had given extension will be displayed in faint red color along with the extension time and submission time. This will be helpful for teacher while grading student. 2) Another hack is that when teacher is in single user grading window, there also he/she can view extension time, and submission time. Different options... 1) filters are provided like extended, require extension, per page extensions to show etc. 2) save, saveandnext, next, cancel buttons are provided. 3) for open assignment means not set preventlate and time, no require extension facility is provided. Future work.... 1) handling groups in the course. 2) giving extension to the group. PLEASE PROMOTE THIS PATCH, THIS WILL BE MINIMAL VERSION OF EXTENSION TO COURSE ACTIVITY, WE WILL BE PLANING TO DO OTHER TASKS LIKE EXTENSION TO QUIZ AND LESSON MODULE.
            Hide
            yogeshrl yogeshrl added a comment -

            patch

            patch.txt for giving time/date extension to individual students to assignment module.

            Show
            yogeshrl yogeshrl added a comment - patch patch.txt for giving time/date extension to individual students to assignment module.
            Hide
            damyon Damyon Wiese added a comment -

            This was implemented for the new assignment.

            Show
            damyon Damyon Wiese added a comment - This was implemented for the new assignment.
            Hide
            james.mclean James McLean added a comment -

            We have been working on a module for extensions in 2.4, which implements some advanced functionality. We are aiming this at being usable for all activities in Moodle, rather than just Assign.

            For a full rundown of what our module supports and the progress on porting to 2.4 from 1.9, have a read of: https://moodle.org/mod/forum/discuss.php?d=216784

            In line with Tim's comments above, we're willing to do the work to implement this properly so that any module can be modified to use it, as we will be doing it anyway one way or another.

            I will contact Tim to discuss.

            Show
            james.mclean James McLean added a comment - We have been working on a module for extensions in 2.4, which implements some advanced functionality. We are aiming this at being usable for all activities in Moodle, rather than just Assign. For a full rundown of what our module supports and the progress on porting to 2.4 from 1.9, have a read of: https://moodle.org/mod/forum/discuss.php?d=216784 In line with Tim's comments above, we're willing to do the work to implement this properly so that any module can be modified to use it, as we will be doing it anyway one way or another. I will contact Tim to discuss.
            Hide
            nadavkav Nadav Kavalerchik added a comment -

            @James,
            Beautiful work! with the Global Time Extension plugin you are developing.
            I am Looking forward to see it in action, when it is ready for testing.

            Show
            nadavkav Nadav Kavalerchik added a comment - @James, Beautiful work! with the Global Time Extension plugin you are developing. I am Looking forward to see it in action, when it is ready for testing.
            Hide
            james.mclean James McLean added a comment -

            Following the guidelines at: http://docs.moodle.org/dev/Process#New_feature_development I have begun work on a specification to outline implementing this in the Core; initially I have focused mainly on the actual core changes required, however I have touched on exactly what functionality our code will bring, and suggested a couple of ways it could be implemented.

            The specification is located here: http://docs.moodle.org/dev/Moodle_Activity_Extensions_Spec but should be considered a draft for the moment. I have created a tracker issue https://tracker.moodle.org/browse/MDL-37505 to track suggestions to the specification so this can be implemented, so any suggestions should be made on that tracker item please.

            I am aware that the new item I have created is essentially a duplicate of this issue, however I felt the spec and it's discussion should be separated from this tracker item.

            Show
            james.mclean James McLean added a comment - Following the guidelines at: http://docs.moodle.org/dev/Process#New_feature_development I have begun work on a specification to outline implementing this in the Core; initially I have focused mainly on the actual core changes required, however I have touched on exactly what functionality our code will bring, and suggested a couple of ways it could be implemented. The specification is located here: http://docs.moodle.org/dev/Moodle_Activity_Extensions_Spec but should be considered a draft for the moment. I have created a tracker issue https://tracker.moodle.org/browse/MDL-37505 to track suggestions to the specification so this can be implemented, so any suggestions should be made on that tracker item please. I am aware that the new item I have created is essentially a duplicate of this issue, however I felt the spec and it's discussion should be separated from this tracker item.
            Hide
            timhunt Tim Hunt added a comment -

            One normally discusses specs in a forum, not a tracker issue. Your spec does not discuss performance implications. I think that what you are proposing is insufficient to handle batch operations. It will be a classic performance failure (DB query in a loop). It would also be better if you removed my name from that spec.

            Show
            timhunt Tim Hunt added a comment - One normally discusses specs in a forum, not a tracker issue. Your spec does not discuss performance implications. I think that what you are proposing is insufficient to handle batch operations. It will be a classic performance failure (DB query in a loop). It would also be better if you removed my name from that spec.
            Hide
            drex Mark Drechsler added a comment -

            ... but aside from all that, thanks for investing the time and effort to get a spec going for this development.

            One comment after a brief flick (leaving the serious work for Tim to pass judgement on of course) is that this will have an impact on the existing assignment module which already has some of this functionality built in to core, even if not using Tim's code for quiz extensions. Also, looking at the broadness in the scope of the changes, and having been through the Assignment upgrade project, I'd suggest that this will take a much more comprehensive spec, and a whole lot more discussion with HQ, before it would have any chance of being done - and even then it would probably need to be targeted for 2.6 - at best. Not meaning to sound pessimistic, just sharing previous experiences as an 'outsider' working to get changes made to core code.

            Show
            drex Mark Drechsler added a comment - ... but aside from all that, thanks for investing the time and effort to get a spec going for this development. One comment after a brief flick (leaving the serious work for Tim to pass judgement on of course) is that this will have an impact on the existing assignment module which already has some of this functionality built in to core, even if not using Tim's code for quiz extensions. Also, looking at the broadness in the scope of the changes, and having been through the Assignment upgrade project, I'd suggest that this will take a much more comprehensive spec, and a whole lot more discussion with HQ, before it would have any chance of being done - and even then it would probably need to be targeted for 2.6 - at best. Not meaning to sound pessimistic, just sharing previous experiences as an 'outsider' working to get changes made to core code.
            Hide
            mhughes2k Michael Hughes added a comment -

            Would it not then be feasible to have this as an interface that modules would be able to opt into over the next few version (*_supports('deadline') springs to mind)? instead of a big "bang lets upgrade every module"?

            If you strip it back surely the biggest core changes are (I'm glossing over lots of implementation details yes):

            1. every (instance of a) mod may observe a core deadline
            2. and every mod that supports (1) should be calling a function that might change the deadline reported by core.

            We have a "deadlines" block that amalgamates the deadlines from the quiz and assignment modules into a single chronological list for an individual user and just these 2 modules use different field names to store the "deadline" (timeclose and timedue). We'd like to extend this plugin to for other modules but we have to look at how each one stores its (student) deadline, so just ironing out this inconsistency would be nice.

            Show
            mhughes2k Michael Hughes added a comment - Would it not then be feasible to have this as an interface that modules would be able to opt into over the next few version (*_supports('deadline') springs to mind)? instead of a big "bang lets upgrade every module"? If you strip it back surely the biggest core changes are (I'm glossing over lots of implementation details yes): every (instance of a) mod may observe a core deadline and every mod that supports (1) should be calling a function that might change the deadline reported by core. We have a "deadlines" block that amalgamates the deadlines from the quiz and assignment modules into a single chronological list for an individual user and just these 2 modules use different field names to store the "deadline" (timeclose and timedue). We'd like to extend this plugin to for other modules but we have to look at how each one stores its (student) deadline, so just ironing out this inconsistency would be nice .
            Hide
            james.mclean James McLean added a comment -

            Thanks for the comments; the spec is definitely still in Draft and shouldn't be considered final. I'm a developer not a BA, so the time I can spend writing specs is limited but I will see what I can do. I am most interested in the best way to integrate it into Core at this point, from our perspective the extensions management is well defined (for our needs specifically, admittedly). I may be able to provide our internal spec, however I cannot do that without permission from superiors.

            @Tim: I'll remove your name. I created a thread in the forum last night as suggested in the wiki: https://moodle.org/mod/forum/discuss.php?d=219620. Apologies for implying discussion should take place in the tracker.

            @Mark: Yes that's an unfortunate side affect. Though if this does go ahead the advanced extensions management this new code will provide would probably be welcomed in a lot of situations. I realise this will take time to be implemented, 2.6 was my initial thought, but that doesn't stop us integrating locally and testing in our own environments - in fact its probably a good idea.

            @Michael: Thanks for your thoughts, that does sound like a good way to go. I'll investigate further.

            Show
            james.mclean James McLean added a comment - Thanks for the comments; the spec is definitely still in Draft and shouldn't be considered final. I'm a developer not a BA, so the time I can spend writing specs is limited but I will see what I can do. I am most interested in the best way to integrate it into Core at this point, from our perspective the extensions management is well defined (for our needs specifically, admittedly). I may be able to provide our internal spec, however I cannot do that without permission from superiors. @Tim: I'll remove your name. I created a thread in the forum last night as suggested in the wiki: https://moodle.org/mod/forum/discuss.php?d=219620 . Apologies for implying discussion should take place in the tracker. @Mark: Yes that's an unfortunate side affect. Though if this does go ahead the advanced extensions management this new code will provide would probably be welcomed in a lot of situations. I realise this will take time to be implemented, 2.6 was my initial thought, but that doesn't stop us integrating locally and testing in our own environments - in fact its probably a good idea. @Michael: Thanks for your thoughts, that does sound like a good way to go. I'll investigate further.
            Hide
            mhughes2k Michael Hughes added a comment -

            Just reading about Assignment Re-submission (https://tracker.moodle.org/browse/MDL-36804) development work and thought it should be raised in relation to any ideas about extension management (both on that issue and this one), since I think that they are related to each other!

            Show
            mhughes2k Michael Hughes added a comment - Just reading about Assignment Re-submission ( https://tracker.moodle.org/browse/MDL-36804 ) development work and thought it should be raised in relation to any ideas about extension management (both on that issue and this one), since I think that they are related to each other!
            Hide
            james.mclean James McLean added a comment -

            Just a quick heads up; My priorities were temporarily shifted the last two weeks onto another urgent task, but I'll be working on this again this week.

            Show
            james.mclean James McLean added a comment - Just a quick heads up; My priorities were temporarily shifted the last two weeks onto another urgent task, but I'll be working on this again this week.
            Hide
            james.mclean James McLean added a comment -

            I have been developing on this further locally against 2.5dev.

            Michael's suggestions seemed to be a good way to implement this, so I have started working on a deadline plugin architecture which borrows heavily from the way the Plagiarism plugin system is implemented. In conjunction with this I have been modifying the mod_assign module to use the deadlines plugin for storing it's opening/deadline/cutoff dates.

            So far I have a deadlines plugin which is a basic plugin that does the translation between the activity and the open/deadline dates it expects and the column names used in the deadlines table. Deadline loads the plugins it knows about (deadlines and extensions currently) each which will return a date, specifically in the case of the Extensions plugin it will check the relevant details of the activity and the user and return the extension date.
            I expect that at a point in the future the open/close/deadline column names in the relevant modules could be standardised, simplifying the deadlines code a little.

            There is a lot to be implemented yet, but what's here so far is a reasonable starting point which is very flexible and provides some excellent scope for future plugins.

            No public GIT code yet, due to my local network denying upload access (temporary, help desk issue lodged to have this allowed).

            Show
            james.mclean James McLean added a comment - I have been developing on this further locally against 2.5dev. Michael's suggestions seemed to be a good way to implement this, so I have started working on a deadline plugin architecture which borrows heavily from the way the Plagiarism plugin system is implemented. In conjunction with this I have been modifying the mod_assign module to use the deadlines plugin for storing it's opening/deadline/cutoff dates. So far I have a deadlines plugin which is a basic plugin that does the translation between the activity and the open/deadline dates it expects and the column names used in the deadlines table. Deadline loads the plugins it knows about (deadlines and extensions currently) each which will return a date, specifically in the case of the Extensions plugin it will check the relevant details of the activity and the user and return the extension date. I expect that at a point in the future the open/close/deadline column names in the relevant modules could be standardised, simplifying the deadlines code a little. There is a lot to be implemented yet, but what's here so far is a reasonable starting point which is very flexible and provides some excellent scope for future plugins. No public GIT code yet, due to my local network denying upload access (temporary, help desk issue lodged to have this allowed).
            Hide
            james.mclean James McLean added a comment - - edited

            The code for deadline/deadlines/extensions is getting to the point where it will shortly be ready for others to look at, I'm still waiting for my local network issue to be resolved (but there has been progress on that front) so I'm hoping by mid next week, I will have pushed to my GIT repo for others to have a look at it.

            The code has been written with production in mind, and as few changes to core and modules as possible.

            It is of course still under development, so of course is not 100% functional, but enough has been done that others should be able to say if we're on the right track or not, and offer suggestions for improvements.

            Show
            james.mclean James McLean added a comment - - edited The code for deadline/deadlines/extensions is getting to the point where it will shortly be ready for others to look at, I'm still waiting for my local network issue to be resolved (but there has been progress on that front) so I'm hoping by mid next week, I will have pushed to my GIT repo for others to have a look at it. The code has been written with production in mind, and as few changes to core and modules as possible. It is of course still under development, so of course is not 100% functional, but enough has been done that others should be able to say if we're on the right track or not, and offer suggestions for improvements.
            Hide
            james.mclean James McLean added a comment -

            I've made further progress on this, and updated my forum thread: https://moodle.org/mod/forum/discuss.php?d=216784#p970601

            Could I please ask that people have a look, and if you have any suggestions please make those in the thread?

            Show
            james.mclean James McLean added a comment - I've made further progress on this, and updated my forum thread: https://moodle.org/mod/forum/discuss.php?d=216784#p970601 Could I please ask that people have a look, and if you have any suggestions please make those in the thread?
            Hide
            james.mclean James McLean added a comment -

            Our deadlines/extensions code is nearly ready for our internal UAT and should go for that this week. I'm certain they'll find some issues, which I'll then need to resolve.
            The plan is that once it's passed our internal UAT i'll make the code public.

            In the meantime I am happy to provide a github link privately with the understanding it's probably broken; but i'm most interested in hearing feedback on the architecture and implementation.

            Show
            james.mclean James McLean added a comment - Our deadlines/extensions code is nearly ready for our internal UAT and should go for that this week. I'm certain they'll find some issues, which I'll then need to resolve. The plan is that once it's passed our internal UAT i'll make the code public. In the meantime I am happy to provide a github link privately with the understanding it's probably broken; but i'm most interested in hearing feedback on the architecture and implementation.
            Hide
            jacdsouza Jackson D'souza added a comment - - edited

            Hi James

            We are interested in having a look at your deadline/extenstion code, please can you email me the github link.

            Thanks
            Jackson
            jacksond at epic dot co dot uk

            Show
            jacdsouza Jackson D'souza added a comment - - edited Hi James We are interested in having a look at your deadline/extenstion code, please can you email me the github link. Thanks Jackson jacksond at epic dot co dot uk
            Hide
            james.mclean James McLean added a comment -

            Hi Jackson,
            Certainly. The github branch hasn't been maintained for a little while so lags behind updates that were required for 2.6. There has also been a lot of bugs we have resolved that are not on Github. I'll push my changes up shortly and let you know the details.
            Thanks

            Show
            james.mclean James McLean added a comment - Hi Jackson, Certainly. The github branch hasn't been maintained for a little while so lags behind updates that were required for 2.6. There has also been a lot of bugs we have resolved that are not on Github. I'll push my changes up shortly and let you know the details. Thanks
            Hide
            jacdsouza Jackson D'souza added a comment -

            That's great. Thanks James. Will wait for your reply

            Show
            jacdsouza Jackson D'souza added a comment - That's great. Thanks James. Will wait for your reply
            Hide
            jmvedrine Jean-Michel Vedrine added a comment -

            Hello,
            I have started my work to add user/group overrides to the lesson module. It is not yet finished but the IU is done and all the overrides management too.
            Most of this code is based on Tim Hunt's code for overrides in the quiz module, adapted to lesson specificities. So Moodle users familiar with quiz overrides should have no problem to use lesson overrides.
            What is missing is:

            • update group overrides when a group is deleted/updated or some members added/suppressed (it's not really clear in my mind yet )
            • write the actual code that merge lesson settings with the relevant overrides (I need to think more to the most effective way to do that)
              But as I want to post in the lesson forum about this to gather comments from the community, I will edit this issue to point to my repository branch.
              I will also attach a screenshot of the IU so that you get a grasp on what you can override on the lesson settings (I hope it will suit everyone needs )
            Show
            jmvedrine Jean-Michel Vedrine added a comment - Hello, I have started my work to add user/group overrides to the lesson module. It is not yet finished but the IU is done and all the overrides management too. Most of this code is based on Tim Hunt's code for overrides in the quiz module, adapted to lesson specificities. So Moodle users familiar with quiz overrides should have no problem to use lesson overrides. What is missing is: update group overrides when a group is deleted/updated or some members added/suppressed (it's not really clear in my mind yet ) write the actual code that merge lesson settings with the relevant overrides (I need to think more to the most effective way to do that) But as I want to post in the lesson forum about this to gather comments from the community, I will edit this issue to point to my repository branch. I will also attach a screenshot of the IU so that you get a grasp on what you can override on the lesson settings (I hope it will suit everyone needs )
            Hide
            jmvedrine Jean-Michel Vedrine added a comment -

            Despite this is not finished I have asked CiBot to point all the (numerous) problems and coding style mistakes so that I can improve code quality at the same time I finish this patch.

            Show
            jmvedrine Jean-Michel Vedrine added a comment - Despite this is not finished I have asked CiBot to point all the (numerous) problems and coding style mistakes so that I can improve code quality at the same time I finish this patch.
            Hide
            cibot CiBoT added a comment -

            Fails against automated checks.

            Checked MDL-7315 using repository: git://github.com/jmvedrine/moodle.git

            More information about this report

            Show
            cibot CiBoT added a comment - Fails against automated checks. Checked MDL-7315 using repository: git://github.com/jmvedrine/moodle.git Testing instructions are missing. master (46 errors / 6 warnings) [branch: MDL-7315 | CI Job ] phplint (1/0) , php (40/6) , js (0/0) , css (0/0) , phpdoc (5/0) , commit (0/0) , savepoint (0/0) , thirdparty (0/0) , More information about this report
            Hide
            jmvedrine Jean-Michel Vedrine added a comment -

            Screenshot of override edition

            Show
            jmvedrine Jean-Michel Vedrine added a comment - Screenshot of override edition
            Hide
            jmvedrine Jean-Michel Vedrine added a comment -

            Screenshot of the screen displaying all user overrides for a lesson. there is a similar screen for group overrides.

            Show
            jmvedrine Jean-Michel Vedrine added a comment - Screenshot of the screen displaying all user overrides for a lesson. there is a similar screen for group overrides.
            Hide
            jmvedrine Jean-Michel Vedrine added a comment -

            Only 46 errors and 6 warnings! This is very good news I was expecting a lot more!

            Show
            jmvedrine Jean-Michel Vedrine added a comment - Only 46 errors and 6 warnings! This is very good news I was expecting a lot more!
            Hide
            cibot CiBoT added a comment -

            Fails against automated checks.

            Checked MDL-7315 using repository: git://github.com/jmvedrine/moodle.git

            More information about this report

            Show
            cibot CiBoT added a comment - Fails against automated checks. Checked MDL-7315 using repository: git://github.com/jmvedrine/moodle.git Testing instructions are missing. master (8 errors / 0 warnings) [branch: MDL-7315 | CI Job ] phplint (0/0) , php (4/0) , js (0/0) , css (0/0) , phpdoc (4/0) , commit (0/0) , savepoint (0/0) , thirdparty (0/0) , More information about this report
            Hide
            cibot CiBoT added a comment -

            Fails against automated checks.

            Checked MDL-7315 using repository: git://github.com/jmvedrine/moodle.git

            More information about this report

            Show
            cibot CiBoT added a comment - Fails against automated checks. Checked MDL-7315 using repository: git://github.com/jmvedrine/moodle.git Testing instructions are missing. master (1 errors / 0 warnings) [branch: MDL-7315 | CI Job ] phplint (0/0) , php (0/0) , js (0/0) , css (0/0) , phpdoc (1/0) , commit (0/0) , savepoint (0/0) , thirdparty (0/0) , More information about this report
            Hide
            cibot CiBoT added a comment -

            Code verified against automated checks.

            Checked MDL-7315 using repository: git://github.com/jmvedrine/moodle.git

            More information about this report

            Show
            cibot CiBoT added a comment - Code verified against automated checks. Checked MDL-7315 using repository: git://github.com/jmvedrine/moodle.git master (0 errors / 0 warnings) [branch: MDL-7315 | CI Job ] More information about this report
            Hide
            jmvedrine Jean-Michel Vedrine added a comment -

            This should now be basically working but:

            • I need to check that the function that merge default lesson settings with overrides is working in all cases
            • maybe there are place in the lesson code where overrides are not properly applied. To correct this I just need to call $lesson->update_effective_access($USER->id); but it is hard to sport all the places where this need to be done.

            I made a big mistake in saying that the code for quiz overrides was from Tim Hunt, of course Tim participates a lot, giving advices and helping to improve the code, but most of this code is from Matt Petro of the University of Wisconsin - Madison Engineering School and Math Department. I should give him proper credit in the commit comment.

            Show
            jmvedrine Jean-Michel Vedrine added a comment - This should now be basically working but: I need to check that the function that merge default lesson settings with overrides is working in all cases maybe there are place in the lesson code where overrides are not properly applied. To correct this I just need to call $lesson->update_effective_access($USER->id); but it is hard to sport all the places where this need to be done. I made a big mistake in saying that the code for quiz overrides was from Tim Hunt, of course Tim participates a lot, giving advices and helping to improve the code, but most of this code is from Matt Petro of the University of Wisconsin - Madison Engineering School and Math Department. I should give him proper credit in the commit comment.
            Hide
            sbourget Stephen Bourget added a comment -

            Just to make sure it doesn't get forgotten, the overrides should be cleared using the course reset functionality. This means that the functions:

            • lesson_reset_course_form_definition
            • lesson_reset_course_form_defaults
            • lesson_reset_userdata

            need to be updated to perform this task. (See MDL-35280 for the implementation for mod_quiz)

            Show
            sbourget Stephen Bourget added a comment - Just to make sure it doesn't get forgotten, the overrides should be cleared using the course reset functionality. This means that the functions: lesson_reset_course_form_definition lesson_reset_course_form_defaults lesson_reset_userdata need to be updated to perform this task. (See MDL-35280 for the implementation for mod_quiz)
            Hide
            jmvedrine Jean-Michel Vedrine added a comment - - edited

            Just a short note that I have updated this patch

            • to rebase with latest weekly
            • to rework the lesson time limit override now that MDL-48962 is closed and that lesson->timelimit use seconds as unit (in fact as expected this has simplified the code of overrides )
            • to copy Stephen Bourget's code for MDL-35280 so that overrides can be deleted in course reset
              So this patch is still current with master branch
            Show
            jmvedrine Jean-Michel Vedrine added a comment - - edited Just a short note that I have updated this patch to rebase with latest weekly to rework the lesson time limit override now that MDL-48962 is closed and that lesson->timelimit use seconds as unit (in fact as expected this has simplified the code of overrides ) to copy Stephen Bourget's code for MDL-35280 so that overrides can be deleted in course reset So this patch is still current with master branch
            Hide
            jmvedrine Jean-Michel Vedrine added a comment - - edited

            It's a pity nobody seems really interested in that change. The only comments I got to my forum post are

            • Time Hunt who likes it
            • Itamar Tzadok who doesn't like it
            Show
            jmvedrine Jean-Michel Vedrine added a comment - - edited It's a pity nobody seems really interested in that change. The only comments I got to my forum post are Time Hunt who likes it Itamar Tzadok who doesn't like it
            Hide
            cibot CiBoT added a comment -

            Fails against automated checks.

            Checked MDL-7315 using repository: git://github.com/jmvedrine/moodle.git

            More information about this report

            Show
            cibot CiBoT added a comment - Fails against automated checks. Checked MDL-7315 using repository: git://github.com/jmvedrine/moodle.git master (9 errors / 2 warnings) [branch: MDL-7315 | CI Job ] phplint (1/0) , php (8/0) , js (0/0) , css (0/0) , phpdoc (0/0) , commit (0/1) , savepoint (0/1) , thirdparty (0/0) , More information about this report
            Hide
            cibot CiBoT added a comment -

            Code verified against automated checks with warnings.

            Checked MDL-7315 using repository: git://github.com/jmvedrine/moodle.git

            More information about this report

            Show
            cibot CiBoT added a comment - Code verified against automated checks with warnings. Checked MDL-7315 using repository: git://github.com/jmvedrine/moodle.git master (0 errors / 1 warnings) [branch: MDL-7315 | CI Job ] phplint (0/0) , php (0/0) , js (0/0) , css (0/0) , phpdoc (0/0) , commit (0/1) , savepoint (0/0) , thirdparty (0/0) , More information about this report
            Hide
            cibot CiBoT added a comment -

            Code verified against automated checks.

            Checked MDL-7315 using repository: git://github.com/jmvedrine/moodle.git

            More information about this report

            Show
            cibot CiBoT added a comment - Code verified against automated checks. Checked MDL-7315 using repository: git://github.com/jmvedrine/moodle.git master (0 errors / 0 warnings) [branch: MDL-7315 | CI Job ] More information about this report
            Hide
            marina Marina Glancy added a comment -

            Hi Jean-Michel, thanks for the patch. You have not sent it up for peer review yet so nobody actually looked at it.
            Also I'm afraid the most of people who voted/watching this issue are interested in Assignment and/or the universal framework to work across modules.
            As far as I can see your implementation is specific to lesson only. I would recommend to move your solution into separate issue and link to this one.
            For example, this functionality was already implemented for quizzes in MDL-16478

            Show
            marina Marina Glancy added a comment - Hi Jean-Michel, thanks for the patch. You have not sent it up for peer review yet so nobody actually looked at it. Also I'm afraid the most of people who voted/watching this issue are interested in Assignment and/or the universal framework to work across modules. As far as I can see your implementation is specific to lesson only. I would recommend to move your solution into separate issue and link to this one. For example, this functionality was already implemented for quizzes in MDL-16478
            Hide
            jmvedrine Jean-Michel Vedrine added a comment -

            Hello Marina,
            Thanks for the comments,
            Yes you are right. I created MDL-49642. I will move git branch and testing instructions to the new issue

            Show
            jmvedrine Jean-Michel Vedrine added a comment - Hello Marina, Thanks for the comments, Yes you are right. I created MDL-49642 . I will move git branch and testing instructions to the new issue
            Hide
            jmvedrine Jean-Michel Vedrine added a comment -

            Removing the lesson component as this is now implemented in Moodle 2.9. See MDL-49642

            Show
            jmvedrine Jean-Michel Vedrine added a comment - Removing the lesson component as this is now implemented in Moodle 2.9. See MDL-49642

              Dates

              • Created:
                Updated: