diff --git a/main/inc/ajax/sequence.ajax.php b/main/inc/ajax/sequence.ajax.php index 55d08443d0..d7c119e8a8 100644 --- a/main/inc/ajax/sequence.ajax.php +++ b/main/inc/ajax/sequence.ajax.php @@ -47,6 +47,9 @@ switch ($action) { try { $graphImage = $graphviz->createImageSrc($graph); + //echo $graphviz->createScript($graph); + //$graphviz->display($graph); + echo Display::img( $graphImage, get_lang('GraphDependencyTree'), @@ -130,7 +133,7 @@ switch ($action) { $link .= '
'.$resourceName.'
'; $link .= Display::tag( 'button', - $id, + $resourceName, [ 'class' => 'sequence-id', 'title' => get_lang('UseAsReference'), @@ -344,16 +347,24 @@ switch ($action) { $main = $graph->createVertex($id); } + $item = $sequenceRepository->getItem($id, $type); + $main->setAttribute('graphviz.shape', 'record'); + $main->setAttribute('graphviz.label', $item->getName()); + foreach ($parents as $parentId) { + $item = $sequenceRepository->getItem($parentId, $type); if ($graph->hasVertex($parentId)) { $parent = $graph->getVertex($parentId); if (!$parent->hasEdgeTo($main)) { - $parent->createEdgeTo($main); + $newEdge = $parent->createEdgeTo($main); } } else { $parent = $graph->createVertex($parentId); - $parent->createEdgeTo($main); + $newEdge = $parent->createEdgeTo($main); } + + $parent->setAttribute('graphviz.shape', 'record'); + $parent->setAttribute('graphviz.label', $item->getName()); } foreach ($parents as $parentId) { @@ -426,8 +437,10 @@ switch ($action) { $courseController = new CoursesController(); $view = new Template(null, false, false, false, false, false); $view->assign('sequences', $sequenceList); + $view->assign('sequence_type', $type); $view->assign('allow_subscription', $allowSubscription); + if ($allowSubscription) { $view->assign( 'subscribe_button', diff --git a/main/template/default/sequence_resource/course_requirements.tpl b/main/template/default/sequence_resource/course_requirements.tpl index 7d2611fb79..6a28233d24 100644 --- a/main/template/default/sequence_resource/course_requirements.tpl +++ b/main/template/default/sequence_resource/course_requirements.tpl @@ -1,6 +1,6 @@ -{% for item in sequences %} +{% for key, item in sequences %}

{{ item.name }}

{% for course in item.requirements %} @@ -26,6 +26,20 @@ {% endif %} {% endfor %}
+ + +
{{ graph }}
{% endfor %} {% if allow_subscription %} diff --git a/src/Chamilo/CoreBundle/Entity/Course.php b/src/Chamilo/CoreBundle/Entity/Course.php index ce484460a2..bda7088446 100644 --- a/src/Chamilo/CoreBundle/Entity/Course.php +++ b/src/Chamilo/CoreBundle/Entity/Course.php @@ -600,6 +600,11 @@ class Course return $this->title; } + public function getName() + { + return $this->getTitle(); + } + /** * @return string */ diff --git a/src/Chamilo/CoreBundle/Entity/Repository/SequenceRepository.php b/src/Chamilo/CoreBundle/Entity/Repository/SequenceRepository.php index c5ad6099c1..f06a1b6995 100644 --- a/src/Chamilo/CoreBundle/Entity/Repository/SequenceRepository.php +++ b/src/Chamilo/CoreBundle/Entity/Repository/SequenceRepository.php @@ -48,6 +48,27 @@ class SequenceRepository extends EntityRepository return $list; } + public function getItem($itemId, $type) + { + $resource = null; + switch ($type) { + case SequenceResource::COURSE_TYPE: + $repo = $this->getEntityManager()->getRepository('ChamiloCoreBundle:Course'); + + break; + case SequenceResource::SESSION_TYPE: + $repo = $this->getEntityManager()->getRepository('ChamiloCoreBundle:Session'); + + break; + } + + if ($repo) { + $resource = $repo->find($itemId); + } + + return $resource; + } + /** * @param int $id */ diff --git a/src/Chamilo/CoreBundle/Entity/Repository/SequenceResourceRepository.php b/src/Chamilo/CoreBundle/Entity/Repository/SequenceResourceRepository.php index 4217efaea6..81093f924c 100644 --- a/src/Chamilo/CoreBundle/Entity/Repository/SequenceResourceRepository.php +++ b/src/Chamilo/CoreBundle/Entity/Repository/SequenceResourceRepository.php @@ -366,8 +366,6 @@ class SequenceResourceRepository extends EntityRepository true ); - //var_dump($gradebook, $userFinishedCourse); - if (0 === $sessionId) { if (false === $userFinishedCourse) { $status = false;