I would like to have the ability to set days apart from when one quiz can be taken and another. Like I would like to be able to let my students take thier quizzes no closer than 30 days apart. Like chapter two quiz isn't available until 30 days after chapter one quiz. If I am in the wrong forum to suggest this, please let me know where I should post this. Thanks.
Blessings,
Rev. Lady Athena
I set my chapter quizzes open for one week. Students can take the quiz as many times as they need in that time but the quiz closes at the end of the week...
hth
Dennis
I Think that the Reverend Lady Athena is after a way of specifying the interval between quize, so that the open time is set as for example a day, or a month after the last time a quiz was taken.
I am not sure what use the Reverend Lady plans to put this to, but it might be a good way of reducing the instance of attempt via trial and error. I find that students are strongly inclined to use this method of responding to multiple choice tests (unless there is so much randomness that the questions are completely different). If there were just a 20 minute interval ("meaning please go and read the text again) then it would be quite effective in preventing this sort of student behaviour.
On the face of it, this would require activity linking at a level greater than that supported even by Bernards Acitivity Linking Hack.
However, there is probably an easier way of hacking this.
Timothy
I so hope so! In my course you can't take the course any faster than one chapter per month. It is a continual class, meaning anyone can enter and start learning. The only way that I can make sure that everyone is doing it no faster than every 30 days is by locking it and have everyone contact me individually. I have to try to make sure that everyone, that is starting at all different times, doesn't get the next password before time. Very time consuming. Time I would rather be spending on my students.
Blessings,
Rev. Lady Athena
Dear Rev. Lady
I realised that your need is rather different, and more complex than mine.
It is not difficult to ensure that students do not take the same quiz at too frequent an interval.
However, since you want students to go onto the next chapter, that means making the time of the next test dependent upon the time that a student took the previous one.
This would mean adapting Bernards Activity linking so that it not only makes a test dependent on another test (as it can do now) but also adds a fixed time to the time of the dependent test. As I say, I think that this may be possible using Bernards Supercalendar, or perahps the supercalendar plus Bernard's activity linking.
In case anyone is interested in adding a time interval between attempts on the same quiz then
in mod/quiz/attempt.php
before the line
/// Check password access
add the following
// Check for a miniumum interval setting inside 'password' field
$nottoosoon = TRUE;
if (stristr($quiz->password, "interval:")) {
$interval = ltrim($quiz->password, "interval:") * 60;
$timenow1 = time();
$quiz->password = "";
$nottoosoon = (($attempt->timefinish + $interval) < $timenow1 || isteacher($course->id));
}
And in the same file, after the line
print_heading($quiz->name);
Add
if (!$nottoosoon) {
$errorstring = "Sorry, this quiz is not yet available. You must leave ".format_time($interval)." between attempts";
error($errorstring, "view.php?id=$cm->id");
}
To specify a minimum interval between attempts, put for example
interval:10
in the password field of your quiz, for an interval of 10 minutes. This cannot be used with quizes with passwords.
Not guaranteed. Please hack with care.
Timothy
I'm assuming that you're not simply wanting to set when quizzes open and close. You can do this, if you do it the same for everyone (with open and close times.)
There have been other people who wanted to make resource use conditional (i.e. you can't use resource x till you've used resource y )
Conditional use is much desired, but Martin Dougimas has said, I believe, that he dosen't believe in it and won't code it. If someone else has a way to hack the system, though, I'd like to know.
I think he doesn't like the idea of running people through a maze.
Of course, lots of other people have asked for the feature. Some learning has to be done in sequence. Don't do Quiz 2 before reading module 2 etc. I suppose he could explain his reasoning better than I could.
I think that the sort of structured teaching that activity linking encourages is not Martin's cup of tea but, recognising the demand, he is working towards adding activity linking as you can see in (and vote for) this bug.
http://moodle.org/bugs/bug.php?op=show&bugid=297
As for hacks Bernard Boucher is the main man in this area, see his
Super calendar
http://moodle.org/mod/forum/discuss.php?d=16146
And Activity Linking Hack
http://moodle.org/mod/forum/discuss.php?d=18053
Perhaps if used in conjuction, the sort of functionality that you require can be achieved.
Timothy
Timothy
Require a certain number of days worth of entries, each a certain amount of time apart. i.e. "When you're done with the quiz reflect on it for 1 month and write a journal entry every Saturday."
Would that work?
Yes I have tried it actually, called it the Daily Exercise. But again, I want it to do it automatically. Not the, "Once you have finished this, contact me at ... and I will give you the password to access the test." The reason being is I have students starting all different days and the course has to take one year and one day to finish. So let's say Johnny joins January 1st, 2005 and Sarah joins March 1st, 2005. Johnny can take years to finish the course, but he can't finish it any faster than January 2nd 2006. Sarah too can take years if she pleases, but won't be eligible for a degree until March 2nd 2006. Say both of them take one chapter per month as planned. Jonny would be asking for the password for chapter three the same time Sarah is asking for the password for chapter one. VERY confusing, when you have revolving membership. I don't wish to push anyone to learn at a certain rate, only to make sure they can't learn it any faster than one chapter per month.
Did this help explain what I mean? If not let me know, I will try to explain further.
Blessings,
Rev. Lady Athena
I'd like the same feature that you're pushing for, conditional unlocking. Heck, I'd be willing to put some money towards it if it came down to that. Not sure how much.
Cheers,
Ryan
You can see the id's in the URL. If the id's are consequtively numbered then it would not be all that difficult, I think.
Dear Rev. Lady Athena
Do you have a test installation of Moodle? I would NOT recommend trying the following on a site where you have paying customers.
It is not tested!!!!
in the file
moodle/mod/quiz/attempt.php
before the line
//Check password access
add the following (in bold)
/// This finds the time of the last attempt of the previous quiz (pq),
/// Then checks to see whether the interval is long enough.
$pq_interval= 1; // Set this, the interval after the previous quiz in minutes.
$pq_idnumber=$quiz->id-1;
if ($pq_attempts = quiz_get_user_attempts($pq_idnumber, $USER->id)) {
foreach ($pq_attempts as $pq_attempt) {
$timenow2 = time();
$nottoosoon_after_previous = (($pq_attempt->timefinish +$pq_interval*60) < $timenow2 || isteacher($course->id));
}
} else {
if (stristr($quiz->name, "First")) {
$nottoosoon_after_previous = TRUE;
} else {
$nottoosoon_after_previous = FALSE; }
}
And in the same file, before the line
if (!$available) {
add the following (in bold)
if (!$nottoosoon_after_previous) {
$errorstring = "Sorry, you mush leave".format_time($pq_interval*60)." between quiz attempts.";
error($errorstring, "view.php?id=$cm->id");
}
The interval between quizzes is set in the third line of the above. At the momement it is set at one minute for testing purposes, hence
$pq_interval= 1;
but if you want to make it 30 days then
$pq_interval= 43200;
may work. The first quiz in the sequence should include the word "First" in the title. If that is not appropriate, and you want to use a different marker in the title of the first quiz, then change the "First" in red/bold above to something else and include that in the title of the first quiz.
The changes above will effect your site globally, and mean that consecutive quizzes will always interfere with each other.
The hack above can be combined with the previous one posted to this thread, to prevent students taking the same test more frequently than at a specified rate. But the latter does not take into account wether the students has passed or failed.
Neither are in any way guaranteed.
Timothy
the description
the ipaddress restriction
the password
or somewhere in one of the fields of the course - e.g. in the course description with
"Quizes in this course can be taken only after an interval of: X"
or somewhere in the current interface, then a quiz by quiz or course by course setting can be done. I do not know how to extend the database however. And I don't think it would be a good idea.
Tim
I do know of several website that do it that way, so I know it can be handled by a computer. One college that I'm at almost every day, I take a test and if I fail I can't take it again for 24 hrs, if I pass then I can't take the next chapters test for 30 days. That's exactly how I want to be able to run mine.
Blessings,
Rev. Lady Athena