Dear Peter,
Adaptable calls the core API for this:
protected static function assign_nums($courseid, $mod) {
// Ref: get_assign_grading_summary_renderable().
$coursemodulecontext = \context_module::instance($mod->id);
$course = get_course($courseid);
$assign = new \assign($coursemodulecontext, $mod, $course);
$activitygroup = groups_get_activity_group($mod);
$instance = $assign->get_default_instance();
if ($instance->teamsubmission) {
$participants = $assign->count_teams($activitygroup);
} else {
$participants = $assign->count_participants($activitygroup);
}
$submitted = ASSIGN_SUBMISSION_STATUS_SUBMITTED;
return array(
'participants' => $participants,
'submissions' => $assign->count_submissions_with_status($submitted, $activitygroup),
'ungraded' => $assign->count_submissions_need_grading($activitygroup)
);
}
Thus only an interface to what core Moodle tells it.
G