protected function processSetPrimaryModelForListViewMerge() { Yii::app()->user->userModel = User::getByUsername('super'); $this->setFirstModel(); $this->setSecondModel(); $modelsList = ListViewMergeUtil::getSelectedModelsListForMerge($this->modelClass, array('selectedIds' => $this->selectedModels[0]->id . ',' . $this->selectedModels[1]->id)); $formModel = new ModelsListDuplicateMergedModelForm(); $formModel->selectedModels = $modelsList; ListViewMergeUtil::setPrimaryModelForListViewMerge($formModel, array('primaryModelId' => $this->selectedModels[0]->id)); $this->primaryModel = $formModel->primaryModel; $this->assertEquals($this->selectedModels[0]->id, $formModel->primaryModel->id); }
/** * Process list view merge for models */ public function processListViewMerge($modelClassName, $mergedModelFormClassName, $viewPrefix, $pageView, $redirectUrl) { $getData = GetUtil::getData(); try { $modelsList = ListViewMergeUtil::getSelectedModelsListForMerge($modelClassName, $getData); } catch (NotFoundException $exception) { $message = Zurmo::t('ZurmoModule', 'At least one record you are trying to merge does not exist.'); Yii::app()->user->setFlash('notification', $message); $this->redirect('index'); } $model = new $mergedModelFormClassName('listViewMerge'); $model->selectedModels = $modelsList; ListViewMergeUtil::setPrimaryModelForListViewMerge($model, $getData); $redirectUrl = Yii::app()->createUrl($redirectUrl); if ($model->validate()) { $titleBarAndEditView = $this->makeListMergeView($this->attemptToSaveModelFromPost($model->primaryModel, null, $redirectUrl), $viewPrefix, array_values($modelsList)); $view = new $pageView(ZurmoDefaultViewUtil::makeStandardViewForCurrentUser($this, $titleBarAndEditView)); echo $view->render(); } else { $this->redirect($redirectUrl); } }