mirror of
https://github.com/moodle/moodle.git
synced 2025-08-05 08:56:36 +02:00
Merge branch 'MDL-32738' of git://github.com/timhunt/moodle
This commit is contained in:
commit
e50de8764b
1 changed files with 24 additions and 40 deletions
|
@ -87,60 +87,44 @@ class mod_quiz_overdue_attempt_updater {
|
||||||
|
|
||||||
// This query should have all the quiz_attempts columns.
|
// This query should have all the quiz_attempts columns.
|
||||||
return $DB->get_recordset_sql("
|
return $DB->get_recordset_sql("
|
||||||
SELECT quiza.id,
|
SELECT quiza.*,
|
||||||
quiza.quiz,
|
group_by_results.usertimeclose,
|
||||||
quiza.userid,
|
group_by_results.usertimelimit
|
||||||
quiza.attempt,
|
|
||||||
quiza.uniqueid,
|
FROM (
|
||||||
quiza.layout,
|
|
||||||
quiza.currentpage,
|
SELECT iquiza.id AS attemptid,
|
||||||
quiza.preview,
|
quiz.course,
|
||||||
quiza.state,
|
quiz.graceperiod,
|
||||||
quiza.timestart,
|
|
||||||
quiza.timefinish,
|
|
||||||
quiza.timemodified,
|
|
||||||
quiza.sumgrades,
|
|
||||||
COALESCE(quo.timeclose, MAX(qgo.timeclose), quiz.timeclose) AS usertimeclose,
|
COALESCE(quo.timeclose, MAX(qgo.timeclose), quiz.timeclose) AS usertimeclose,
|
||||||
COALESCE(quo.timelimit, MAX(qgo.timelimit), quiz.timelimit) AS usertimelimit
|
COALESCE(quo.timelimit, MAX(qgo.timelimit), quiz.timelimit) AS usertimelimit
|
||||||
|
|
||||||
FROM {quiz_attempts} quiza
|
FROM {quiz_attempts} iquiza
|
||||||
JOIN {quiz} quiz ON quiz.id = quiza.quiz
|
JOIN {quiz} quiz ON quiz.id = iquiza.quiz
|
||||||
LEFT JOIN {quiz_overrides} quo ON quo.quiz = quiz.id AND quo.userid = quiza.userid
|
LEFT JOIN {quiz_overrides} quo ON quo.quiz = quiz.id AND quo.userid = iquiza.userid
|
||||||
LEFT JOIN {quiz_overrides} qgo ON qgo.quiz = quiz.id
|
LEFT JOIN {quiz_overrides} qgo ON qgo.quiz = quiz.id
|
||||||
LEFT JOIN {groups_members} gm ON gm.userid = quiza.userid AND gm.groupid = qgo.groupid
|
LEFT JOIN {groups_members} gm ON gm.userid = iquiza.userid AND gm.groupid = qgo.groupid
|
||||||
|
|
||||||
WHERE quiza.state IN ('inprogress', 'overdue')
|
WHERE iquiza.state IN ('inprogress', 'overdue')
|
||||||
AND quiza.timemodified >= :processfrom
|
AND iquiza.timemodified >= :processfrom
|
||||||
AND quiza.timemodified < :processto
|
AND iquiza.timemodified < :processto
|
||||||
|
|
||||||
GROUP BY quiza.id,
|
GROUP BY iquiza.id,
|
||||||
quiza.quiz,
|
|
||||||
quiza.userid,
|
|
||||||
quiza.attempt,
|
|
||||||
quiza.uniqueid,
|
|
||||||
quiza.layout,
|
|
||||||
quiza.currentpage,
|
|
||||||
quiza.preview,
|
|
||||||
quiza.state,
|
|
||||||
quiza.timestart,
|
|
||||||
quiza.timefinish,
|
|
||||||
quiza.timemodified,
|
|
||||||
quiza.sumgrades,
|
|
||||||
quiz.course,
|
quiz.course,
|
||||||
quiz.timeclose,
|
quiz.timeclose,
|
||||||
quiz.timelimit,
|
quiz.timelimit,
|
||||||
quiz.graceperiod,
|
quiz.graceperiod,
|
||||||
quo.timeclose,
|
quo.timeclose,
|
||||||
quo.timelimit
|
quo.timelimit
|
||||||
|
) group_by_results
|
||||||
|
JOIN {quiz_attempts} quiza ON quiza.id = group_by_results.attemptid
|
||||||
|
|
||||||
HAVING (quiza.state = 'inprogress' AND (
|
WHERE (state = 'inprogress' AND (:timenow1 > usertimeclose OR
|
||||||
:timenow1 > COALESCE(quo.timeclose, MAX(qgo.timeclose), quiz.timeclose)
|
:timenow2 > quiza.timestart + usertimelimit))
|
||||||
OR :timenow2 > timestart + COALESCE(quo.timelimit, MAX(qgo.timelimit), quiz.timelimit)))
|
OR (state = 'overdue' AND (:timenow3 > graceperiod + usertimeclose OR
|
||||||
OR (quiza.state = 'overdue' AND (
|
:timenow4 > graceperiod + quiza.timestart + usertimelimit))
|
||||||
:timenow3 > graceperiod + COALESCE(quo.timeclose, MAX(qgo.timeclose), quiz.timeclose)
|
|
||||||
OR :timenow4 > timestart + graceperiod + COALESCE(quo.timelimit, MAX(qgo.timelimit), quiz.timelimit)))
|
|
||||||
|
|
||||||
ORDER BY quiz.course, quiza.quiz",
|
ORDER BY course, quiz",
|
||||||
|
|
||||||
array('processfrom' => $processfrom, 'processto' => $processto,
|
array('processfrom' => $processfrom, 'processto' => $processto,
|
||||||
'timenow1' => $processto, 'timenow2' => $processto,
|
'timenow1' => $processto, 'timenow2' => $processto,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue