How to make a global Widget that functions based on the current course?

Francis.U.332 Posts: 22 🌱
edited November 2022 in Customer Enablement

The following specific issue is an example of a more general one we're facing:

We have several small features (widgets, intelligent agents, possibly others) that we'd like to add to many courses all at once, and manage the feature as a single entity rather than go into each course one by one. But they need to function based on the user's status in each course (role, unit completion, etc), not their global status.


Is there a way to do that?




A global widget was created at the organization level (id=6606) with a message to let students know when their access expires within an org unit course offering (e.g., “Notification of status change: your status within Course X has expired…”). It has one conditional release:


·      Enrolled in current org unit as the role: Expired


This global widget is then placed on a shared course homepage that is also created and managed at the organization level.


Within the course offerings that are using the shared course homepage, the widget is active but hidden from learners that don’t meet the release conditions.


Desired behavior: Because the release condition specifies the current org unit, we expect it to read the role of the user within a specific org unit and release the message when the role is changed to Expired within that course offering.


Actual behavior: The widget is reading the role of the user at the organization level (6606) and will only release if the learner role is switched at the org level, not within the specific course offering. The learners may be enrolled in multiple courses and would never get the message since they would not be given a role of ‘Expired’ at the org level.


Ramifications: Since the widget is only reading roles at the org level and not at the course offering level, we would need to create and manage both a unique widget and a unique homepage at the course offering level to get this message to work correctly. We would lose the ability to manage both the widget and the course homepage at a global level.

Best Answer

  • Dhruvi.Bhavsar9233
    edited November 2022 Answer ✓

    Hello Francis,


    Thank you for reaching out to us and sharing all the details. Unfortunately, it is working as expected. The widget was created at Org level and the condition is added at the Org level, thus, it will consider the Role/User Account which is at the Org level.


    In order to make this work as per your requirement, you will need to copy the widget at Course Offering level and include that widget in the homepage of that Course Offering.


    I understand that this way you won't be able to control it globally i.e. from Org level by just adding it in one Homepage. When we add this Release Condition 'Enrolled in current org unit as the role: Expired' - It says 'Current Org Unit' and it will consider the actual Org Unit where this condition is added i.e. in this case it is considering Org Id as it is added at the Org level. Unfortunately, it is how the Release Conditions work in the system right now.


    I hope I was able to explain the behavior.


    However, this is a potential feature request. Thus, I would encourage you to log a Feature Request using the Product Idea Exchange option.



    Please feel free to update this thread if you have any questions.



    Thank you, 


    Dhruvi Bhavsar

    Product Support Analyst



  • Aakash.P.322
    Aakash.P.322 Posts: 1 🌱

    D2L should look into this as this has been a problem at least since 2014 (found this PIE D1207)

    Please upvote this in hopes to bring this in D2L's attention.

    It only makes sense if release conditions respect the current org unit of the org unit it is being used (displayed) in for the "Enrolled in current org unit" to work as expected.