diff --git a/tests/scripts/migrate_item_property.php b/tests/scripts/migrate_item_property.php new file mode 100644 index 0000000000..755b00c1a6 --- /dev/null +++ b/tests/scripts/migrate_item_property.php @@ -0,0 +1,141 @@ +getCode(), $sessionId); + if (!$documentData) { + error_log('Skipped'); + continue 2; + } + + $file = new ResourceFile(); + $file + ->setName($documentData['title']) + ->setOriginalFilename(basename($documentData['path'])) + ->setSize($documentData['size']) + ; + + $resourceType = $em->getRepository('ChamiloCoreBundle:ResourceType')->findOneBy(['name' => 'document']); + + $node = new ResourceNode(); + $node + ->setName($documentData['title']) + ->setDescription($documentData['comment']) + ->setResourceFile($file) + ->setCreator($author) + ->setResourceFile($file) + ->setResourceType($resourceType) + + ->setCreatedAt($createdAt) + ->setUpdatedAt($lastUpdatedAt) + ; + $em->persist($node); + $em->flush(); + + $rights = []; + switch ($row['visibility']) { + case '0': + $newVisibility = ResourceLink::VISIBILITY_DRAFT; + + $readerMask = ResourceNodeVoter::getReaderMask(); + $editorMask = ResourceNodeVoter::getEditorMask(); + + $resourceRight = new ResourceRight(); + $resourceRight + ->setMask($editorMask) + ->setRole(ResourceNodeVoter::ROLE_CURRENT_COURSE_TEACHER) + ; + $rights[] = $resourceRight; + break; + case '1': + $newVisibility = ResourceLink::VISIBILITY_PUBLISHED; + break; + case '2': + $newVisibility = ResourceLink::VISIBILITY_DELETED; + break; + } + + $link = new ResourceLink(); + $link + ->setCourse($course) + ->setSession($session) + ->setGroup($group) + ->setUser($toUser) + ->setResourceNode($node) + ->setVisibility($newVisibility) + ; + + if (!empty($rights)) { + foreach ($rights as $right) { + $link->addResourceRight($right); + } + } + + $em->persist($link); + $em->flush(); + + break; + } +} + +/** +default resource type list +| announcement | +| attendance | +| blog_management | +| calendar_event | +| calendar_event_attachment | +| course_description | +| document | +| dropbox | +| forum | +| forum_attachment | +| forum_category | +| forum_post | +| forum_thread | +| glossary | +| learnpath | +| learnpath_category | +| link | +| link_category | +| notebook | +| quiz | +| survey | +| test_category | +| thematic | +| thematic_advance | +| thematic_plan | +| wiki | +| work | + + */