Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
moodle
moodle
Commits
c9830ddb
Commit
c9830ddb
authored
Sep 29, 2015
by
Andrew Nicols
Browse files
Merge branch 'wip-MDL-51241-master' of
git://github.com/abgreeve/moodle
parents
2aac262f
de66ddea
Changes
1
Hide whitespace changes
Inline
Side-by-side
cohort/lib.php
View file @
c9830ddb
...
...
@@ -256,15 +256,17 @@ function cohort_get_available_cohorts($currentcontext, $withmembers = 0, $offset
$groupbysql
=
''
;
$havingsql
=
''
;
if
(
$withmembers
)
{
$groupbysql
=
" GROUP BY
$fieldssql
"
;
$fieldssql
.
=
', s.memberscnt'
;
$subfields
=
"c.id, COUNT(DISTINCT cm.userid) AS memberscnt"
;
$groupbysql
=
" GROUP BY c.id"
;
$fromsql
=
" LEFT JOIN
{
cohort_members
}
cm ON cm.cohortid = c.id "
;
$fieldssql
.
=
', COUNT(DISTINCT cm.userid) AS memberscnt'
;
if
(
in_array
(
$withmembers
,
array
(
COHORT_COUNT_ENROLLED_MEMBERS
,
COHORT_WITH_ENROLLED_MEMBERS_ONLY
,
COHORT_WITH_NOTENROLLED_MEMBERS_ONLY
)))
{
list
(
$esql
,
$params2
)
=
get_enrolled_sql
(
$currentcontext
);
$fromsql
.
=
" LEFT JOIN (
$esql
) u ON u.id = cm.userid "
;
$params
=
array_merge
(
$params2
,
$params
);
$fieldssql
.
=
', COUNT(DISTINCT u.id) AS enrolledcnt'
;
$fieldssql
.
=
', s.enrolledcnt'
;
$subfields
.
=
', COUNT(DISTINCT u.id) AS enrolledcnt'
;
}
if
(
$withmembers
==
COHORT_WITH_MEMBERS_ONLY
)
{
$havingsql
=
" HAVING COUNT(DISTINCT cm.userid) > 0"
;
...
...
@@ -280,13 +282,20 @@ function cohort_get_available_cohorts($currentcontext, $withmembers = 0, $offset
$params
=
array_merge
(
$params
,
$searchparams
);
}
$sql
=
"SELECT
$fieldssql
FROM
{
cohort
}
c
$fromsql
WHERE
$wheresql
$groupbysql
$havingsql
ORDER BY c.name, c.idnumber"
;
if
(
$withmembers
)
{
$sql
=
"SELECT "
.
str_replace
(
'c.'
,
'cohort.'
,
$fieldssql
)
.
"
FROM
{
cohort
}
cohort
JOIN (SELECT
$subfields
FROM
{
cohort
}
c
$fromsql
WHERE
$wheresql
$groupbysql
$havingsql
) s ON cohort.id = s.id
ORDER BY cohort.name, cohort.idnumber"
;
}
else
{
$sql
=
"SELECT
$fieldssql
FROM
{
cohort
}
c
$fromsql
WHERE
$wheresql
ORDER BY c.name, c.idnumber"
;
}
return
$DB
->
get_records_sql
(
$sql
,
$params
,
$offset
,
$limit
);
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment