Only show and allow course for enrolled students

Only show and allow course for enrolled students

by Paul Drayton -
Number of replies: 9

I'm going googly-eyed with this roles/permissions stuff after reading about a gazillion posts and spending hours on it.

It's probably simple, but I just can't see it.

Here's my story:

I have 2 courses. New_Course and Old_Course.

I have enrolled students in Old_Course who I want to be able to access both the Old_Course and the New_Course.

I don't want new students to be able to enrol or see anything about the Old_Course. I want new students to only see the New_Course.

In plain english - I want new students to only see the new course, but existing students should still be able to get to the old course.

Hep me please!

I've hacked my way to making it work by creating a role that can see hidden courses and then assigning existing students to that role. I then used the override permissions in the course to assign existing students to that role.

But it seems like a mare's nest. Can I do it in a more simple, elegant way?

Average of ratings: -
In reply to Paul Drayton

Re: Only show and allow course for enrolled students

by Michael Woods -
Picture of Core developers
Hi Paul,

From what you are describing, I would do the following:

1. Assign the users who need to see both courses, the role of student in both courses.
2. Assign the users who should only see the new course, the role of student in that course only.

In the course settings, you can make both of your courses 'not enrollable', so students can only get access to the courses that they've been assigned a role to.

Are you running into problems because you are making the old course 'not visible to students'? Does the course need to be not visible, or just not accessible?

Regards,
Michael
In reply to Paul Drayton

Re: Only show and allow course for enrolled students

by ben reynolds -
To pick up on what Michael said, this isn't really a roles & capabilities issue.

The student role can usually only see the courses they're enrolled in if all courses are set as not enrollable (meaning, student cannot self enroll into that course; you can still enroll them).

So, you take students in old classroom and enroll them in new course. They can see both courses.

You take new students and enroll them only in new course. That's all they can see.

Ah, but looking at your post again, I see, "I don't want new students to be able to enrol or see anything about the Old_Course." So, perhaps the problem is that you're allowing them to enroll themselves?

You would probably find it much easier to enroll them yourself using a flat file, which allows you to keep the courses not enrollable & thus not visible to all students.
In reply to ben reynolds

Re: Only show and allow course for enrolled students

by Paul Drayton -
Thanks Michael and Ben.

I don't think I explained it too well, probably because I am still a bit confused.

To clarify -

Old_Course: hide and make unenrollable to new users. Visible, unenrollable to existing enrolled users.
New_Course: visible and self-enrollable to everyone.

From the student perspective.

I want new users/students to:

1. see only New_Course (hide Old_Course from)
2. Be able to self-enrol in New_Course only (I'm using Paypal)

I want existing students already enrolled in Old_Course to:

1. See both Old_Course and New_Course
2. Be able to use Old_Course and New_Course (I have added them all with Student role to the two courses, so that is done.)

I don't know who the new students for New_Course are, so I can't enrol them manually.


In reply to Paul Drayton

Re: Only show and allow course for enrolled students

by ben reynolds -
Well, that's a situation I have no experience with. Sorry.

But I do have a piece of advice. Think about what will happen to the new students after they finish the new course. Will they go on to a third course, etc? You might want to map out the whole flow before committing to what happens with just these two courses and these two groups of users.
In reply to ben reynolds

Re: Only show and allow course for enrolled students

by Paul Drayton -
Probably not the most elegant approach, but I got it working by doing the following

How to Hide courses from new students

To hide a course from new students:

Put it in a new category.

Hide the category

Hide the course

Override permissions for student, set these permissions below to "Allow":

In Category: View hidden categories and view hidden courses

In Course: View hidden courses

Course Settings: Course not available. Course not enrollable.


Average of ratings: Useful (2)
In reply to Paul Drayton

Re: Only show and allow course for enrolled students

by Tim Danner -
Maybe not elegant, but darn useful. This was exactly the workaround I was looking for hiding categories and courses, but allowing students to access the courses even though they weren't visible.
In reply to Paul Drayton

Re: Only show and allow course for enrolled students

by Gordon Brooks -

I did the following on my instance of 1.9.11 to hide courses from students unless they are enrolled in a given course.  Now they can only see the course they are currently enrolled in.  I could not get the categories to work properly so I did the following:

  1. Hide all courses
  2. On Site Administration, go to Users>Permissions>Define roles>Student and set the following to "Allow"
  • In Category: View hidden categories and view hidden courses
  • In Course: View hidden courses

That is all I did and it seems to be working just fine.

In reply to Gordon Brooks

Re: Only show and allow course for enrolled students

by Jessica Welsh -

Thank you! This is exactly what I've been looking for!

In reply to Paul Drayton

Re: Only show and allow course for enrolled students

by Adarsh Char -

Have there been any updates to this functionality? I am trying to do exactly this, i.e., I have an Orientation Course that I want students to take with their advisor, who enrolls them into the course, but I don't want the course to be visible on the front pages or elsewhere for students who are not enrolled in that Orientation course.