https://www.mediawiki.org/wiki/Special:Code/MediaWiki/114472
Revision: 114472
Author: jeroendedauw
Date: 2012-03-24 05:38:39 +0000 (Sat, 24 Mar 2012)
Log Message:
-----------
Follow up to r114471;
Modified Paths:
--------------
trunk/extensions/EducationProgram/EducationProgram.i18n.php
trunk/extensions/EducationProgram/includes/EPStudent.php
trunk/extensions/EducationProgram/specials/SpecialEducationProgram.php
Modified: trunk/extensions/EducationProgram/EducationProgram.i18n.php
===================================================================
--- trunk/extensions/EducationProgram/EducationProgram.i18n.php 2012-03-24
05:11:10 UTC (rev 114471)
+++ trunk/extensions/EducationProgram/EducationProgram.i18n.php 2012-03-24
05:38:39 UTC (rev 114472)
@@ -217,7 +217,9 @@
'ep-summary-table-header' => 'Education Program totals',
'specialeducationprogram-summary-org-count' => 'Number of
[[Special:Institutions|institutions]]',
'specialeducationprogram-summary-course-count' => 'Number of
[[Special:Courses|courses]]',
+ 'specialeducationprogram-summary-active-course-count' => 'Number of
active courses',
'specialeducationprogram-summary-student-count' => 'Number of
[[Special:Students|students]]',
+ 'specialeducationprogram-summary-current-student-count' => 'Currently
enrolled students',
'specialeducationprogram-summary-instructor-count' => 'Number of
instructors',
'specialeducationprogram-summary-ca-count' => 'Number of
[[Special:CampusAmbassadors|Campus Ambassadors]]',
'specialeducationprogram-summary-oa-count' => 'Number of
[[Special:OnlineAmbassadors|Online Ambassadors]]',
Modified: trunk/extensions/EducationProgram/includes/EPStudent.php
===================================================================
--- trunk/extensions/EducationProgram/includes/EPStudent.php 2012-03-24
05:11:10 UTC (rev 114471)
+++ trunk/extensions/EducationProgram/includes/EPStudent.php 2012-03-24
05:38:39 UTC (rev 114472)
@@ -66,10 +66,6 @@
$fields['active_enroll'] = $this->hasCourse(
EPCourses::getStatusConds( 'current' ) );
}
- if ( in_array( 'last_active', $summaryFields ) ) {
- // TODO
- }
-
$this->setFields( $fields );
}
Modified: trunk/extensions/EducationProgram/specials/SpecialEducationProgram.php
===================================================================
--- trunk/extensions/EducationProgram/specials/SpecialEducationProgram.php
2012-03-24 05:11:10 UTC (rev 114471)
+++ trunk/extensions/EducationProgram/specials/SpecialEducationProgram.php
2012-03-24 05:38:39 UTC (rev 114472)
@@ -87,14 +87,45 @@
$data['org-count'] = $lang->formatNum(
EPOrgs::singleton()->count() );
$data['course-count'] = $lang->formatNum(
EPCourses::singleton()->count() );
- $data['student-count'] = $lang->formatNum(
EPStudents::singleton()->count() );
- $data['instructor-count'] = $lang->formatNum(
EPInstructors::singleton()->count() );
- $data['oa-count'] = $lang->formatNum(
EPOAs::singleton()->count() );
- $data['ca-count'] = $lang->formatNum(
EPCAs::singleton()->count() );
+ $data['active-course-count'] = $lang->formatNum(
EPCourses::singleton()->count( EPCourses::getStatusConds( 'current' ) ) );
+ $data['student-count'] = $this->getRoleCount( EP_STUDENT );
+
+ // What do you mean? "to much nesting"? :)
+ $data['current-student-count'] = $lang->formatNum( count(
array_unique( call_user_func_array(
+ 'array_merge',
+ array_map( 'unserialize',
EPCourses::singleton()->selectFields( 'students', EPCourses::getStatusConds(
'current' ) ) )
+ ) ) ) );
+
+ $data['instructor-count'] = $this->getRoleCount( EP_INSTRUCTOR
);
+ $data['oa-count'] = $this->getRoleCount( EP_OA );
+ $data['ca-count'] = $this->getRoleCount( EP_CA );
+
return $data;
}
+ /**
+ * Returns the amount of people that currently have a role for at least
one course.
+ * So users that have not enlisted for a single course are not counted.
+ *
+ * @since 0.1
+ *
+ * @param integer $roleId
+ *
+ * @return integer
+ */
+ protected function getRoleCount( $roleId ) {
+ $dbr = wfGetDB( DB_SLAVE );
+
+ return $dbr->selectRow(
+ 'ep_users_per_course',
+ array( 'COUNT(upc_user_id) AS rowcount' ),
+ array( 'upc_role' => $roleId ),
+ __METHOD__,
+ array( 'DISTINCT' )
+ )->rowcount;
+ }
+
public function displayByTerm() {
$terms = $this->getTermData();
@@ -116,7 +147,11 @@
$html .= Html::element( 'th', array(), $isHeader ? '' :
$this->msgTxt( $row ) );
foreach ( $terms as $termName => $term ) {
- $html .= Html::element( $isHeader ? 'th' :
'td', array(), $isHeader ? $termName : $term[$row] );
+ $html .= Html::element(
+ $isHeader ? 'th' : 'td',
+ array(),
+ $isHeader ? $termName :
$this->getLanguage()->formatNum( $term[$row] )
+ );
}
$html .= '</tr>';
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs