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

Distinguish between archived/inactive courses and hidden courses in My Courses block

    Details

    • Type: New Feature
    • Status: Open
    • Priority: Minor
    • Resolution: Unresolved
    • Affects Version/s: 1.6.3, 2.8.2
    • Fix Version/s: None
    • Component/s: Course
    • Labels:
    • Affected Branches:
      MOODLE_16_STABLE, MOODLE_28_STABLE

      Description

      I would like to be able to archive and make courses inactive but still accessible/visible to the students. Currently once a course is hidden it is no longer accessible to the students. I would like previous semesters work to be accessible to the students via a category called Course Archives in which I could place subcategories for each of the semesters. I envison needing to create a function is_course_archived ($courseid) boolean that checks to see if that particular course is a member of the Course Archives category. If it is, then an active link to that course is not displayed. Instead, a separate function my_archived_courses ($userid) could return a tree of the Course Archives category allowing navigation to the archived/inactive courses from previous semesters. This would allow an administrator to simply move a semesters worth of material in to the archive folder.

      See http://moodle.org/mod/forum/discuss.php?d=60993#277671 for discussion on this.

        Gliffy Diagrams

          Activity

          Hide
          aborrow Anthony Borrow added a comment -

          Also related to the discussion at http://moodle.org/mod/forum/discuss.php?d=59947

          Show
          aborrow Anthony Borrow added a comment - Also related to the discussion at http://moodle.org/mod/forum/discuss.php?d=59947
          Hide
          simillibus Will Taylor added a comment -

          This would be a tremendously helpful feature - would love to see it.

          Show
          simillibus Will Taylor added a comment - This would be a tremendously helpful feature - would love to see it.
          Hide
          rscheurer Rudolf Scheurer added a comment -

          This "bug" is penalizing people that really intensively use Moodle ==> would love to see this feature, too!!

          Show
          rscheurer Rudolf Scheurer added a comment - This "bug" is penalizing people that really intensively use Moodle ==> would love to see this feature, too!!
          Hide
          dougiamas Martin Dougiamas added a comment - - edited

          Could not this be done almost entirely using roles?

          1) Set up a course archive category
          2) Go to the category -> Assign roles -> Override roles
          3) Change the Authenticated User role to PROHIBIT a bunch of writing capability (anything you don't want them to do, such as posting to forums etc).
          4) Move your courses in there any time you like, keeping enrolments as they were before.

          Show
          dougiamas Martin Dougiamas added a comment - - edited Could not this be done almost entirely using roles? 1) Set up a course archive category 2) Go to the category -> Assign roles -> Override roles 3) Change the Authenticated User role to PROHIBIT a bunch of writing capability (anything you don't want them to do, such as posting to forums etc). 4) Move your courses in there any time you like, keeping enrolments as they were before.
          Hide
          dougiamas Martin Dougiamas added a comment -

          Actually, I'm wrong here, you can't override the Authenticated User role that way. You'd need to create some new role like "Archived Course User" and assign it to everyone at that category level. This isn't as nice, obviously, because you need to maintain the assigned roles manually. But possible in 1.7 and later.

          Perhaps we just need a new course field that teachers can switch on the Course Settings page, next to the "Hidden" flag, that would switch "archived" status on and off. When archived the course could be listed differently as described above (regardless of the category it's part of, though you could of course move them all into one category).

          We could also look at searching for such courses when setting up permissions and removing some of the write permissions from those courses.

          Show
          dougiamas Martin Dougiamas added a comment - Actually, I'm wrong here, you can't override the Authenticated User role that way. You'd need to create some new role like "Archived Course User" and assign it to everyone at that category level. This isn't as nice, obviously, because you need to maintain the assigned roles manually. But possible in 1.7 and later. Perhaps we just need a new course field that teachers can switch on the Course Settings page, next to the "Hidden" flag, that would switch "archived" status on and off. When archived the course could be listed differently as described above (regardless of the category it's part of, though you could of course move them all into one category). We could also look at searching for such courses when setting up permissions and removing some of the write permissions from those courses.
          Hide
          jason.maddern Jason Maddern added a comment - - edited

          Yes - Your post Martin is exactly what I was about to request.

          1) A field on the mdl_courses table to set archived ON/OFF
          2) When set to ON, irrespective of category to which it belongs, that course becomes "archived" (ie. read only)
          3) Archiving is achieved by removing any capabilities with mdl_capabilites.captype = 'write' in that course context.

          Note: this would also require two additional capabilties to be created so that we can control a) who can archive a unit, and b) who can unarchive a unit.

          This would be a significant step forward over the two other commonly used solutions of a) category overrides, or b) role duplication (but would still allow these to be used if desired or for legacy purposes).

          Show
          jason.maddern Jason Maddern added a comment - - edited Yes - Your post Martin is exactly what I was about to request. 1) A field on the mdl_courses table to set archived ON/OFF 2) When set to ON, irrespective of category to which it belongs, that course becomes "archived" (ie. read only) 3) Archiving is achieved by removing any capabilities with mdl_capabilites.captype = 'write' in that course context. Note: this would also require two additional capabilties to be created so that we can control a) who can archive a unit, and b) who can unarchive a unit. This would be a significant step forward over the two other commonly used solutions of a) category overrides, or b) role duplication (but would still allow these to be used if desired or for legacy purposes).
          Hide
          jason.maddern Jason Maddern added a comment -

          Can I also please ask whether updating this old item (listed as affecting 1.6 stable) is the correct thing to do here, or whether this should have been a new item listed against 2.8.2 stable with a link to this item? Wasn't sure which methodology you preferred here.

          Show
          jason.maddern Jason Maddern added a comment - Can I also please ask whether updating this old item (listed as affecting 1.6 stable) is the correct thing to do here, or whether this should have been a new item listed against 2.8.2 stable with a link to this item? Wasn't sure which methodology you preferred here.
          Hide
          marina Marina Glancy added a comment -

          Updating this issue is the best way since it has 15 votes and some discussion.

          Show
          marina Marina Glancy added a comment - Updating this issue is the best way since it has 15 votes and some discussion.

            People

            • Votes:
              27 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

              • Created:
                Updated: