Search moodle.org's
Developer Documentation

  • Bug fixes for general core bugs in 3.11.x will end 14 Nov 2022 (12 months plus 6 months extension).
  • Bug fixes for security issues in 3.11.x will end 13 Nov 2023 (18 months plus 12 months extension).
  • PHP version: minimum PHP 7.3.0 Note: minimum PHP version has increased since Moodle 3.10. PHP 7.4.x is supported too.
  • Differences Between: [Versions 310 and 311] [Versions 311 and 400] [Versions 37 and 311] [Versions 38 and 311] [Versions 39 and 311]

    This file contains the definition for the class assignment This class provides all the functionality for the new assign module.

    Copyright: 2012 NetSpot {@link http://www.netspot.com.au}
    License: http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
    File Size: 9925 lines (412 kb)
    Included or required: 2 times
    Referenced: 41 times
    Includes or requires: 1 file
     mod/assign/locallib.php

    Defines 2 classes

    assign:: (217 methods):
      __construct()
      register_return_link()
      get_return_action()
      show_intro()
      get_return_params()
      set_instance()
      set_context()
      set_course()
      set_error_message()
      get_error_messages()
      get_feedback_plugins()
      get_submission_plugins()
      is_blind_marking()
      is_hidden_grader()
      has_submissions_or_grades()
      get_plugin_by_type()
      get_feedback_plugin_by_type()
      get_submission_plugin_by_type()
      load_plugins()
      view()
      add_instance()
      delete_grades()
      delete_instance()
      delete_override()
      delete_all_overrides()
      update_effective_access()
      has_overrides()
      override_exists()
      is_override_calendar_event()
      get_valid_calendar_event_timestart_range()
      reset_userdata()
      update_plugin_instance()
      update_gradebook()
      get_assign_perpage()
      get_admin_config()
      update_calendar()
      update_instance()
      save_intro_draft_files()
      add_plugin_grade_elements()
      add_plugin_settings()
      add_all_plugin_settings()
      plugin_data_preprocessing()
      get_module_name()
      get_module_name_plural()
      has_instance()
      get_default_instance()
      get_instance()
      calculate_properties()
      get_grade_item()
      get_course_context()
      get_course_module()
      get_context()
      get_course()
      count_attachments()
      has_visible_attachments()
      display_grade()
      get_submission_info_for_participants()
      list_participants_with_filter_status_and_group()
      get_grading_sort_sql()
      get_submitted_sql()
      list_participants()
      get_participant()
      count_teams()
      count_participants()
      count_submissions_need_grading()
      count_grades()
      count_submissions()
      count_submissions_with_status()
      get_grading_userid_list()
      cron()
      notify_grade_modified()
      update_user_flags()
      update_grade()
      view_grant_extension()
      get_submission_group_members()
      get_submission_group_members_who_have_not_submitted()
      get_group_submission()
      view_course_index()
      view_plugin_page()
      get_submission_group()
      get_all_groups()
      view_plugin_content()
      download_rewrite_pluginfile_urls()
      render_editor_content()
      view_savegrading_result()
      view_quickgrading_result()
      view_footer()
      require_view_group_submission()
      require_view_submission()
      require_view_grades()
      can_view_grades()
      can_grade()
      download_submissions()
      add_to_log()
      get_renderer()
      get_user_submission()
      get_submission()
      get_user_flags()
      get_user_grade()
      get_grade()
      view_single_grading_panel()
      view_single_grade_page()
      view_remove_submission_confirm()
      view_reveal_identities_confirm()
      view_return_links()
      view_grading_table()
      view_grader()
      view_grading_page()
      plagiarism_print_disclosure()
      view_notices()
      fullname()
      view_edit_submission_page()
      is_graded()
      can_edit_group_submission()
      can_view_group_submission()
      can_view_submission()
      view_plugin_grading_batch_operation()
      process_grading_batch_operation()
      view_batch_set_workflow_state()
      view_batch_markingallocation()
      check_submit_for_grading()
      get_assign_submission_status_renderable()
      get_assign_feedback_status_renderable()
      get_assign_attempt_history_renderable()
      view_student_summary()
      show_submit_button()
      get_all_grades()
      get_all_submissions()
      get_assign_grading_summary_renderable()
      get_duedate()
      view_submission_page()
      convert_grade_for_gradebook()
      convert_submission_for_gradebook()
      gradebook_item_update()
      update_team_submission()
      update_submission()
      submissions_open()
      render_area_files()
      can_edit_submission()
      get_shared_group_members()
      get_graders()
      get_notifiable_users()
      format_notification_message_text()
      format_notification_message_html()
      send_assignment_notification()
      send_notification()
      notify_student_submission_copied()
      notify_student_submission_receipt()
      notify_graders()
      submit_for_grading()
      process_submit_other_for_grading()
      process_submit_for_grading()
      save_user_extension()
      process_save_extension()
      process_save_quick_grades()
      reveal_identities()
      process_reveal_identities()
      process_save_grading_options()
      format_grade_for_log()
      format_submission_for_log()
      process_copy_previous_attempt()
      copy_previous_attempt()
      submission_empty()
      new_submission_empty()
      save_submission()
      process_save_submission()
      grading_disabled()
      get_grading_instance()
      add_grade_form_elements()
      add_plugin_submission_elements()
      is_any_feedback_plugin_enabled()
      is_any_submission_plugin_enabled()
      add_submission_form_elements()
      remove_submission()
      revert_to_draft()
      process_remove_submission()
      process_revert_to_draft()
      lock_submission()
      process_set_batch_marking_workflow_state()
      process_set_batch_marking_allocation()
      process_lock_submission()
      unlock_submission()
      process_unlock_submission()
      apply_grade_to_user()
      process_outcomes()
      reopen_submission_if_required()
      save_grade()
      process_save_grade()
      can_upgrade_assignment()
      can_upgrade()
      copy_area_files_for_upgrade()
      process_add_attempt_group()
      process_add_attempt()
      add_attempt()
      get_user_grades_for_gradebook()
      get_uniqueid_for_user()
      allocate_unique_ids()
      get_uniqueid_for_user_static()
      get_user_id_for_uniqueid()
      get_user_id_for_uniqueid_static()
      get_marking_workflow_states_for_current_user()
      show_only_active_users()
      is_active_user()
      is_gradebook_feedback_enabled()
      get_grading_status()
      get_useridlist_key_id()
      get_useridlist_key()
      update_activity_completion_records()
      set_module_viewed()
      add_grade_notices()
      fix_null_grades()
      view_fix_rescaled_null_grades()
      set_most_recent_team_submission()
      get_marking_allocation_filters()
      get_marking_workflow_filters()
      get_filters()
      get_submissionstatement()

    assign_portfolio_caller:: (13 methods):
      expected_callbackargs()
      __construct()
      load_data()
      prepare_package()
      get_submission_plugin()
      get_sha1()
      expected_time()
      check_permissions()
      display_name()
      base_supported_formats()
      assign_process_group_deleted_in_course()
      move_group_override()
      reorder_group_overrides()


    Class: assign  - X-Ref

    Standard base class for mod_assign (assignment types).

    __construct($coursemodulecontext, $coursemodule, $course)   X-Ref
    Constructor for the base assign class.

    Note: For $coursemodule you can supply a stdclass if you like, but it
    will be more efficient to supply a cm_info object.

    param: mixed $coursemodulecontext context|null the course module context
    param: mixed $coursemodule the current course module if it was already loaded,
    param: mixed $course the current course  if it was already loaded,

    register_return_link($action, $params)   X-Ref
    Set the action and parameters that can be used to return to the current page.

    param: string $action The action for the current page
    param: array $params An array of name value pairs which form the parameters
    return: void

    get_return_action()   X-Ref
    Return an action that can be used to get back to the current page.

    return: string action

    show_intro()   X-Ref
    Based on the current assignment settings should we display the intro.

    return: bool showintro

    get_return_params()   X-Ref
    Return a list of parameters that can be used to get back to the current page.

    return: array params

    set_instance(stdClass $data)   X-Ref
    Set the submitted form data.

    param: stdClass $data The form data (instance)

    set_context(context $context)   X-Ref
    Set the context.

    param: context $context The new context

    set_course(stdClass $course)   X-Ref
    Set the course data.

    param: stdClass $course The course data

    set_error_message(string $message)   X-Ref
    Set error message.

    param: string $message The error message

    get_error_messages()   X-Ref
    Get error messages.

    return: array The array of error messages

    get_feedback_plugins()   X-Ref
    Get list of feedback plugins installed.

    return: array

    get_submission_plugins()   X-Ref
    Get list of submission plugins installed.

    return: array

    is_blind_marking()   X-Ref
    Is blind marking enabled and reveal identities not set yet?

    return: bool

    is_hidden_grader()   X-Ref
    Is hidden grading enabled?

    This just checks the assignment settings. Remember to check
    the user has the 'showhiddengrader' capability too

    return: bool

    has_submissions_or_grades()   X-Ref
    Does an assignment have submission(s) or grade(s) already?

    return: bool

    get_plugin_by_type($subtype, $type)   X-Ref
    Get a specific submission plugin by its type.

    param: string $subtype assignsubmission | assignfeedback
    param: string $type
    return: mixed assign_plugin|null

    get_feedback_plugin_by_type($type)   X-Ref
    Get a feedback plugin by type.

    param: string $type - The type of plugin e.g comments
    return: mixed assign_feedback_plugin|null

    get_submission_plugin_by_type($type)   X-Ref
    Get a submission plugin by type.

    param: string $type - The type of plugin e.g comments
    return: mixed assign_submission_plugin|null

    load_plugins($subtype)   X-Ref
    Load the plugins from the sub folders under subtype.

    param: string $subtype - either submission or feedback
    return: array - The sorted list of plugins

    view($action='', $args = array()   X-Ref
    Display the assignment, used by view.php

    The assignment is displayed differently depending on your role,
    the settings for the assignment and the status of the assignment.

    param: string $action The current action if any.
    param: array $args Optional arguments to pass to the view (instead of getting them from GET and POST).
    return: string - The page output.

    add_instance(stdClass $formdata, $callplugins)   X-Ref
    Add this instance to the database.

    param: stdClass $formdata The data submitted from the form
    param: bool $callplugins This is used to skip the plugin code
    return: mixed false if an error occurs or the int id of the new instance

    delete_grades()   X-Ref
    Delete all grades from the gradebook for this assignment.

    return: bool

    delete_instance()   X-Ref
    Delete this instance from the database.

    return: bool false if an error occurs

    delete_override($overrideid)   X-Ref
    Deletes a assign override from the database and clears any corresponding calendar events

    param: int $overrideid The id of the override being deleted
    return: bool true on success

    delete_all_overrides()   X-Ref
    Deletes all assign overrides from the database and clears any corresponding calendar events


    update_effective_access($userid)   X-Ref
    Updates the assign properties with override information for a user.

    Algorithm:  For each assign setting, if there is a matching user-specific override,
    then use that otherwise, if there are group-specific overrides, return the most
    lenient combination of them.  If neither applies, leave the assign setting unchanged.

    param: int $userid The userid.

    has_overrides()   X-Ref
    Returns whether an assign has any overrides.

    return: true if any, false if not

    override_exists($userid)   X-Ref
    Returns user override

    Algorithm:  For each assign setting, if there is a matching user-specific override,
    then use that otherwise, if there are group-specific overrides, use the one with the
    lowest sort order. If neither applies, leave the assign setting unchanged.

    param: int $userid The userid.
    return: stdClass The override

    is_override_calendar_event(\calendar_event $event)   X-Ref
    Check if the given calendar_event is either a user or group override
    event.

    return: bool

    get_valid_calendar_event_timestart_range(\calendar_event $event)   X-Ref
    This function calculates the minimum and maximum cutoff values for the timestart of
    the given event.

    It will return an array with two values, the first being the minimum cutoff value and
    the second being the maximum cutoff value. Either or both values can be null, which
    indicates there is no minimum or maximum, respectively.

    If a cutoff is required then the function must return an array containing the cutoff
    timestamp and error string to display to the user if the cutoff value is violated.

    A minimum and maximum cutoff return value will look like:
    [
    [1505704373, 'The due date must be after the sbumission start date'],
    [1506741172, 'The due date must be before the cutoff date']
    ]

    If the event does not have a valid timestart range then [false, false] will
    be returned.

    param: calendar_event $event The calendar event to get the time range for
    return: array

    reset_userdata($data)   X-Ref
    Actual implementation of the reset course functionality, delete all the
    assignment submissions for course $data->courseid.

    param: stdClass $data the data submitted from the reset course.
    return: array status array

    update_plugin_instance(assign_plugin $plugin, stdClass $formdata)   X-Ref
    Update the settings for a single plugin.

    param: assign_plugin $plugin The plugin to update
    param: stdClass $formdata The form data
    return: bool false if an error occurs

    update_gradebook($reset, $coursemoduleid)   X-Ref
    Update the gradebook information for this assignment.

    param: bool $reset If true, will reset all grades in the gradbook for this assignment
    param: int $coursemoduleid This is required because it might not exist in the database yet
    return: bool

    get_assign_perpage()   X-Ref
    Get the marking table page size

    return: integer

    get_admin_config()   X-Ref
    Load and cache the admin config for this module.

    return: stdClass the plugin config

    update_calendar($coursemoduleid)   X-Ref
    Update the calendar entries for this assignment.

    param: int $coursemoduleid - Required to pass this in because it might
    return: bool

    update_instance($formdata)   X-Ref
    Update this instance in the database.

    param: stdClass $formdata - the data submitted from the form
    return: bool false if an error occurs

    save_intro_draft_files($formdata)   X-Ref
    Save the attachments in the draft areas.

    param: stdClass $formdata

    add_plugin_grade_elements($grade, MoodleQuickForm $mform, stdClass $data, $userid)   X-Ref
    Add elements in grading plugin form.

    param: mixed $grade stdClass|null
    param: MoodleQuickForm $mform
    param: stdClass $data
    param: int $userid - The userid we are grading
    return: void

    add_plugin_settings(assign_plugin $plugin, MoodleQuickForm $mform, & $pluginsenabled)   X-Ref
    Add one plugins settings to edit plugin form.

    param: assign_plugin $plugin The plugin to add the settings from
    param: MoodleQuickForm $mform The form to add the configuration settings to.
    param: array $pluginsenabled A list of form elements to be added to a group.
    return: void

    add_all_plugin_settings(MoodleQuickForm $mform)   X-Ref
    Add settings to edit plugin form.

    param: MoodleQuickForm $mform The form to add the configuration settings to.
    return: void

    plugin_data_preprocessing(&$defaultvalues)   X-Ref
    Allow each plugin an opportunity to update the defaultvalues
    passed in to the settings form (needed to set up draft areas for
    editor and filemanager elements)

    param: array $defaultvalues

    get_module_name()   X-Ref
    Get the name of the current module.

    return: string the module name (Assignment)

    get_module_name_plural()   X-Ref
    Get the plural name of the current module.

    return: string the module name plural (Assignments)

    has_instance()   X-Ref
    Has this assignment been constructed from an instance?

    return: bool

    get_default_instance()   X-Ref
    Get the settings for the current instance of this assignment.

    return: stdClass The settings

    get_instance(int $userid = null)   X-Ref
    Get the settings for the current instance of this assignment

    param: int|null $userid the id of the user to load the assign instance for.
    return: stdClass The settings

    calculate_properties(\stdClass $record, int $userid)   X-Ref
    Calculates and updates various properties based on the specified user.

    param: stdClass $record the raw assign record.
    param: int $userid the id of the user to calculate the properties for.
    return: stdClass a new record having calculated properties.

    get_grade_item()   X-Ref
    Get the primary grade item for this assign instance.

    return: grade_item The grade_item record

    get_course_context()   X-Ref
    Get the context of the current course.

    return: mixed context|null The course context

    get_course_module()   X-Ref
    Get the current course module.

    return: cm_info|null The course module or null if not known

    get_context()   X-Ref
    Get context module.

    return: context

    get_course()   X-Ref
    Get the current course.

    return: mixed stdClass|null The course

    count_attachments()   X-Ref
    Count the number of intro attachments.

    return: int

    has_visible_attachments()   X-Ref
    Are there any intro attachments to display?

    return: boolean

    display_grade($grade, $editing, $userid=0, $modified=0)   X-Ref
    Return a grade in user-friendly form, whether it's a scale or not.

    param: mixed $grade int|null
    param: boolean $editing Are we allowing changes to this grade?
    param: int $userid The user id the grade belongs to
    param: int $modified Timestamp from when the grade was last modified
    return: string User-friendly representation of grade

    get_submission_info_for_participants($participants)   X-Ref
    Get the submission status/grading status for all submissions in this assignment for the
    given paticipants.

    These statuses match the available filters (requiregrading, submitted, notsubmitted, grantedextension).
    If this is a group assignment, group info is also returned.

    param: array $participants an associative array where the key is the participant id and
    return: array an associative array where the key is the participant id and the value is

    list_participants_with_filter_status_and_group($currentgroup, $tablesort = false)   X-Ref
    Get the submission status/grading status for all submissions in this assignment.
    These statuses match the available filters (requiregrading, submitted, notsubmitted, grantedextension).
    If this is a group assignment, group info is also returned.

    param: int $currentgroup
    param: boolean $tablesort Apply current user table sorting preferences.
    return: array List of user records with extra fields 'submitted', 'notsubmitted', 'requiregrading', 'grantedextension',

    get_grading_sort_sql()   X-Ref
    Return a valid order by segment for list_participants that matches
    the sorting of the current grading table. Not every field is supported,
    we are only concerned with a list of users so we can't search on anything
    that is not part of the user information (like grading statud or last modified stuff).

    return: string Order by clause for list_participants

    get_submitted_sql($group = 0)   X-Ref
    Returns array with sql code and parameters returning all ids of users who have submitted an assignment.

    param: int $group The group that the query is for.
    return: array list($sql, $params)

    list_participants($currentgroup, $idsonly, $tablesort = false)   X-Ref
    Load a list of users enrolled in the current course with the specified permission and group.
    0 for no group.
    Apply any current sort filters from the grading table.

    param: int $currentgroup
    param: bool $idsonly
    param: bool $tablesort
    return: array List of user records

    get_participant($userid)   X-Ref
    Load a user if they are enrolled in the current course. Populated with submission
    status for this assignment.

    param: int $userid
    return: null|stdClass user record

    count_teams($activitygroup = 0)   X-Ref
    Load a count of valid teams for this assignment.

    param: int $activitygroup Activity active group
    return: int number of valid teams

    count_participants($currentgroup)   X-Ref
    Load a count of active users enrolled in the current course with the specified permission and group.
    0 for no group.

    param: int $currentgroup
    return: int number of matching users

    count_submissions_need_grading($currentgroup = null)   X-Ref
    Load a count of active users submissions in the current module that require grading
    This means the submission modification time is more recent than the
    grading modification time and the status is SUBMITTED.

    param: mixed $currentgroup int|null the group for counting (if null the function will determine it)
    return: int number of matching submissions

    count_grades()   X-Ref
    Load a count of grades.

    return: int number of grades

    count_submissions($includenew = false)   X-Ref
    Load a count of submissions.

    param: bool $includenew When true, also counts the submissions with status 'new'.
    return: int number of submissions

    count_submissions_with_status($status, $currentgroup = null)   X-Ref
    Load a count of submissions with a specified status.

    param: string $status The submission status - should match one of the constants
    param: mixed $currentgroup int|null the group for counting (if null the function will determine it)
    return: int number of matching submissions

    get_grading_userid_list($cached = false, $useridlistid = '')   X-Ref
    Utility function to get the userid for every row in the grading table
    so the order can be frozen while we iterate it.

    param: boolean $cached If true, the cached list from the session could be returned.
    param: string $useridlistid String value used for caching the participant list.
    return: array An array of userids

    cron()   X-Ref
    Finds all assignment notifications that have yet to be mailed out, and mails them.

    Cron function to be run periodically according to the moodle cron.

    return: bool

    notify_grade_modified($grade, $mailedoverride = false)   X-Ref
    Mark in the database that this grade record should have an update notification sent by cron.

    param: stdClass $grade a grade record keyed on id
    param: bool $mailedoverride when true, flag notification to be sent again.
    return: bool true for success

    update_user_flags($flags)   X-Ref
    Update user flags for this user in this assignment.

    param: stdClass $flags a flags record keyed on id
    return: bool true for success

    update_grade($grade, $reopenattempt = false)   X-Ref
    Update a grade in the grade table for the assignment and in the gradebook.

    param: stdClass $grade a grade record keyed on id
    param: bool $reopenattempt If the attempt reopen method is manual, allow another attempt at this assignment.
    return: bool true for success

    view_grant_extension($mform)   X-Ref
    View the grant extension date page.

    Uses url parameters 'userid'
    or from parameter 'selectedusers'

    param: moodleform $mform - Used for validation of the submitted data
    return: string

    get_submission_group_members($groupid, $onlyids, $excludesuspended = false)   X-Ref
    Get a list of the users in the same group as this user.

    param: int $groupid The id of the group whose members we want or 0 for the default group
    param: bool $onlyids Whether to retrieve only the user id's
    param: bool $excludesuspended Whether to exclude suspended users
    return: array The users (possibly id's only)

    get_submission_group_members_who_have_not_submitted($groupid, $onlyids)   X-Ref
    Get a list of the users in the same group as this user that have not submitted the assignment.

    param: int $groupid The id of the group whose members we want or 0 for the default group
    param: bool $onlyids Whether to retrieve only the user id's
    return: array The users (possibly id's only)

    get_group_submission($userid, $groupid, $create, $attemptnumber=-1)   X-Ref
    Load the group submission object for a particular user, optionally creating it if required.

    param: int $userid The id of the user whose submission we want
    param: int $groupid The id of the group for this user - may be 0 in which
    param: bool $create If set to true a new submission object will be created in the database
    param: int $attemptnumber - -1 means the latest attempt
    return: stdClass The submission

    view_course_index()   X-Ref
    View a summary listing of all assignments in the current course.

    return: string

    view_plugin_page()   X-Ref
    View a page rendered by a plugin.

    Uses url parameters 'pluginaction', 'pluginsubtype', 'plugin', and 'id'.

    return: string

    get_submission_group($userid)   X-Ref
    This is used for team assignments to get the group for the specified user.
    If the user is a member of multiple or no groups this will return false

    param: int $userid The id of the user whose submission we want
    return: mixed The group or false

    get_all_groups($userid)   X-Ref
    Gets all groups the user is a member of.

    param: int $userid Teh id of the user who's groups we are checking
    return: array The group objects

    view_plugin_content($pluginsubtype)   X-Ref
    Display the submission that is used by a plugin.

    Uses url parameters 'sid', 'gid' and 'plugin'.

    param: string $pluginsubtype
    return: string

    download_rewrite_pluginfile_urls($text, $user, $plugin)   X-Ref
    Rewrite plugin file urls so they resolve correctly in an exported zip.

    param: string $text - The replacement text
    param: stdClass $user - The user record
    param: assign_plugin $plugin - The assignment plugin

    render_editor_content($filearea, $submissionid, $plugintype, $editor, $component, $shortentext = false)   X-Ref
    Render the content in editor that is often used by plugin.

    param: string $filearea
    param: int $submissionid
    param: string $plugintype
    param: string $editor
    param: string $component
    param: bool $shortentext Whether to shorten the text content.
    return: string

    view_savegrading_result($message)   X-Ref
    Display a continue page after grading.

    param: string $message - The message to display.
    return: string

    view_quickgrading_result($message)   X-Ref
    Display a continue page after quickgrading.

    param: string $message - The message to display.
    return: string

    view_footer()   X-Ref
    Display the page footer.

    return: string

    require_view_group_submission($groupid)   X-Ref
    Throw an error if the permissions to view this users' group submission are missing.

    param: int $groupid Group id.

    require_view_submission($userid)   X-Ref
    Throw an error if the permissions to view this users submission are missing.

    return: none

    require_view_grades()   X-Ref
    Throw an error if the permissions to view grades in this assignment are missing.

    return: none

    can_view_grades($groupid = null)   X-Ref
    Does this user have view grade or grade permission for this assignment?

    param: mixed $groupid int|null when is set to a value, use this group instead calculating it
    return: bool

    can_grade($user = null)   X-Ref
    Does this user have grade permission for this assignment?

    param: int|stdClass $user The object or id of the user who will do the editing (default to current user).
    return: bool

    download_submissions($userids = false)   X-Ref
    Download a zip file of all assignment submissions.

    param: array $userids Array of user ids to download assignment submissions in a zip file
    return: string - If an error occurs, this will contain the error page.

    add_to_log($action = '', $info = '', $url='', $return = false)   X-Ref
    Util function to add a message to the log.

    param: string $action The current action
    param: string $info A detailed description of the change. But no more than 255 characters.
    param: string $url The url to the assign module instance.
    param: bool $return If true, returns the arguments, else adds to log. The purpose of this is to
    return: void|array

    get_renderer()   X-Ref
    Lazy load the page renderer and expose the renderer to plugins.

    return: assign_renderer

    get_user_submission($userid, $create, $attemptnumber=-1)   X-Ref
    Load the submission object for a particular user, optionally creating it if required.

    For team assignments there are 2 submissions - the student submission and the team submission
    All files are associated with the team submission but the status of the students contribution is
    recorded separately.

    param: int $userid The id of the user whose submission we want or 0 in which case USER->id is used
    param: bool $create If set to true a new submission object will be created in the database with the status set to "new".
    param: int $attemptnumber - -1 means the latest attempt
    return: stdClass The submission

    get_submission($submissionid)   X-Ref
    Load the submission object from it's id.

    param: int $submissionid The id of the submission we want
    return: stdClass The submission

    get_user_flags($userid, $create)   X-Ref
    This will retrieve a user flags object from the db optionally creating it if required.
    The user flags was split from the user_grades table in 2.5.

    param: int $userid The user we are getting the flags for.
    param: bool $create If true the flags record will be created if it does not exist
    return: stdClass The flags record

    get_user_grade($userid, $create, $attemptnumber=-1)   X-Ref
    This will retrieve a grade object from the db, optionally creating it if required.

    param: int $userid The user we are grading
    param: bool $create If true the grade will be created if it does not exist
    param: int $attemptnumber The attempt number to retrieve the grade for. -1 means the latest submission.
    return: stdClass The grade record

    get_grade($gradeid)   X-Ref
    This will retrieve a grade object from the db.

    param: int $gradeid The id of the grade
    return: stdClass The grade record

    view_single_grading_panel($args)   X-Ref
    Print the grading page for a single user submission.

    param: array $args Optional args array (better than pulling args from _GET and _POST)
    return: string

    view_single_grade_page($mform)   X-Ref
    Print the grading page for a single user submission.

    param: moodleform $mform
    return: string

    view_remove_submission_confirm()   X-Ref
    Show a confirmation page to make sure they want to remove submission data.

    return: string

    view_reveal_identities_confirm()   X-Ref
    Show a confirmation page to make sure they want to release student identities.

    return: string

    view_return_links()   X-Ref
    View a link to go back to the previous page. Uses url parameters returnaction and returnparams.

    return: string

    view_grading_table()   X-Ref
    View the grading table of all submissions for this assignment.

    return: string

    view_grader()   X-Ref
    View entire grader app.

    return: string

    view_grading_page()   X-Ref
    View entire grading page.

    return: string

    plagiarism_print_disclosure()   X-Ref
    Capture the output of the plagiarism plugins disclosures and return it as a string.

    return: string

    view_notices($title, $notices)   X-Ref
    Message for students when assignment submissions have been closed.

    param: string $title The page title
    param: array $notices The array of notices to show.
    return: string

    fullname($user)   X-Ref
    Get the name for a user - hiding their real name if blind marking is on.

    param: stdClass $user The user record as required by fullname()
    return: string The name.

    view_edit_submission_page($mform, $notices)   X-Ref
    View edit submissions page.

    param: moodleform $mform
    param: array $notices A list of notices to display at the top of the
    return: string The page output.

    is_graded($userid)   X-Ref
    See if this assignment has a grade yet.

    param: int $userid
    return: bool

    can_edit_group_submission($groupid)   X-Ref
    Perform an access check to see if the current $USER can edit this group submission.

    param: int $groupid
    return: bool

    can_view_group_submission($groupid)   X-Ref
    Perform an access check to see if the current $USER can view this group submission.

    param: int $groupid
    return: bool

    can_view_submission($userid)   X-Ref
    Perform an access check to see if the current $USER can view this users submission.

    param: int $userid
    return: bool

    view_plugin_grading_batch_operation($mform)   X-Ref
    Allows the plugin to show a batch grading operation page.

    param: moodleform $mform
    return: none

    process_grading_batch_operation(& $mform)   X-Ref
    Ask the user to confirm they want to perform this batch operation

    param: moodleform $mform Set to a grading batch operations form
    return: string - the page to view after processing these actions

    view_batch_set_workflow_state($mform)   X-Ref
    Shows a form that allows the workflow state for selected submissions to be changed.

    param: moodleform $mform Set to a grading batch operations form
    return: string - the page to view after processing these actions

    view_batch_markingallocation($mform)   X-Ref
    Shows a form that allows the allocated marker for selected submissions to be changed.

    param: moodleform $mform Set to a grading batch operations form
    return: string - the page to view after processing these actions

    check_submit_for_grading($mform)   X-Ref
    Ask the user to confirm they want to submit their work for grading.

    param: moodleform $mform - null unless form validation has failed
    return: string

    get_assign_submission_status_renderable($user, $showlinks)   X-Ref
    Creates an assign_submission_status renderable.

    param: stdClass $user the user to get the report for
    param: bool $showlinks return plain text or links to the profile
    return: assign_submission_status renderable object

    get_assign_feedback_status_renderable($user)   X-Ref
    Creates an assign_feedback_status renderable.

    param: stdClass $user the user to get the report for
    return: assign_feedback_status renderable object

    get_assign_attempt_history_renderable($user)   X-Ref
    Creates an assign_attempt_history renderable.

    param: stdClass $user the user to get the report for
    return: assign_attempt_history renderable object

    view_student_summary($user, $showlinks)   X-Ref
    Print 2 tables of information with no action links -
    the submission summary and the grading summary.

    param: stdClass $user the user to print the report for
    param: bool $showlinks - Return plain text or links to the profile
    return: string - the html summary

    show_submit_button($submission = null, $teamsubmission = null, $userid = null)   X-Ref
    Returns true if the submit subsission button should be shown to the user.

    param: stdClass $submission The users own submission record.
    param: stdClass $teamsubmission The users team submission record if there is one
    param: int $userid The user
    return: bool

    get_all_grades($userid)   X-Ref
    Get the grades for all previous attempts.
    For each grade - the grader is a full user record,
    and gradefordisplay is added (rendered from grading manager).

    param: int $userid If not set, $USER->id will be used.
    return: array $grades All grade records for this user.

    get_all_submissions($userid)   X-Ref
    Get the submissions for all previous attempts.

    param: int $userid If not set, $USER->id will be used.
    return: array $submissions All submission records for this user (or group).

    get_assign_grading_summary_renderable($activitygroup = null)   X-Ref
    Creates an assign_grading_summary renderable.

    param: mixed $activitygroup int|null the group for calculating the grading summary (if null the function will determine it)
    return: assign_grading_summary renderable object

    get_duedate($activitygroup = null)   X-Ref
    Return group override duedate.

    param: int $activitygroup Activity active group
    return: int $duedate

    view_submission_page()   X-Ref
    View submissions page (contains details of current submission).

    return: string

    convert_grade_for_gradebook(stdClass $grade)   X-Ref
    Convert the final raw grade(s) in the grading table for the gradebook.

    param: stdClass $grade
    return: array

    convert_submission_for_gradebook(stdClass $submission)   X-Ref
    Convert submission details for the gradebook.

    param: stdClass $submission
    return: array

    gradebook_item_update($submission=null, $grade=null)   X-Ref
    Update grades in the gradebook.

    param: mixed $submission stdClass|null
    param: mixed $grade stdClass|null
    return: bool

    update_team_submission(stdClass $submission, $userid, $updatetime)   X-Ref
    Update team submission.

    param: stdClass $submission
    param: int $userid
    param: bool $updatetime
    return: bool

    update_submission(stdClass $submission, $userid, $updatetime, $teamsubmission)   X-Ref
    Update grades in the gradebook based on submission time.

    param: stdClass $submission
    param: int $userid
    param: bool $updatetime
    param: bool $teamsubmission
    return: bool

    submissions_open($userid = 0,$skipenrolled = false,$submission = false,$flags = false,$gradinginfo = false)   X-Ref
    Is this assignment open for submissions?

    Check the due date,
    prevent late submissions,
    has this person already submitted,
    is the assignment locked?

    param: int $userid - Optional userid so we can see if a different user can submit
    param: bool $skipenrolled - Skip enrollment checks (because they have been done already)
    param: stdClass $submission - Pre-fetched submission record (or false to fetch it)
    param: stdClass $flags - Pre-fetched user flags record (or false to fetch it)
    param: stdClass $gradinginfo - Pre-fetched user gradinginfo record (or false to fetch it)
    return: bool

    render_area_files($component, $area, $submissionid)   X-Ref
    Render the files in file area.

    param: string $component
    param: string $area
    param: int $submissionid
    return: string

    can_edit_submission($userid, $graderid = 0)   X-Ref
    Capability check to make sure this grader can edit this submission.

    param: int $userid - The user whose submission is to be edited
    param: int $graderid (optional) - The user who will do the editing (default to $USER->id).
    return: bool

    get_shared_group_members($cm, $userid)   X-Ref
    Returns IDs of the users who share group membership with the specified user.

    param: stdClass|cm_info $cm Course-module
    param: int $userid User ID
    return: array An array of ID of users.

    get_graders($userid)   X-Ref
    Returns a list of teachers that should be grading given submission.

    param: int $userid The submission to grade
    return: array

    get_notifiable_users($userid)   X-Ref
    Returns a list of users that should receive notification about given submission.

    param: int $userid The submission to grade
    return: array

    format_notification_message_text($messagetype,$info,$course,$context,$modulename,$assignmentname)   X-Ref
    Format a notification for plain text.

    param: string $messagetype
    param: stdClass $info
    param: stdClass $course
    param: stdClass $context
    param: string $modulename
    param: string $assignmentname

    format_notification_message_html($messagetype,$info,$course,$context,$modulename,$coursemodule,$assignmentname)   X-Ref
    Format a notification for HTML.

    param: string $messagetype
    param: stdClass $info
    param: stdClass $course
    param: stdClass $context
    param: string $modulename
    param: stdClass $coursemodule
    param: string $assignmentname

    send_assignment_notification($userfrom,$userto,$messagetype,$eventtype,$updatetime,$coursemodule,$context,$course,$modulename,$assignmentname,$blindmarking,$uniqueidforuser)   X-Ref
    Message someone about something (static so it can be called from cron).

    param: stdClass $userfrom
    param: stdClass $userto
    param: string $messagetype
    param: string $eventtype
    param: int $updatetime
    param: stdClass $coursemodule
    param: stdClass $context
    param: stdClass $course
    param: string $modulename
    param: string $assignmentname
    param: bool $blindmarking
    param: int $uniqueidforuser
    return: void

    send_notification($userfrom, $userto, $messagetype, $eventtype, $updatetime)   X-Ref
    Message someone about something.

    param: stdClass $userfrom
    param: stdClass $userto
    param: string $messagetype
    param: string $eventtype
    param: int $updatetime
    return: void

    notify_student_submission_copied(stdClass $submission)   X-Ref
    Notify student upon successful submission copy.

    param: stdClass $submission
    return: void

    notify_student_submission_receipt(stdClass $submission)   X-Ref
    Notify student upon successful submission.

    param: stdClass $submission
    return: void

    notify_graders(stdClass $submission)   X-Ref
    Send notifications to graders upon student submissions.

    param: stdClass $submission
    return: void

    submit_for_grading($data, $notices)   X-Ref
    Submit a submission for grading.

    param: stdClass $data - The form data
    param: array $notices - List of error messages to display on an error condition.
    return: bool Return false if the submission was not submitted.

    process_submit_other_for_grading($mform, $notices)   X-Ref
    A students submission is submitted for grading by a teacher.

    return: bool

    process_submit_for_grading($mform, $notices)   X-Ref
    Assignment submission is processed before grading.

    param: moodleform|null $mform If validation failed when submitting this form - this is the moodleform.
    return: bool Return false if the validation fails. This affects which page is displayed next.

    save_user_extension($userid, $extensionduedate)   X-Ref
    Save the extension date for a single user.

    param: int $userid The user id
    param: mixed $extensionduedate Either an integer date or null
    return: boolean

    process_save_extension(& $mform)   X-Ref
    Save extension date.

    param: moodleform $mform The submitted form
    return: boolean

    process_save_quick_grades()   X-Ref
    Save quick grades.

    return: string The result of the save operation

    reveal_identities()   X-Ref
    Reveal student identities to markers (and the gradebook).

    return: void

    process_reveal_identities()   X-Ref
    Reveal student identities to markers (and the gradebook).

    return: void

    process_save_grading_options()   X-Ref
    Save grading options.

    return: void

    format_grade_for_log(stdClass $grade)   X-Ref
    Take a grade object and print a short summary for the log file.
    The size limit for the log file is 255 characters, so be careful not
    to include too much information.

    param: stdClass $grade
    return: string

    format_submission_for_log(stdClass $submission)   X-Ref
    Take a submission object and print a short summary for the log file.
    The size limit for the log file is 255 characters, so be careful not
    to include too much information.

    param: stdClass $submission
    return: string

    process_copy_previous_attempt(&$notices)   X-Ref
    Require a valid sess key and then call copy_previous_attempt.

    param: array $notices Any error messages that should be shown
    return: bool

    copy_previous_attempt(&$notices)   X-Ref
    Copy the current assignment submission from the last submitted attempt.

    param: array $notices Any error messages that should be shown
    return: bool

    submission_empty($submission)   X-Ref
    Determine if the current submission is empty or not.

    param: submission $submission the students submission record to check.
    return: bool

    new_submission_empty($data)   X-Ref
    Determine if a new submission is empty or not

    param: stdClass $data Submission data
    return: bool

    save_submission(stdClass $data, & $notices)   X-Ref
    Save assignment submission for the current user.

    param: stdClass $data
    param: array $notices Any error messages that should be shown
    return: bool

    process_save_submission(&$mform, &$notices)   X-Ref
    Save assignment submission.

    param: moodleform $mform
    param: array $notices Any error messages that should be shown
    return: bool

    grading_disabled($userid, $checkworkflow=true)   X-Ref
    Determine if this users grade can be edited.

    param: int $userid - The student userid
    param: bool $checkworkflow - whether to include a check for the workflow state.
    return: bool $gradingdisabled

    get_grading_instance($userid, $grade, $gradingdisabled)   X-Ref
    Get an instance of a grading form if advanced grading is enabled.
    This is specific to the assignment, marker and student.

    param: int $userid - The student userid
    param: stdClass|false $grade - The grade record
    param: bool $gradingdisabled
    return: mixed gradingform_instance|null $gradinginstance

    add_grade_form_elements(MoodleQuickForm $mform, stdClass $data, $params)   X-Ref
    Add elements to grade form.

    param: MoodleQuickForm $mform
    param: stdClass $data
    param: array $params
    return: void

    add_plugin_submission_elements($submission,MoodleQuickForm $mform,stdClass $data,$userid)   X-Ref
    Add elements in submission plugin form.

    param: mixed $submission stdClass|null
    param: MoodleQuickForm $mform
    param: stdClass $data
    param: int $userid The current userid (same as $USER->id)
    return: void

    is_any_feedback_plugin_enabled()   X-Ref
    Check if feedback plugins installed are enabled.

    return: bool

    is_any_submission_plugin_enabled()   X-Ref
    Check if submission plugins installed are enabled.

    return: bool

    add_submission_form_elements(MoodleQuickForm $mform, stdClass $data)   X-Ref
    Add elements to submission form.

    param: MoodleQuickForm $mform
    param: stdClass $data
    return: void

    remove_submission($userid)   X-Ref
    Remove any data from the current submission.

    param: int $userid
    return: boolean

    revert_to_draft($userid)   X-Ref
    Revert to draft.

    param: int $userid
    return: boolean

    process_remove_submission($userid = 0)   X-Ref
    Remove the current submission.

    param: int $userid
    return: boolean

    process_revert_to_draft($userid = 0)   X-Ref
    Revert to draft.
    Uses url parameter userid if userid not supplied as a parameter.

    param: int $userid
    return: boolean

    lock_submission($userid)   X-Ref
    Prevent student updates to this submission

    param: int $userid
    return: bool

    process_set_batch_marking_workflow_state()   X-Ref
    Set the workflow state for multiple users

    return: void

    process_set_batch_marking_allocation()   X-Ref
    Set the marking allocation for multiple users

    return: void

    process_lock_submission($userid = 0)   X-Ref
    Prevent student updates to this submission.
    Uses url parameter userid.

    param: int $userid
    return: void

    unlock_submission($userid)   X-Ref
    Unlock the student submission.

    param: int $userid
    return: bool

    process_unlock_submission($userid = 0)   X-Ref
    Unlock the student submission.
    Uses url parameter userid.

    param: int $userid
    return: bool

    apply_grade_to_user($formdata, $userid, $attemptnumber)   X-Ref
    Apply a grade from a grading form to a user (may be called multiple times for a group submission).

    param: stdClass $formdata - the data from the form
    param: int $userid - the user to apply the grade to
    param: int $attemptnumber - The attempt number to apply the grade to.
    return: void

    process_outcomes($userid, $formdata, $sourceuserid = null)   X-Ref
    Save outcomes submitted from grading form.

    param: int $userid
    param: stdClass $formdata
    param: int $sourceuserid The user ID under which the outcome data is accessible. This is relevant

    reopen_submission_if_required($userid, $submission, $addattempt)   X-Ref
    If the requirements are met - reopen the submission for another attempt.
    Only call this function when grading the latest attempt.

    param: int $userid The userid.
    param: stdClass $submission The submission (may be a group submission).
    param: bool $addattempt - True if the "allow another attempt" checkbox was checked.
    return: bool - true if another attempt was added.

    save_grade($userid, $data)   X-Ref
    Save grade update.

    param: int $userid
    param: stdClass $data
    return: bool - was the grade saved

    process_save_grade(&$mform)   X-Ref
    Save grade.

    param: moodleform $mform
    return: bool - was the grade saved

    can_upgrade_assignment($type, $version)   X-Ref
    This function is a static wrapper around can_upgrade.

    param: string $type The plugin type
    param: int $version The plugin version
    return: bool

    can_upgrade($type, $version)   X-Ref
    This function returns true if it can upgrade an assignment from the 2.2 module.

    param: string $type The plugin type
    param: int $version The plugin version
    return: bool

    copy_area_files_for_upgrade($oldcontextid,$oldcomponent,$oldfilearea,$olditemid,$newcontextid,$newcomponent,$newfilearea,$newitemid)   X-Ref
    Copy all the files from the old assignment files area to the new one.
    This is used by the plugin upgrade code.

    param: int $oldcontextid The old assignment context id
    param: int $oldcomponent The old assignment component ('assignment')
    param: int $oldfilearea The old assignment filearea ('submissions')
    param: int $olditemid The old submissionid (can be null e.g. intro)
    param: int $newcontextid The new assignment context id
    param: int $newcomponent The new assignment component ('assignment')
    param: int $newfilearea The new assignment filearea ('submissions')
    param: int $newitemid The new submissionid (can be null e.g. intro)
    return: int The number of files copied

    process_add_attempt_group($useridlist)   X-Ref
    Add a new attempt for each user in the list - but reopen each group assignment
    at most 1 time.

    param: array $useridlist Array of userids to reopen.
    return: bool

    process_add_attempt($userid)   X-Ref
    Check for a sess key and then call add_attempt.

    param: int $userid int The user to add the attempt for
    return: bool - true if successful.

    add_attempt($userid)   X-Ref
    Add a new attempt for a user.

    param: int $userid int The user to add the attempt for
    return: bool - true if successful.

    get_user_grades_for_gradebook($userid)   X-Ref
    Get an upto date list of user grades and feedback for the gradebook.

    param: int $userid int or 0 for all users
    return: array of grade data formated for the gradebook api

    get_uniqueid_for_user($userid)   X-Ref
    Call the static version of this function

    param: int $userid The userid to lookup
    return: int The unique id

    allocate_unique_ids($assignid)   X-Ref
    Foreach participant in the course - assign them a random id.

    param: int $assignid The assignid to lookup

    get_uniqueid_for_user_static($assignid, $userid)   X-Ref
    Lookup this user id and return the unique id for this assignment.

    param: int $assignid The assignment id
    param: int $userid The userid to lookup
    return: int The unique id

    get_user_id_for_uniqueid($uniqueid)   X-Ref
    Call the static version of this function.

    param: int $uniqueid The uniqueid to lookup
    return: int The user id or false if they don't exist

    get_user_id_for_uniqueid_static($assignid, $uniqueid)   X-Ref
    Lookup this unique id and return the user id for this assignment.

    param: int $assignid The id of the assignment this user mapping is in
    param: int $uniqueid The uniqueid to lookup
    return: int The user id or false if they don't exist

    get_marking_workflow_states_for_current_user()   X-Ref
    Get the list of marking_workflow states the current user has permission to transition a grade to.

    return: array of state => description

    show_only_active_users()   X-Ref
    Check is only active users in course should be shown.

    return: bool true if only active users should be shown.

    is_active_user($userid)   X-Ref
    Return true is user is active user in course else false

    param: int $userid
    return: bool true is user is active in course.

    is_gradebook_feedback_enabled()   X-Ref
    Returns true if gradebook feedback plugin is enabled

    return: bool true if gradebook feedback plugin is enabled and visible else false.

    get_grading_status($userid)   X-Ref
    Returns the grading status.

    param: int $userid the user id
    return: string returns the grading status

    get_useridlist_key_id()   X-Ref
    The id used to uniquily identify the cache for this instance of the assign object.

    return: string

    get_useridlist_key($id = null)   X-Ref
    Generates the key that should be used for an entry in the useridlist cache.

    param: string $id Generate a key for this instance (optional)
    return: string The key for the id, or new entry if no $id is passed.

    update_activity_completion_records($teamsubmission,$requireallteammemberssubmit,$submission,$userid,$complete,$completion)   X-Ref
    Updates and creates the completion records in mdl_course_modules_completion.

    param: int $teamsubmission value of 0 or 1 to indicate whether this is a group activity
    param: int $requireallteammemberssubmit value of 0 or 1 to indicate whether all group members must click Submit
    param: obj $submission the submission
    param: int $userid the user id
    param: int $complete
    param: obj $completion
    return: null

    set_module_viewed()   X-Ref
    Update the module completion status (set it viewed) and trigger module viewed event.


    add_grade_notices()   X-Ref
    Checks for any grade notices, and adds notifications. Will display on assignment main page and grading table.

    return: void The notifications API will render the notifications at the appropriate part of the page.

    fix_null_grades()   X-Ref
    View fix rescaled null grades.

    return: bool True if null all grades are now fixed.

    view_fix_rescaled_null_grades()   X-Ref
    View fix rescaled null grades.

    return: void The notifications API will render the notifications at the appropriate part of the page.

    set_most_recent_team_submission($submission)   X-Ref
    Set the most recent submission for the team.
    The most recent team submission is used to determine if another attempt should be created when allowing another
    attempt on a group assignment, and whether the gradebook should be updated.

    param: stdClass $submission The most recent submission of the group.

    get_marking_allocation_filters($export = false)   X-Ref
    Return array of valid grading allocation filters for the grading interface.

    param: boolean $export Export the list of filters for a template.
    return: array

    get_marking_workflow_filters($export = false)   X-Ref
    Return array of valid grading workflow filters for the grading interface.

    param: boolean $export Export the list of filters for a template.
    return: array

    get_filters()   X-Ref
    Return array of valid search filters for the grading interface.

    return: array

    get_submissionstatement($adminconfig, $instance, $context)   X-Ref
    Get the correct submission statement depending on single submisison, team submission or team submission
    where all team memebers must submit.

    param: array $adminconfig
    param: assign $instance
    param: context $context
    return: string

    Class: assign_portfolio_caller  - X-Ref

    Portfolio caller class for mod_assign.

    expected_callbackargs()   X-Ref
    Callback arg for a single file export.


    __construct($callbackargs)   X-Ref
    The constructor.

    param: array $callbackargs

    load_data()   X-Ref
    Load data needed for the portfolio export.

    If the assignment type implements portfolio_load_data(), the processing is delegated
    to it. Otherwise, the caller must provide either fileid (to export single file) or
    submissionid and filearea (to export all data attached to the given submission file area)
    via callback arguments.


    prepare_package()   X-Ref
    Prepares the package up before control is passed to the portfolio plugin.

    return: mixed

    get_submission_plugin()   X-Ref
    Fetch the plugin by its type.

    return: assign_submission_plugin

    get_sha1()   X-Ref
    Calculate a sha1 has of either a single file or a list
    of files based on the data set by load_data.

    return: string

    expected_time()   X-Ref
    Calculate the time to transfer either a single file or a list
    of files based on the data set by load_data.

    return: int

    check_permissions()   X-Ref
    Checking the permissions.

    return: bool

    display_name()   X-Ref
    Display a module name.

    return: string

    base_supported_formats()   X-Ref
    Return array of formats supported by this portfolio call back.

    return: array

    assign_process_group_deleted_in_course($courseid, $groupid = null)   X-Ref
    Logic to happen when a/some group(s) has/have been deleted in a course.

    param: int $courseid The course ID.
    param: int $groupid The group id if it is known
    return: void

    move_group_override($id, $move, $assignid)   X-Ref
    Change the sort order of an override

    param: int $id of the override
    param: string $move direction of move
    param: int $assignid of the assignment
    return: bool success of operation

    reorder_group_overrides($assignid)   X-Ref
    Reorder the overrides starting at the override at the given startorder.

    param: int $assignid of the assigment