/**
  * (non-PHPdoc)
  * @see ModelHasRelatedItemsZurmoControllerUtil::afterSetAttributesDuringSave()
  */
 protected function afterSetAttributesDuringSave($model, $explicitReadWriteModelPermissions)
 {
     parent::afterSetAttributesDuringSave($model, $explicitReadWriteModelPermissions);
     if ($model instanceof Item) {
         FileModelUtil::resolveModelsHasManyFilesFromPost($model, 'files', 'filesIds');
     }
 }
Ejemplo n.º 2
0
 public function testResolveModelsHasManyFilesFromPost()
 {
     if (!RedBeanDatabase::isFrozen()) {
         Yii::app()->user->userModel = User::getByUsername('super');
         $fileCount = count(FileModel::getAll());
         $this->assertEquals(0, $fileCount);
         $file1 = ZurmoTestHelper::createFileModel();
         $file2 = ZurmoTestHelper::createFileModel();
         $file3 = ZurmoTestHelper::createFileModel();
         $model = new ModelWithAttachmentTestItem();
         $_POST['myTest'] = array($file1->id, $file2->id, $file3->id);
         FileModelUtil::resolveModelsHasManyFilesFromPost($model, 'files', 'myTest');
         $model->member = 'test';
         $saved = $model->save();
         $this->assertTrue($saved);
         $fileCount = count(FileModel::getAll());
         $this->assertEquals(3, $fileCount);
         $modelId = $model->id;
         $model->forget();
         $model = ModelWithAttachmentTestItem::getById($modelId);
         $this->assertEquals(3, $model->files->count());
         //Add a fourth file.
         $file4 = ZurmoTestHelper::createFileModel();
         $_POST['myTest'] = array($file1->id, $file2->id, $file3->id, $file4->id);
         FileModelUtil::resolveModelsHasManyFilesFromPost($model, 'files', 'myTest');
         $saved = $model->save();
         $this->assertTrue($saved);
         $fileCount = count(FileModel::getAll());
         $this->assertEquals(4, $fileCount);
         $model->forget();
         $model = ModelWithAttachmentTestItem::getById($modelId);
         $this->assertEquals(4, $model->files->count());
         //Remove the 2nd file.
         $_POST['myTest'] = array($file1->id, $file3->id, $file4->id);
         FileModelUtil::resolveModelsHasManyFilesFromPost($model, 'files', 'myTest');
         $saved = $model->save();
         $this->assertTrue($saved);
         $fileCount = count(FileModel::getAll());
         $this->assertEquals(3, $fileCount);
         $model->forget();
         $model = ModelWithAttachmentTestItem::getById($modelId);
         $this->assertEquals(3, $model->files->count());
         $compareIds = array($file1->id, $file3->id, $file4->id);
         foreach ($model->files as $fileModel) {
             $this->assertTrue(in_array($fileModel->id, $compareIds));
         }
     }
 }
 protected static function resolveFileAttachments()
 {
     FileModelUtil::resolveModelsHasManyFilesFromPost(static::$emailTemplate, 'files', 'filesIds');
 }
Ejemplo n.º 4
0
 public function testResolveModelsHasManyFilesFromPost()
 {
     $fileCount = FileModel::getCount();
     $this->assertEquals(0, $fileCount);
     $file1 = ZurmoTestHelper::createFileModel('testNote.txt');
     $file2 = ZurmoTestHelper::createFileModel('testNote.txt');
     $file3 = ZurmoTestHelper::createFileModel('testNote.txt');
     $model = new ModelWithAttachmentTestItem();
     $_POST['myTest'] = array($file1->id, $file2->id, $file3->id);
     FileModelUtil::resolveModelsHasManyFilesFromPost($model, 'files', 'myTest');
     $model->member = 'test';
     $saved = $model->save();
     $this->assertTrue($saved);
     $fileCount = FileModel::getCount();
     $this->assertEquals(3, $fileCount);
     $modelId = $model->id;
     $model->forget();
     $model = ModelWithAttachmentTestItem::getById($modelId);
     $this->assertEquals(3, $model->files->count());
     //Add a fourth file.
     $file4 = ZurmoTestHelper::createFileModel('testNote.txt');
     $_POST['myTest'] = array($file1->id, $file2->id, $file3->id, $file4->id);
     FileModelUtil::resolveModelsHasManyFilesFromPost($model, 'files', 'myTest');
     $saved = $model->save();
     $this->assertTrue($saved);
     $fileCount = FileModel::getCount();
     $this->assertEquals(4, $fileCount);
     $model->forget();
     $model = ModelWithAttachmentTestItem::getById($modelId);
     $this->assertEquals(4, $model->files->count());
     //Remove the 2nd file.
     $_POST['myTest'] = array($file1->id, $file3->id, $file4->id);
     FileModelUtil::resolveModelsHasManyFilesFromPost($model, 'files', 'myTest');
     $saved = $model->save();
     $this->assertTrue($saved);
     $fileCount = FileModel::getCount();
     $this->assertEquals(3, $fileCount);
     $model->forget();
     $model = ModelWithAttachmentTestItem::getById($modelId);
     $this->assertEquals(3, $model->files->count());
     $compareIds = array($file1->id, $file3->id, $file4->id);
     foreach ($model->files as $fileModel) {
         $this->assertTrue(in_array($fileModel->id, $compareIds));
     }
 }