/** * Processing before redirecting * @param RedBeanModel $model */ protected function beforeRedirect($model) { assert('$model instanceof RedBeanModel'); $getData = GetUtil::getData(); if ($this->getAction()->id == 'listViewMerge') { Yii::app()->gameHelper->muteScoringModelsOnSave(); ListViewMergeUtil::processCopyRelationsAndDeleteNonPrimaryModelsInMerge($model, $getData); Yii::app()->gameHelper->unmuteScoringModelsOnSave(); } }
/** * Override sub-class if you need to set anything into the element object. */ protected function resolveElementDuringFormLayoutRender(&$element) { ListViewMergeUtil::resolveElementDuringFormLayoutRenderForListViewMerge($element, 'ModelAttributeElementPreContentView', $this->selectedAccounts, $this->model, 'AccountModelAttributeAndElementDataToMergeItem'); }
public function testEmailCopyActivity() { $this->markTestSkipped(); Yii::app()->user->userModel = User::getByUsername('super'); $this->setFirstModel(); $this->setSecondModel(); $emailMessage = EmailMessageTestHelper::createDraftSystemEmail('Subject 1', Yii::app()->user->userModel); $this->assertTrue($emailMessage->save()); $emailMessageId = $emailMessage->id; $emailMessage->forgetAll(); $emailMessage = EmailMessage::getById($emailMessageId); $newSender = new EmailMessageSender(); $newSender->fromAddress = $this->selectedModels[1]->primaryEmail->emailAddress; $newSender->fromName = strval($this->selectedModels[1]); $newSender->personsOrAccounts->add($this->selectedModels[1]); $emailMessage->sender = $newSender; $emailMessage->save(); ListViewMergeUtil::processCopyEmailActivity($this->selectedModels[0], $this->selectedModels[1]); $emailMessage = EmailMessage::getById($emailMessageId); $this->assertEquals(strval($this->selectedModels[0]), $emailMessage->sender->fromName); $this->assertEquals('*****@*****.**', $emailMessage->sender->fromAddress); //For recipient $emailMessage = EmailMessageTestHelper::createDraftSystemEmail('Subject 2', Yii::app()->user->userModel); $this->assertTrue($emailMessage->save()); $emailMessageId = $emailMessage->id; $emailMessage->forgetAll(); $emailMessage = EmailMessage::getById($emailMessageId); $recipient = new EmailMessageRecipient(); $recipient->toAddress = $this->selectedModels[1]->primaryEmail->emailAddress; $recipient->toName = strval($this->selectedModels[1]); $recipient->type = EmailMessageRecipient::TYPE_TO; $recipient->personsOrAccounts->add($this->selectedModels[1]); $emailMessage->recipients->add($recipient); $this->assertTrue($emailMessage->save()); ListViewMergeUtil::processCopyEmailActivity($this->selectedModels[0], $this->selectedModels[1]); $emailMessage = EmailMessage::getById($emailMessageId); $recipients = $emailMessage->recipients; $this->assertCount(2, $recipients); $this->assertEquals(strval($this->selectedModels[0]), $recipients[1]->toName); $this->assertEquals('*****@*****.**', $recipients[1]->toAddress); $this->assertCount(1, $recipients[1]->personsOrAccounts); }
protected function processResolveFormLayoutMetadataForOneColumnDisplay() { $modelClass = $this->modelClass; $viewClassName = $modelClass . 'sMergedEditAndDetailsView'; $layoutMetadata = ListViewMergeUtil::resolveFormLayoutMetadataForOneColumnDisplay($viewClassName::getMetadata()); $rows = $layoutMetadata['global']['panels'][0]['rows']; $modifiedElementsData = array(); foreach ($rows as $row) { $modifiedElementsData[] = $row['cells'][0]['elements'][0]; } if ($this->modelClass == 'Contact') { $this->assertEquals('title', $modifiedElementsData[0]['attributeName']); $this->assertEquals('DropDown', $modifiedElementsData[0]['type']); $this->assertEquals('firstName', $modifiedElementsData[1]['attributeName']); $this->assertEquals('Text', $modifiedElementsData[1]['type']); $this->assertEquals('lastName', $modifiedElementsData[2]['attributeName']); $this->assertEquals('Text', $modifiedElementsData[2]['type']); } }
/** * Override sub-class if you need to set anything into the element object. */ protected function resolveElementDuringFormLayoutRender(&$element) { if (!$element instanceof NullElement) { ListViewMergeUtil::resolveElementDuringFormLayoutRenderForListViewMerge($element, 'ModelAttributeElementPreContentView', $this->selectedContacts, $this->model, 'ContactModelAttributeAndElementDataToMergeItem'); } }