protected function buildCriteria() { if (is_null($this->filters)) { $this->filters = $this->configuration->getFilterForm($this->getFilters()); } $criteria = $this->filters->buildCriteria($this->getFilters()); $event = $this->dispatcher->filter(new sfEvent($this, 'admin.build_criteria'), $criteria); $criteria = $event->getReturnValue(); $disapproved_students = StudentPeer::getDisapprovedStudents(); $ids = array(); foreach ($disapproved_students as $ds) { $ids[] = $ds->getId(); } $criteria->add(StudentPeer::ID, $ids, Criteria::IN); $total_criteria_desaprobados = count(StudentPeer::doSelect($criteria)); $total_alumnos = count(StudentPeer::doSelect(new Criteria())); $this->getUser()->setAttribute('students_count', $total_criteria_desaprobados); $this->getUser()->setAttribute('students_percentaje', $total_criteria_desaprobados * 100 / $total_alumnos); return $criteria; }