https://www.mediawiki.org/wiki/Special:Code/MediaWiki/112500

Revision: 112500
Author:   jeroendedauw
Date:     2012-02-27 18:53:01 +0000 (Mon, 27 Feb 2012)
Log Message:
-----------
fixed issue with enbrollment status

Modified Paths:
--------------
    trunk/extensions/EducationProgram/api/ApiRefreshEducation.php
    trunk/extensions/EducationProgram/includes/EPCourses.php
    trunk/extensions/EducationProgram/includes/EPOAPager.php
    trunk/extensions/EducationProgram/includes/EPOrgs.php
    trunk/extensions/EducationProgram/includes/EPRoleObject.php
    trunk/extensions/EducationProgram/includes/EPStudent.php
    trunk/extensions/EducationProgram/includes/EPStudentPager.php
    trunk/extensions/EducationProgram/includes/EPStudents.php
    trunk/extensions/EducationProgram/specials/SpecialEnroll.php

Modified: trunk/extensions/EducationProgram/api/ApiRefreshEducation.php
===================================================================
--- trunk/extensions/EducationProgram/api/ApiRefreshEducation.php       
2012-02-27 18:18:44 UTC (rev 112499)
+++ trunk/extensions/EducationProgram/api/ApiRefreshEducation.php       
2012-02-27 18:53:01 UTC (rev 112500)
@@ -24,6 +24,7 @@
        protected static $typeMap = array(
                'org' => 'EPOrsg',
                'course' => 'EPCourses',
+               'student' => 'EPStudents',
        );
 
        public function execute() {

Modified: trunk/extensions/EducationProgram/includes/EPCourses.php
===================================================================
--- trunk/extensions/EducationProgram/includes/EPCourses.php    2012-02-27 
18:18:44 UTC (rev 112499)
+++ trunk/extensions/EducationProgram/includes/EPCourses.php    2012-02-27 
18:53:01 UTC (rev 112500)
@@ -147,4 +147,32 @@
                return EP_NS_COURSE;
        }
        
+       /**
+        * Get the conditions that will select courses with the provided state.
+        * 
+        * @since 0.1
+        * 
+        * @param string $state
+        */
+       public static function getStatusConds( $state ) {
+               $now = wfGetDB( DB_SLAVE )->addQuotes( wfTimestampNow() );
+
+               $conditions = array();
+               
+               switch ( $state ) {
+                       case 'current':
+                               $conditions[] = 'end >= ' . $now;
+                               $conditions[] = 'start <= ' . $now;
+                               break;
+                       case 'passed':
+                               $conditions[] = 'end < ' . $now;
+                               break;
+                       case 'planned':
+                               $conditions[] = 'start > ' . $now;
+                               break;
+               }
+               
+               return $conditions;
+       }
+       
 }

Modified: trunk/extensions/EducationProgram/includes/EPOAPager.php
===================================================================
--- trunk/extensions/EducationProgram/includes/EPOAPager.php    2012-02-27 
18:18:44 UTC (rev 112499)
+++ trunk/extensions/EducationProgram/includes/EPOAPager.php    2012-02-27 
18:53:01 UTC (rev 112500)
@@ -114,7 +114,7 @@
                                        function( EPCourse $course ) {
                                                return $course->getLink();
                                        },
-                                       $oa->getCoursesWithState( 'current', 
'name' )
+                                       $oa->getCourses( 'name', 
EPCourses::getStatusConds( 'current' ) )
                                ) );
                                break;
                }

Modified: trunk/extensions/EducationProgram/includes/EPOrgs.php
===================================================================
--- trunk/extensions/EducationProgram/includes/EPOrgs.php       2012-02-27 
18:18:44 UTC (rev 112499)
+++ trunk/extensions/EducationProgram/includes/EPOrgs.php       2012-02-27 
18:53:01 UTC (rev 112500)
@@ -104,7 +104,6 @@
                );
        }
 
-
        /**
         * Returns a list of orgs in an array that can be fed to select inputs.
         *

Modified: trunk/extensions/EducationProgram/includes/EPRoleObject.php
===================================================================
--- trunk/extensions/EducationProgram/includes/EPRoleObject.php 2012-02-27 
18:18:44 UTC (rev 112499)
+++ trunk/extensions/EducationProgram/includes/EPRoleObject.php 2012-02-27 
18:53:01 UTC (rev 112500)
@@ -200,37 +200,6 @@
        }
 
        /**
-        * Get the courses with a certain state.
-        * States can be 'current', 'passed' and 'planned'
-        *
-        * @since 0.1
-        *
-        * @param string $state
-        * @param array|null $fields
-        * @param array $conditions
-        *
-        * @return array of EPCourse
-        */
-       public function getCoursesWithState( $state, $fields = null, array 
$conditions = array() ) {
-               $now = wfGetDB( DB_SLAVE )->addQuotes( wfTimestampNow() );
-
-               switch ( $state ) {
-                       case 'passed':
-                               $conditions[] = 'end < ' . $now;
-                               break;
-                       case 'planned':
-                               $conditions[] = 'start > ' . $now;
-                               break;
-                       case 'current':
-                               $conditions[] = 'end >= ' . $now;
-                               $conditions[] = 'start <= ' . $now;
-                               break;
-               }
-
-               return $this->getCourses( $fields, $conditions );
-       }
-
-       /**
         * Returns if the student has any course matching the provided 
conditions.
         *
         * @since 0.1
@@ -240,6 +209,7 @@
         * @return boolean
         */
        public function hasCourse( array $conditions = array() ) {
+               // TODO: make more efficient
                return count( $this->getCourses( 'id', $conditions ) ) > 0;
        }
        

Modified: trunk/extensions/EducationProgram/includes/EPStudent.php
===================================================================
--- trunk/extensions/EducationProgram/includes/EPStudent.php    2012-02-27 
18:18:44 UTC (rev 112499)
+++ trunk/extensions/EducationProgram/includes/EPStudent.php    2012-02-27 
18:53:01 UTC (rev 112500)
@@ -46,5 +46,30 @@
        public function getRoleName() {
                return 'student';
        }
+       
+       /**
+        * (non-PHPdoc)
+        * @see DBDataObject::loadSummaryFields()
+        */
+       public function loadSummaryFields( $summaryFields = null ) {
+               if ( is_null( $summaryFields ) ) {
+                       $summaryFields = array( 'last_active', 'active_enroll' 
);
+               }
+               else {
+                       $summaryFields = (array)$summaryFields;
+               }
 
+               $fields = array();
+
+               if ( in_array( 'active_enroll', $summaryFields ) ) {
+                       $fields['active_enroll'] = $this->hasCourse( 
EPCourses::getStatusConds( 'current' ) );
+               }
+
+               if ( in_array( 'last_active', $summaryFields ) ) {
+                       // TODO
+               }
+               
+               $this->setFields( $fields );
+       }
+
 }

Modified: trunk/extensions/EducationProgram/includes/EPStudentPager.php
===================================================================
--- trunk/extensions/EducationProgram/includes/EPStudentPager.php       
2012-02-27 18:18:44 UTC (rev 112499)
+++ trunk/extensions/EducationProgram/includes/EPStudentPager.php       
2012-02-27 18:53:01 UTC (rev 112500)
@@ -85,7 +85,7 @@
                                        function( EPCourse $course ) {
                                                return $course->getLink();
                                        },
-                                       
$this->currentObject->getCoursesWithState( 'current', 'name' )
+                                       $this->currentObject->getCourses( 
'name', EPCourses::getStatusConds( 'current' ) )
                                ) );
                                break;
                }

Modified: trunk/extensions/EducationProgram/includes/EPStudents.php
===================================================================
--- trunk/extensions/EducationProgram/includes/EPStudents.php   2012-02-27 
18:18:44 UTC (rev 112499)
+++ trunk/extensions/EducationProgram/includes/EPStudents.php   2012-02-27 
18:53:01 UTC (rev 112500)
@@ -60,5 +60,18 @@
                        'active_enroll' => 'bool',
                );
        }
-
+       
+       /**
+        * (non-PHPdoc)
+        * @see DBTable::getSummaryFields()
+        * @since 0.1
+        * @return array
+        */
+       public function getSummaryFields() {
+               return array(
+                       'last_active',
+                       'active_enroll',
+               );
+       }
+       
 }

Modified: trunk/extensions/EducationProgram/specials/SpecialEnroll.php
===================================================================
--- trunk/extensions/EducationProgram/specials/SpecialEnroll.php        
2012-02-27 18:18:44 UTC (rev 112499)
+++ trunk/extensions/EducationProgram/specials/SpecialEnroll.php        
2012-02-27 18:53:01 UTC (rev 112500)
@@ -231,7 +231,7 @@
                $hadStudent = $student->hasIdField();
 
                $fields = array(
-                       'active_enroll' => 1
+                       'active_enroll' => true
                );
 
                if ( !$hadStudent ) {


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to