protected function getDataProvider($uniquePageId, $form) { assert('is_string($uniquePageId)'); assert('$form instanceOf LatestActivitiesConfigurationForm'); $pageSize = Yii::app()->pagination->resolveActiveForCurrentUserByType('subListPageSize'); $filteredMashableModelClassNames = LatestActivitiesUtil::resolveMashableModelClassNamesByFilteredBy(array_keys($form->mashableModelClassNamesAndDisplayLabels), $form->filteredByModelName); $modelClassNamesAndSearchAttributeData = LatestActivitiesUtil::getSearchAttributesDataByModelClassNamesAndRelatedItemIds($filteredMashableModelClassNames, array(), $form->ownedByFilter); $modelClassNamesAndSortAttributes = LatestActivitiesUtil::getSortAttributesByMashableModelClassNames($filteredMashableModelClassNames); return new RedBeanModelsDataProvider($uniquePageId, $modelClassNamesAndSortAttributes, true, $modelClassNamesAndSearchAttributeData, array('pagination' => array('pageSize' => $pageSize))); }
public function testResolveMashableModelClassNamesByFilteredBy() { Yii::app()->user->userModel = User::getByUsername('super'); $mashableModelClassNames = array('Meeting', 'Task', 'Note'); $filteredModelClassNames = LatestActivitiesUtil::resolveMashableModelClassNamesByFilteredBy($mashableModelClassNames, LatestActivitiesConfigurationForm::FILTERED_BY_ALL); $this->assertEquals($mashableModelClassNames, $filteredModelClassNames); $filteredModelClassNames = LatestActivitiesUtil::resolveMashableModelClassNamesByFilteredBy($mashableModelClassNames, 'Task'); $this->assertEquals(array('Task'), $filteredModelClassNames); }
/** * @param string $uniquePageId * @param LatestActivitiesConfigurationForm $form * @return RedBeanModelsDataProvider */ protected function getDataProvider($uniquePageId, $form) { assert('is_string($uniquePageId)'); assert('$form instanceOf LatestActivitiesConfigurationForm'); $pageSize = Yii::app()->pagination->resolveActiveForCurrentUserByType('subListPageSize'); $filteredMashableModelClassNames = LatestActivitiesUtil::resolveMashableModelClassNamesByFilteredBy(array_keys($form->mashableModelClassNamesAndDisplayLabels), $form->filteredByModelName); $relationItemId = (int) $this->params['relationModel']->getClassId('Item'); if ($form->rollup) { $relationItemsIds = ModelRollUpUtil::getItemIdsByModelAndUser($this->params['relationModel'], Yii::app()->user->userModel); } else { $relationItemsIds = array($relationItemId); } $modelClassNamesAndSearchAttributeData = LatestActivitiesUtil::getSearchAttributesDataByModelClassNamesAndRelatedItemIds($filteredMashableModelClassNames, $relationItemsIds, $form->ownedByFilter); $modelClassNamesAndSortAttributes = LatestActivitiesUtil::getSortAttributesByMashableModelClassNames($filteredMashableModelClassNames); return new RedBeanModelsDataProvider($uniquePageId, $modelClassNamesAndSortAttributes, true, $modelClassNamesAndSearchAttributeData, array('pagination' => array('pageSize' => $pageSize))); }