Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

đź“„ Bug Report: Enrolled students cannot see their batches in the LMS portal #1332

Open
yoc-san opened this issue Feb 21, 2025 · 3 comments
Labels
bug Something isn't working

Comments

@yoc-san
Copy link

yoc-san commented Feb 21, 2025

Environment Details
• Frappe LMS Version: v2.23.0 (HEAD)
• ERPNext Version: v15.53.0 (HEAD)
• Frappe Framework Version: v15.56.1 (HEAD)

Problem Description

After updating to Frappe LMS v2.23.0 (HEAD), an issue has been identified regarding batch visibility for students:
1. Although a student is correctly enrolled in a batch within the LMS application, when they access the LMS portal from their student profile, the batch list appears empty.
2. However, if the student accesses the batch directly via its URL, they appear as enrolled in the batch.
3. It has been verified that the student only has the “LMS Student” permission.
4. In Frappe LMS v2.19.0 (HEAD), when a student accessed the LMS, their enrolled batches appeared in the designated section without issues.

Steps to Reproduce
1. Enroll a student in a batch within Frappe LMS.
2. Log in to the LMS portal using a student account.
3. Navigate to the LMS section and check that no batches appear in the list.
4. Copy the URL of a batch in which the student is enrolled and try accessing it directly using the same student account.
5. Verify that the student is shown as enrolled when accessing the batch via the direct URL.

Expected Behavior

When a student accesses the LMS section, the system should automatically display the batches in which they are enrolled, without requiring them to access a batch via an external URL.

Current Behavior
• Students cannot see the batches they are enrolled in from the LMS portal.
• Batches are only visible if accessed through their direct URL.

Evidence

A video and screenshots be attached to demonstrate the issue.
Image

https://github.com/user-attachments/assets/4dd7c5a2-a390-47eb-831f-8e9ad01c27a7
Possible Cause

This behavior suggests a potential issue with loading or filtering the batches assigned to students in the LMS portal.

Additional Information
• It has been confirmed that the student only has the “LMS Student” permission.
• The issue occurs across different browsers and sessions.
• In previous versions (v2.19.0), enrolled batches appeared correctly in the designated section.

Looking forward to your analysis and a possible solution. Thank you!

@yoc-san yoc-san added the bug Something isn't working label Feb 21, 2025
@pateljannat
Copy link
Collaborator

@yoc-san, I am unable to replicate the issue. Is there any error in the console? Can you check the network tab and see what data is being returned?

@yoc-san
Copy link
Author

yoc-san commented Mar 27, 2025

@pateljannat Hi, I’ve been reviewing the data being sent in the payload from the browser and found the following:
For the batches endpoint (https://sitio/api/method/lms.lms.utils.get_batches), the payload includes this filter:

{
  doctype: "LMS Batch",
  filters: {
    start_date: [">=", "2025-03-26"],
    published: 1
  },
  limit: 20,
  order_by: "start_date",
  start: 0
}

From what I understand, the filter start_date: [">=", "2025-03-26"] will only return batches that start today or in the future. So, if the batch the student is enrolled in started before today, it will not appear in the results—even if it is published and the student is correctly enrolled.

In this context, I believe this behavior can be confusing, as it hides relevant information from the user. Ideally, in the “enrolled batches” view, the filtering should be based primarily on whether the user is enrolled in the batch, regardless of the start date or the publication status.

On the other hand, for courses: (https://sitio/api/method/lms.lms.utils.get_courses) the payload looks like this:

{
  doctype: "LMS Course",
  filters: {
    published: 1
  },
  start: 0,
  limit: 30
}

This means only published courses are shown. However, we noticed that if a student is enrolled in a course that is not published, it doesn’t show up in the enrolled courses list, even though the student can still access it via a direct link.

In summary, I’d like to propose that for both courses and batches, the filtering logic should focus on whether the student is enrolled, rather than relying on start date or publication status. This would provide a more accurate and user-friendly experience and avoid confusion in legitimate cases where the student is enrolled in content that hasn’t been published yet or that already started.

@pateljannat
Copy link
Collaborator

pateljannat commented Mar 28, 2025

@yoc-san There is an enrolled tab visible to all students. For this tab, the filter passed is only checking for enrolled batches irrespective of their start date. Students should be able to see the batches they are enrolled in here.

Image

Of the batches listed here, not all of them are published. However because the student is enrolled in them, they can see these in the list.

Image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants