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

Reply via email to