Is the preference to develop new modules or overload the existing modules as much as possible.
This question regards specifically the choice module. Its description is
The Choice module provides a means to run polls, elections or general information gathering from participants in a course
However, I see it also used a lot for signing up for seminars, projects, exam dates, parent conferences, etc. There are already a few features added to support such usage. Personally, I want to use it for signing up for exams but I need some new features added before I can do it; for example, controlling which students are allowed to sign up.
Hence the question, should such a new functionality be further added to the Choice module or should a new Signup module be spinned off?
general philosophy question about new/old modules
Number of replies: 19Re: general philosophy question about new/old modules
Good question. My preference isn't black and white ... it depends on the individual case. Sometimes it makes more sense to load on a new features but overloading is certainly not what we want.
Can you talk about what "controlling which students are allowed" means? Could it be one or more course groups, for example? That would keep the module fairly generic.
I'm moving this to Choice forum.
Can you talk about what "controlling which students are allowed" means? Could it be one or more course groups, for example? That would keep the module fairly generic.
I'm moving this to Choice forum.
Re: general philosophy question about new/old modules
I have already posted my needs in the choice forum. Groups could be used as a temporary hack but not as a general solution since students that sign up for exam can already be in different groups (unless it is possible to have students in multiple groups). Another problem with using groups is that students can see who is in a group AFAIK, and for privacy reasons that is a big no-no in terms of exam signup.
Very specific example can be signing up for a makeup exam. According to our rules only students who actually wrote the first exam or provided doctor's excuse for their absence are allowed into makeup exam. I need to be able to select from the list of all students those who are allowed (or, conversly, not allowed) to sign up. Yes, this is like creating a group but specifically related to this one activity. A bonus would be to be able to read the list from a text file -- I am talking about courses with 400-600 students each. Choice export already includes the id number in the output and that or moodle userid could be used as matching criterion.
Adding a summary option that I asked about in the other post is fairly simple but necessary for big courses. Waiting for moodle to load a few hundred avatars just to see the signup results is trying.
Similarly, being able to specify an exam code for the export function is important for processing the signup lists further (like room assignments and making exam access lists).
Very specific example can be signing up for a makeup exam. According to our rules only students who actually wrote the first exam or provided doctor's excuse for their absence are allowed into makeup exam. I need to be able to select from the list of all students those who are allowed (or, conversly, not allowed) to sign up. Yes, this is like creating a group but specifically related to this one activity. A bonus would be to be able to read the list from a text file -- I am talking about courses with 400-600 students each. Choice export already includes the id number in the output and that or moodle userid could be used as matching criterion.
Adding a summary option that I asked about in the other post is fairly simple but necessary for big courses. Waiting for moodle to load a few hundred avatars just to see the signup results is trying.
Similarly, being able to specify an exam code for the export function is important for processing the signup lists further (like room assignments and making exam access lists).
Re: general philosophy question about new/old modules
Thanks for the extra info. I'm still not sure of the difference between you choosing the students first, and then they choosing to sign up for the makeup exam. Is it possible that you'd allow a student to take the exam and they would chose not to take it?
What format is the exam? Is this something that should actually be in the quiz module instead?
What format is the exam? Is this something that should actually be in the quiz module instead?
Re: general philosophy question about new/old modules
Exam is written outside Moodle. So far, we used a self-made exam registration online database. We have now switched wholesale to using Moodle in all courses and students are truly getting confused with this external database (requires yet another password and different mode of access), so we have to move the signup into Moodle.
Yes, students can chose not to take an exam. A detailed scenerio of a specific course follows. We have a few courses with different variations of this.
Circa 550* students choose one of the 3 exam dates in January. Each date allows 200 students due to room capacity. They can sign on, change dates, or sign off until early January. This I have realized in Choice as it is now. Those who fail this exam can choose to sign up for a makeup exam in April, but only those who actually written and failed in January or provided doctor's excuse on timely basis (15-20% do not show up). To realize this part I need to be able to tell Choice who is legible to vote.
*) Besides students actually registered for this course this semester, students who failed or did not write the exam in previous semesters are legible to sign up.
Yes, students can chose not to take an exam. A detailed scenerio of a specific course follows. We have a few courses with different variations of this.
Circa 550* students choose one of the 3 exam dates in January. Each date allows 200 students due to room capacity. They can sign on, change dates, or sign off until early January. This I have realized in Choice as it is now. Those who fail this exam can choose to sign up for a makeup exam in April, but only those who actually written and failed in January or provided doctor's excuse on timely basis (15-20% do not show up). To realize this part I need to be able to tell Choice who is legible to vote.
*) Besides students actually registered for this course this semester, students who failed or did not write the exam in previous semesters are legible to sign up.
Re: general philosophy question about new/old modules
For exam signup with limited seating, a waiting list option would be quite handy. I keep getting questions about that from students.
Also, there is no clear visual feedback after signing up (voting). That seems to be a popular complaint -- students somehow are not sure whether they actually signed up or not. Something as simple as what we see when saving, for example, course setting would do: a screen that says 'blah blah saved' and continues after a few seconds automatically.
So what's your verdict, Martin? Add all this to choice module or spin off a new signup module?
Also, there is no clear visual feedback after signing up (voting). That seems to be a popular complaint -- students somehow are not sure whether they actually signed up or not. Something as simple as what we see when saving, for example, course setting would do: a screen that says 'blah blah saved' and continues after a few seconds automatically.
So what's your verdict, Martin? Add all this to choice module or spin off a new signup module?
Re: general philosophy question about new/old modules
Gee, I just got a request from management that the exam signups in Moodle must allow students to print a signup confirmation. We had that in the old system and apparently they insist on retaining that. It does help when pre-processing (as in verifying) 500 students showing up for an exam. Its importance can be illustrated by the fact that we had cases of students falsifying these in order to get in (our system generated unique id code for each signup, so it was easy to spot false certificates).
Re: general philosophy question about new/old modules
For beginning teachers we prefer a (larger) set of small tools above a small set of extremely tunable tools like the new assignment. So: yes to simple journal, poll, poll with limit, etc..
.
We use for example an old (see the forums) modified version of simple poll:
- the poll gets a new name limit choice and an extra option: limit for each choice
- we create a poll (set of days) for each period: students choose their exam date
- one of the choices in each poll is UNDO MY CHOICE
- we set this limit equal to the number of chairs in the room on the specific day
- we added a button to make an excel dump for each choice set
- after closing time we sent this excel sheet to the admin
- they create with cut & paste also an overview with pictures for the presence check during exam. (maybe next version a button for their photosheet
)
Re: general philosophy question about new/old modules
Hi Ger,
apart from "undo my choice" - is there anything else in your modified Choice that can't be done in the current Choice mod?

Dan
*edit* - I see undo my choice can be done with current choice mod! - is there any difference between your mod and the current one in terms of functionality?
apart from "undo my choice" - is there anything else in your modified Choice that can't be done in the current Choice mod?
Dan
*edit* - I see undo my choice can be done with current choice mod! - is there any difference between your mod and the current one in terms of functionality?
Re: general philosophy question about new/old modules
Re: Also, there is no clear visual feedback after signing up (voting). That seems to be a popular complaint -- students somehow are not sure whether they actually signed up or not. Something as simple as what we see when saving, for example, course setting would do: a screen that says 'blah blah saved' and continues after a few seconds automatically.
That was easy to install by changing
redirect("view.php?id=$cm->id");
to
redirect("view.php?id=$cm->id", get_string("changessaved"));
That was easy to install by changing
redirect("view.php?id=$cm->id");
to
redirect("view.php?id=$cm->id", get_string("changessaved"));
Re: general philosophy question about new/old modules
I'm guessing this is only a problem for choices that allow the choice to be updated, - I haven't looked at the code, does your change work fine for choices that don't allow updating?

Dan
Dan
Re: general philosophy question about new/old modules
Yes, just tested. It just inserts an intermediate page saying that the changes were saved.
Re: general philosophy question about new/old modules
re: I have already posted my needs in the choice forum. Groups could be used as a temporary hack but not as a general solution since students that sign up for exam can already be in different groups (unless it is possible to have students in multiple groups). Another problem with using groups is that students can see who is in a group AFAIK, and for privacy reasons that is a big no-no in terms of exam signup.
After checking into this deeper, it seems that a student can be a member of a single group only, so using groups for restricting participation can work only for courses with no groups otherwise.
However, it seems students can't see who is member of their group, so privacy is preserved.
After checking into this deeper, it seems that a student can be a member of a single group only, so using groups for restricting participation can work only for courses with no groups otherwise.
However, it seems students can't see who is member of their group, so privacy is preserved.
Re: general philosophy question about new/old modules
Just a thought - restricting access to an activity to a limited subset of users from within a course sounds like something that should be added not at the individual "activity" level eg not in the choice mod, but in the overall activity code.....
.....but what would you show to users that didn't have access? - would you hide the activity? or show it with a "locked" icon, - how would the student know how they can arrange for it to be unlocked?
I guess I have more questions than answers!

Dan
.....but what would you show to users that didn't have access? - would you hide the activity? or show it with a "locked" icon, - how would the student know how they can arrange for it to be unlocked?
I guess I have more questions than answers!
Dan
Re: general philosophy question about new/old modules
Actually, restricting this at the activity level makes sense here since this same restriction is not propagated to other activities and resources.
Users that do have access should get a message that they have no access to this activity. Such a message is already displayed when attempting to access it when restricted groups are on and I am not a member of a group. So nothing new needs to be coded.
Users that do have access should get a message that they have no access to this activity. Such a message is already displayed when attempting to access it when restricted groups are on and I am not a member of a group. So nothing new needs to be coded.
Re: general philosophy question about new/old modules
I'm not convinced yet....
- This seems like something that could work well in tandem with "activity locking" - I'm not sure the status of activity locking, but an "exclusion list" or an "inclusion list" seems to be something that really should sit within the "activity locking" code, not within an actual activity. - this way it could be used for any activity/resource in moodle instead of just the choice mod....

Dan
- This seems like something that could work well in tandem with "activity locking" - I'm not sure the status of activity locking, but an "exclusion list" or an "inclusion list" seems to be something that really should sit within the "activity locking" code, not within an actual activity. - this way it could be used for any activity/resource in moodle instead of just the choice mod....
Dan
Re: general philosophy question about new/old modules
I am not familiar with activity locking. I will search moodle.org archives when I get a chance. If it can be used, I won't complain. However, whatever the solution, I need it fully functional early in January. If activity locking is planned for 1.6, I will have to hack something in 1.5.x for now.
In terms of exam signup, make-up exam specifically, it has absolutely no relation to any other activities in the course. Students allowed to take it are not treated in any special way otherwise. This is why for me it is an activity-level restiction. If activity locking will allow me to specify which activities it affects, thus being able to chose just this one for this specific group of students, then the control can be at that level. But this will still have to be independent from controlling/grouping in any other activity in the course.
In terms of exam signup, make-up exam specifically, it has absolutely no relation to any other activities in the course. Students allowed to take it are not treated in any special way otherwise. This is why for me it is an activity-level restiction. If activity locking will allow me to specify which activities it affects, thus being able to chose just this one for this specific group of students, then the control can be at that level. But this will still have to be independent from controlling/grouping in any other activity in the course.
Re: general philosophy question about new/old modules
Re: I am not familiar with activity locking.
I have managed to investigate "activity locking". It sounds perfect for this purpose and an early introduction even mentions implementing exactly what I am after. However, the person currently maintaining that code just stated that it is not supported. I am going to follow up on this, though, to see whether I can twist it for my purpose or expand their code. Would be wasteful trying to do it from scratch for a single activity.
I have managed to investigate "activity locking". It sounds perfect for this purpose and an early introduction even mentions implementing exactly what I am after. However, the person currently maintaining that code just stated that it is not supported. I am going to follow up on this, though, to see whether I can twist it for my purpose or expand their code. Would be wasteful trying to do it from scratch for a single activity.
Re: general philosophy question about new/old modules
RE: Could it be one or more course groups, for example?
I am trying to get it working with groups. However, I am getting nowhere. When I set separate groups for this activity, I get an error that I am not a member of this group even though I am.
I am trying to get it working with groups. However, I am getting nowhere. When I set separate groups for this activity, I get an error that I am not a member of this group even though I am.
Re: general philosophy question about new/old modules
Hi Robert,
there are a couple of problems with groups and the fix hasn't been tested - see the post here:
http://moodle.org/mod/forum/discuss.php?d=32815
- let me know if the fixes work & I'll commit them to CVS!

Dan
there are a couple of problems with groups and the fix hasn't been tested - see the post here:
http://moodle.org/mod/forum/discuss.php?d=32815
- let me know if the fixes work & I'll commit them to CVS!
Dan