-
Notifications
You must be signed in to change notification settings - Fork 158
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
Better control over status/points given to users that are not enrollled at the time of a session. #687
Comments
Hi @preney - thanks for the request - if you could please edit this a bit to define the "problem" first that you are trying to solve... I'm not quite convinced that we need to control it at the status set like this so having the problem described a bit better would be useful. I'm unlikely to have time to work on this sort of feature as a volunteer, but pull requests or funding for development time are always welcome. |
Hi @danmarsden: I completely rewrote the original post above to hopefully better explain things more clearly and to better explain what this issue is requesting. :-) |
wow - thanks for expanding on that - there are a couple of things there that aren't quite right when explaining current behavior - if a user is enrolled after some of the existing sessions then the reports exclude those sessions when calculating the grades for that user - there is no "status" recorded for the user in those sessions at all. But yes - I can see how it would be useful to allow the teacher (or admin) to control some of this behaviour. The solution here might be a little more complex than you describe above because at the moment no status is set in these sessions (unless a teacher has done this manually after the session.) - we'd need to tie into enrolment events and take action based on this, and the reporting code will all need updating to take these settings into account (not a small amount of work.) I don't think I'd have time as a volunteer to peer review a large patch like this either, so if you intend to do this development yourself I'd expect it might sit here for a while waiting for it to be properly peer reviewed. (automated tests that check the functionality would help) of course - if you would like to fund development, feel free to reach out privately and I can look at ballparking the effort/cost required. thanks! |
[Per the reply message, I have reworded this original post to better explain what this issue's problem is and how it can be solved.]
First let's note these three scenarios can happen in a Moodle courses:
NOTE: The second and third bullets above is what this issue is about concerning the Attendance plugin's automarking of attendance.
If one is not enrolled in a course, then attendance is "Not present" (with points or without). The simplest case is the student is "Absent" and automarking as implemented by the plugin does this well. However, there are times when being "Not Enrolled" should be noted instead of "Absent". The latter essentially has two scenarios:
"Not Enrolled" without points is an absence but it formally recognizes that the student was not enrolled and therefore implies that they could never have attended. This matters when one (possibly not the teacher) is looking at a students attendance data: "Absent" would imply they could/should have attended whereas "Not Enrolled" means they couldn't have attended.
"Excused" represents the scenario where the student could not attend and was granted the points as if they had attended. The attendance plugin does note when someone enrols in a course late with the time and date --but not as a status set item.
Currently the Attendance plugin requires the Teacher to find all students not enrolled and set "Not Enrolled" or "Excused" manually as the automarking feature does not support dealing with not enrolled scenarios. When there are dozens/hundreds of students in a course, doing this is error prone and must be done manually for EACH attendance session. Worse, if one (incorrectly) uses the "Manually trigger automatic marking" button in an attendance session --which can set entries for absence, then such will mark everyone that could not possibly been present as absent instead of "Not Enrolled"/"Excused". Additionally, there is no way to UNSET a value that is set. (By default, persons not enrolled won't have an attendance status set item set --but if one is set there is no way to unset such.) The end result is that this can easily and incorrectly increase the reported absence numbers for persons that could never have attended.
Currently the attendance plugin allows one to set:
The last item, "Automatically set when not marked", is appropriate for marking persons as absent --but it is not appropriate for marking persons as "Excused"/ "Not enrolled" or "Absent" since it does not distinguish between not being enrolled and unmarked versus being enrolled and unmarked.
Instead "Automatically set when not marked" should be:
Since attendance session time periods are intervals, an ambiguity does arises when a student enrols during an attendance session --should this person be marked absent or as not enrolled. My thoughts are that such should be left for the Teacher to determine this, e.g., perhaps by instead having three "Automatically set when not marked" choices:
where the teacher can identify the appropriate status set items.
NOTE: This issue is requesting that the status set page changes the single scenario of "Automatically set when not marked" to that of the (last) three bullets above with associated functionality. The default of all three could be the same --but each should be able to be set to different status items.
For example, consider the following status set for a 60 minute session:
Then for the three "Automatically set when not marked" choices, the following might be set:
and the Teacher could override things manually if needed.
Finally, why might one want "Not enrolled" (with no points) and "Excused" (with points) and an "Absent" (with no points)?
Which of these scenarios apply depends on the particulars of a course.
The text was updated successfully, but these errors were encountered: