Moodle PHP Documentation 4.2
Moodle 4.2.8 (Build: 20240610) (2d41ac46f45)
quiz_overview_report Class Reference

Quiz report subclass for the overview (grades) report. More...

Inheritance diagram for quiz_overview_report:
mod_quiz\local\reports\attempts_report mod_quiz\local\reports\report_base

Public Member Functions

 display ($quiz, $cm, $course)
 Override this function to display the report.
 
 get_current_group ($cm, $course, $context)
 Get the current group for the user user looking at the report.
 
 init ($mode, $formclass, $quiz, $cm, $course)
 Initialise various aspects of this report.
 
 print_header_and_tabs ($cm, $course, $quiz, $reportmode='overview')
 Initialise some parts of $PAGE and start output.
 
 regrade_attempt ($attempt, $dryrun=false, $slots=null)
 Regrade a particular quiz attempt.
 

Static Public Member Functions

static get_bands_count_and_width ($quiz)
 Get the bands configuration for the quiz.
 
static get_bands_labels ($bands, $bandwidth, $quiz)
 Get the bands labels.
 

Public Attributes

string const ALL_WITH = 'all_with'
 constant used for the options, means all users with attempts.
 
int const DEFAULT_PAGE_SIZE = 30
 default page size for reports.
 
string const ENROLLED_ALL = 'enrolled_any'
 constant used for the options, means all enrolled users.
 
string const ENROLLED_WITH = 'enrolled_with'
 constant used for the options, means only enrolled users with attempts.
 
string const ENROLLED_WITHOUT = 'enrolled_without'
 constant used for the options, means only enrolled users without attempts.
 
int const NO_GROUPS_ALLOWED = -2
 special value used in place of groupid, to mean the use cannot access any groups.
 

Protected Member Functions

 add_grade_columns ($quiz, $usercanseegrades, &$columns, &$headers, $includefeedback=true)
 Add all the grade and feedback columns, if applicable, to the $columns and $headers arrays.
 
 add_state_column (&$columns, &$headers)
 Add the state column to the $columns and $headers arrays.
 
 add_time_columns (&$columns, &$headers)
 Add all the time-related columns to the $columns and $headers arrays.
 
 add_user_columns ($table, &$columns, &$headers)
 Add all the user-related columns to the $columns and $headers arrays.
 
 clear_regrade_table ($quiz, core\dml\sql_join $groupstudentsjoins)
 Remove all information about pending/complete regrades from the database.
 
 configure_user_columns ($table)
 Set the display options for the user-related columns in the table.
 
 count_question_attempts_needing_regrade ($quiz, core\dml\sql_join $groupstudentsjoins)
 Count the number of attempts in need of a regrade.
 
 delete_selected_attempts ($quiz, $cm, $attemptids, core\dml\sql_join $allowedjoins)
 Delete the quiz attempts.
 
 finish_regrade ($nexturl)
 Finish displaying the regrade progress page.
 
 get_base_url ()
 Get the base URL for this report.
 
 get_students_joins ($cm, $course=null)
 Get sql fragments (joins) which can be used to build queries that will select an appropriate set of students to show in the reports.
 
 has_regraded_questions ($from, $where, $params)
 Are there any pending regrades in the table we are going to show?
 
 print_standard_header_and_messages ($cm, $course, $quiz, $options, $currentgroup, $hasquestions, $hasstudents)
 Outputs the things you commonly want at the top of a quiz report.
 
 process_actions ($quiz, $cm, $currentgroup, core\dml\sql_join $groupstudentsjoins, core\dml\sql_join $allowedjoins, $redirecturl)
 Extends parent function processing any submitted actions.
 
 regrade_attempts ($quiz, $dryrun=false, core\dml\sql_join $groupstudentsjoins=null, $attemptids=[])
 Regrade attempts for this quiz, exactly which attempts are regraded is controlled by the parameters.
 
 regrade_attempts_needing_it ($quiz, core\dml\sql_join $groupstudentsjoins)
 Regrade those questions in those attempts that are marked as needing regrading in the quiz_overview_regrades table.
 
 regrade_batch_of_attempts ($quiz, array $attempts, bool $dryrun, core\dml\sql_join $groupstudentsjoins)
 This is a helper used by regrade_attempts() and regrade_attempts_needing_it().
 
 set_up_table_columns ($table, $columns, $headers, $reporturl, attempts_report_options $options, $collapsible)
 Set up the table.
 
 start_regrade ($quiz, $cm)
 Check necessary capabilities, and start the display of the regrade progress page.
 
 unlock_session ()
 Unlock the session and allow the regrading process to run in the background.
 
 update_overall_grades ($quiz)
 Update the final grades for all attempts.
 

Static Protected Member Functions

static get_chart ($labels, $data)
 Get a chart.
 

Protected Attributes

context_module $context
 the quiz context.
 
attempts_report_options_form $form
 The settings form to use.
 
bool $hasgroupstudents
 
string $mode
 the mode this report is.
 
string $qmsubselect
 SQL fragment for selecting the attempt that gave the final grade, if applicable.
 
quiz_settings null $quizobj = null
 quiz settings object.
 
boolean $showgrades = null
 caches the results of {
 

Detailed Description

Quiz report subclass for the overview (grades) report.

License
http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later

Member Function Documentation

◆ add_grade_columns()

mod_quiz\local\reports\attempts_report::add_grade_columns ( $quiz,
$usercanseegrades,
& $columns,
& $headers,
$includefeedback = true )
protectedinherited

Add all the grade and feedback columns, if applicable, to the $columns and $headers arrays.

Parameters
stdClass$quizthe quiz settings.
bool$usercanseegradeswhether the user is allowed to see grades for this quiz.
array$columnsthe list of columns. Added to.
array$headersthe columns headings. Added to.
bool$includefeedbackwhether to include the feedbacktext columns

◆ add_state_column()

mod_quiz\local\reports\attempts_report::add_state_column ( & $columns,
& $headers )
protectedinherited

Add the state column to the $columns and $headers arrays.

Parameters
array$columnsthe list of columns. Added to.
array$headersthe columns headings. Added to.

◆ add_time_columns()

mod_quiz\local\reports\attempts_report::add_time_columns ( & $columns,
& $headers )
protectedinherited

Add all the time-related columns to the $columns and $headers arrays.

Parameters
array$columnsthe list of columns. Added to.
array$headersthe columns headings. Added to.

◆ add_user_columns()

mod_quiz\local\reports\attempts_report::add_user_columns ( $table,
& $columns,
& $headers )
protectedinherited

Add all the user-related columns to the $columns and $headers arrays.

Parameters
table_sql$tablethe table being constructed.
array$columnsthe list of columns. Added to.
array$headersthe columns headings. Added to.

◆ clear_regrade_table()

quiz_overview_report::clear_regrade_table ( $quiz,
core\dml\sql_join $groupstudentsjoins )
protected

Remove all information about pending/complete regrades from the database.

Parameters
stdClass$quizthe quiz settings.
core\dml\sql_join$groupstudentsjoins(joins, wheres, params). If this is given, only data relating to these users is cleared.

◆ configure_user_columns()

mod_quiz\local\reports\attempts_report::configure_user_columns ( $table)
protectedinherited

Set the display options for the user-related columns in the table.

Parameters
table_sql$tablethe table being constructed.

◆ count_question_attempts_needing_regrade()

quiz_overview_report::count_question_attempts_needing_regrade ( $quiz,
core\dml\sql_join $groupstudentsjoins )
protected

Count the number of attempts in need of a regrade.

Parameters
stdClass$quizthe quiz settings.
core\dml\sql_join$groupstudentsjoins(joins, wheres, params) If this is given, only data relating to these users is cleared.
Return values
intthe number of attempts.

◆ delete_selected_attempts()

mod_quiz\local\reports\attempts_report::delete_selected_attempts ( $quiz,
$cm,
$attemptids,
core\dml\sql_join $allowedjoins )
protectedinherited

Delete the quiz attempts.

Parameters
stdClass$quizthe quiz settings. Attempts that don't belong to this quiz are not deleted.
stdClass$cmthe course_module object.
array$attemptidsthe list of attempt ids to delete.
core\dml\sql_join$allowedjoins(joins, wheres, params) This list of userids that are visible in the report. Users can only delete attempts that they are allowed to see in the report. Empty means all users.

Reimplemented in testable_quiz_attempts_report.

◆ display()

quiz_overview_report::display ( $quiz,
$cm,
$course )

Override this function to display the report.

Parameters
stdClass$quizthis quiz.
stdClass$cmthe course-module for this quiz.
stdClass$coursethe coures we are in.

Reimplemented from mod_quiz\local\reports\report_base.

◆ finish_regrade()

quiz_overview_report::finish_regrade ( $nexturl)
protected

Finish displaying the regrade progress page.

Parameters
moodle_url$nexturlwhere to send the user after the regrade. @uses exit. This method never returns.

◆ get_bands_count_and_width()

static quiz_overview_report::get_bands_count_and_width ( $quiz)
static

Get the bands configuration for the quiz.

This returns the configuration for having between 11 and 20 bars in a chart based on the maximum grade to be given on a quiz. The width of a band is the number of grade points it encapsulates.

Parameters
stdClass$quizThe quiz object.
Return values
arrayContains the number of bands, and their width.

◆ get_bands_labels()

static quiz_overview_report::get_bands_labels ( $bands,
$bandwidth,
$quiz )
static

Get the bands labels.

Parameters
int$bandsThe number of bands.
int$bandwidthThe band width.
stdClass$quizThe quiz object.
Return values
string[]The labels.

◆ get_base_url()

mod_quiz\local\reports\attempts_report::get_base_url ( )
protectedinherited

Get the base URL for this report.

Return values
moodle_urlthe URL.

◆ get_chart()

static quiz_overview_report::get_chart ( $labels,
$data )
staticprotected

Get a chart.

Parameters
string[]$labelsChart labels.
int[]$dataThe data.
Return values
core\chart_base

◆ get_current_group()

mod_quiz\local\reports\report_base::get_current_group ( $cm,
$course,
$context )
inherited

Get the current group for the user user looking at the report.

Parameters
stdClass$cmthe course_module information.
stdClass$coursethe course settings.
context$contextthe quiz context.
Return values
intthe current group id, if applicable. 0 for all users, NO_GROUPS_ALLOWED if the user cannot see any group.

◆ get_students_joins()

mod_quiz\local\reports\attempts_report::get_students_joins ( $cm,
$course = null )
protectedinherited

Get sql fragments (joins) which can be used to build queries that will select an appropriate set of students to show in the reports.

Parameters
stdClass$cmthe course module.
stdClass$coursethe course settings.
Return values
arraywith four elements: 0 => integer the current group id (0 for none). 1 => core\dml\sql_join Contains joins, wheres, params for all the students in this course. 2 => core\dml\sql_join Contains joins, wheres, params for all the students in the current group. 3 => core\dml\sql_join Contains joins, wheres, params for all the students to show in the report. Will be the same as either element 1 or 2.

◆ has_regraded_questions()

quiz_overview_report::has_regraded_questions ( $from,
$where,
$params )
protected

Are there any pending regrades in the table we are going to show?

Parameters
string$fromtables used by the main query.
string$wherewhere clause used by the main query.
array$paramsrequired by the SQL.
Return values
boolwhether there are pending regrades.

◆ init()

mod_quiz\local\reports\attempts_report::init ( $mode,
$formclass,
$quiz,
$cm,
$course )
inherited

Initialise various aspects of this report.

Parameters
string$mode
string$formclass
stdClass$quiz
stdClass$cm
stdClass$course
Return values
arraywith four elements: 0 => integer the current group id (0 for none). 1 => core\dml\sql_join Contains joins, wheres, params for all the students in this course. 2 => core\dml\sql_join Contains joins, wheres, params for all the students in the current group. 3 => core\dml\sql_join Contains joins, wheres, params for all the students to show in the report. Will be the same as either element 1 or 2.

◆ print_header_and_tabs()

mod_quiz\local\reports\report_base::print_header_and_tabs ( $cm,
$course,
$quiz,
$reportmode = 'overview' )
inherited

Initialise some parts of $PAGE and start output.

Parameters
stdClass$cmthe course_module information.
stdClass$coursethe course settings.
stdClass$quizthe quiz settings.
string$reportmodethe report name.

Reimplemented in quiz_grading_report.

◆ print_standard_header_and_messages()

mod_quiz\local\reports\attempts_report::print_standard_header_and_messages ( $cm,
$course,
$quiz,
$options,
$currentgroup,
$hasquestions,
$hasstudents )
protectedinherited

Outputs the things you commonly want at the top of a quiz report.

Calls through to {

See also
print_header_and_tabs()} and then outputs the standard group selector, number of attempts summary, and messages to cover common cases when the report can't be shown.
Parameters
stdClass$cmthe course_module information.
stdClass$coursethe course settings.
stdClass$quizthe quiz settings.
attempts_report_options$optionsthe current report settings.
int$currentgroupthe current group.
bool$hasquestionswhether there are any questions in the quiz.
bool$hasstudentswhether there are any relevant students.

◆ process_actions()

quiz_overview_report::process_actions ( $quiz,
$cm,
$currentgroup,
core\dml\sql_join $groupstudentsjoins,
core\dml\sql_join $allowedjoins,
$redirecturl )
protected

Extends parent function processing any submitted actions.

Parameters
stdClass$quiz
stdClass$cm
int$currentgroup
core\dml\sql_join$groupstudentsjoins(joins, wheres, params)
core\dml\sql_join$allowedjoins(joins, wheres, params)
moodle_url$redirecturl

Reimplemented from mod_quiz\local\reports\attempts_report.

◆ regrade_attempt()

quiz_overview_report::regrade_attempt ( $attempt,
$dryrun = false,
$slots = null )

Regrade a particular quiz attempt.

Either for real ($dryrun = false), or as a pretend regrade to see which fractions would change. The outcome is stored in the quiz_overview_regrades table.

Note, $attempt is not upgraded in the database. The caller needs to do that. However, $attempt->sumgrades is updated, if this is not a dry run.

Parameters
stdClass$attemptthe quiz attempt to regrade.
bool$dryrunif true, do a pretend regrade, otherwise do it for real.
array$slotsif null, regrade all questions, otherwise, just regrade the questions with those slots.
Return values
arraymessages array with keys slot number, and values reasons why that slot cannot be regraded.

◆ regrade_attempts()

quiz_overview_report::regrade_attempts ( $quiz,
$dryrun = false,
core\dml\sql_join $groupstudentsjoins = null,
$attemptids = [] )
protected

Regrade attempts for this quiz, exactly which attempts are regraded is controlled by the parameters.

Parameters
stdClass$quizthe quiz settings.
bool$dryrunif true, do a pretend regrade, otherwise do it for real.
core\dml\sql_join | null$groupstudentsjoinsempty for all attempts, otherwise regrade attempts for these users.
array$attemptidsblank for all attempts, otherwise only regrade attempts whose id is in this list.

◆ regrade_attempts_needing_it()

quiz_overview_report::regrade_attempts_needing_it ( $quiz,
core\dml\sql_join $groupstudentsjoins )
protected

Regrade those questions in those attempts that are marked as needing regrading in the quiz_overview_regrades table.

Parameters
stdClass$quizthe quiz settings.
core\dml\sql_join$groupstudentsjoinsempty for all attempts, otherwise regrade attempts for these users.

◆ regrade_batch_of_attempts()

quiz_overview_report::regrade_batch_of_attempts ( $quiz,
array $attempts,
bool $dryrun,
core\dml\sql_join $groupstudentsjoins )
protected

This is a helper used by regrade_attempts() and regrade_attempts_needing_it().

Given an array of attempts, it regrades them all, or does a dry run. Each object in the attempts array must be a row from the quiz_attempts table, with the core_user\fields\for_name() fields from the user table joined in. In addition, if $attempt->regradeonlyslots is set, then only those slots are regraded, otherwise all slots are regraded.

Parameters
stdClass$quizthe quiz settings.
array$attemptsof data from the quiz_attempts table, with extra data as above.
bool$dryrunif true, do a pretend regrade, otherwise do it for real.
core\dml\sql_join$groupstudentsjoinsempty for all attempts, otherwise regrade attempts

◆ set_up_table_columns()

mod_quiz\local\reports\attempts_report::set_up_table_columns ( $table,
$columns,
$headers,
$reporturl,
attempts_report_options $options,
$collapsible )
protectedinherited

Set up the table.

Parameters
table_sql$tablethe table being constructed.
array$columnsthe list of columns.
array$headersthe columns headings.
moodle_url$reporturlthe URL of this report.
attempts_report_options$optionsthe display options.
bool$collapsiblewhether to allow columns in the report to be collapsed.

◆ start_regrade()

quiz_overview_report::start_regrade ( $quiz,
$cm )
protected

Check necessary capabilities, and start the display of the regrade progress page.

Parameters
stdClass$quizthe quiz settings.
stdClass$cmthe cm object for the quiz.

◆ update_overall_grades()

quiz_overview_report::update_overall_grades ( $quiz)
protected

Update the final grades for all attempts.

This method is used following a regrade.

Parameters
stdClass$quizthe quiz settings.

Member Data Documentation

◆ $quizobj

quiz_settings null mod_quiz\local\reports\attempts_report::$quizobj = null
protectedinherited

quiz settings object.

Set in the init method.

◆ $showgrades

boolean mod_quiz\local\reports\attempts_report::$showgrades = null
protectedinherited

caches the results of {

See also
should_show_grades()}.

The documentation for this class was generated from the following file: