Minor - fix tool creation during upgrade

pull/2650/head
Julio Montoya 7 years ago
parent 838b69f507
commit b152c565c7
  1. 23
      src/CoreBundle/Entity/Tool.php
  2. 9
      src/CourseBundle/DependencyInjection/Compiler/ToolCompilerClass.php
  3. 40
      src/CourseBundle/ToolChain.php

@ -14,15 +14,6 @@ use Doctrine\ORM\Mapping as ORM;
*/
class Tool
{
/**
* @ORM\OneToMany(targetEntity="Chamilo\CoreBundle\Entity\Resource\ResourceNode", mappedBy="tool", cascade={"persist", "remove"})
*/
protected $resourceNodes;
/**
* @ORM\OneToMany(targetEntity="Chamilo\CoreBundle\Entity\ToolResourceRights", mappedBy="tool", cascade={"persist", "remove"})
*/
protected $toolResourceRights;
/**
* @var int
*
@ -53,6 +44,16 @@ class Tool
*/
protected $description;
/**
* @ORM\OneToMany(targetEntity="Chamilo\CoreBundle\Entity\Resource\ResourceNode", mappedBy="tool", cascade={"persist", "remove"})
*/
protected $resourceNodes;
/**
* @ORM\OneToMany(targetEntity="Chamilo\CoreBundle\Entity\ToolResourceRights", mappedBy="tool", cascade={"persist", "remove"})
*/
protected $toolResourceRights;
/**
* @return string
*/
@ -104,10 +105,14 @@ class Tool
/**
* @param mixed $resourceNodes
*
* @return $this
*/
public function setResourceNodes($resourceNodes)
{
$this->resourceNodes = $resourceNodes;
return $this;
}
/**

@ -25,13 +25,8 @@ class ToolCompilerClass implements CompilerPassInterface
return;
}
$definition = $container->getDefinition(
'chamilo_course.tool_chain'
);
$taggedServices = $container->findTaggedServiceIds(
'chamilo_course.tool'
);
$definition = $container->getDefinition('chamilo_course.tool_chain');
$taggedServices = $container->findTaggedServiceIds('chamilo_course.tool');
foreach ($taggedServices as $id => $attributes) {
$definition->addMethodCall('addTool', [new Reference($id)]);

@ -59,7 +59,7 @@ class ToolChain
/**
* @param BaseTool $tool
*/
public function addTool(BaseTool $tool)
public function addTool(BaseTool $tool): void
{
$this->tools[$tool->getName()] = $tool;
}
@ -67,7 +67,7 @@ class ToolChain
/**
* @return array
*/
public function getTools()
public function getTools(): array
{
return $this->tools;
}
@ -78,6 +78,26 @@ class ToolChain
public function createTools(ObjectManager $manager)
{
$tools = $this->getTools();
/** @var BaseTool $tool */
foreach ($tools as $tool) {
$toolEntity = new Tool();
$toolEntity
->setName($tool->getName())
->setImage($tool->getImage())
->setDescription($tool->getName().' - description')
;
$this->setToolPermissions($toolEntity);
$manager->persist($toolEntity);
$manager->flush();
}
}
/**
* @param Tool $tool
*/
public function setToolPermissions(Tool $tool)
{
$toolResourceRight = new ToolResourceRights();
$toolResourceRight
->setRole('ROLE_TEACHER')
@ -90,18 +110,8 @@ class ToolChain
->setMask(ResourceNodeVoter::getReaderMask())
;
/** @var BaseTool $tool */
foreach ($tools as $tool) {
$toolEntity = new Tool();
$toolEntity
->setName($tool->getName())
->setImage($tool->getImage())
->setDescription($tool->getName().' - description')
->addToolResourceRights($toolResourceRight)
->addToolResourceRights($toolResourceRightReader)
;
$manager->persist($toolEntity);
}
$tool->addToolResourceRights($toolResourceRight);
$tool->addToolResourceRights($toolResourceRightReader);
}
/**
@ -118,7 +128,7 @@ class ToolChain
/** @var BaseTool $tool */
foreach ($tools as $tool) {
$toolEntity = new CTool();
$visibility = in_array($tool->getName(), $toolVisibility) ? true : false;
$visibility = in_array($tool->getName(), $toolVisibility);
$toolEntity
->setCourse($course)

Loading…
Cancel
Save