Add course title in sequence graph BT#16255

pull/3116/head
Julio 6 years ago
parent c309d7c054
commit 7d3fca41ee
  1. 19
      main/inc/ajax/sequence.ajax.php
  2. 16
      main/template/default/sequence_resource/course_requirements.tpl
  3. 5
      src/Chamilo/CoreBundle/Entity/Course.php
  4. 21
      src/Chamilo/CoreBundle/Entity/Repository/SequenceRepository.php
  5. 2
      src/Chamilo/CoreBundle/Entity/Repository/SequenceResourceRepository.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 .= '<div class="sequence-course">'.$resourceName.'</div>';
$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',

@ -1,6 +1,6 @@
<h2 class="page-header">{{ 'RequiredCourses'|get_lang }}</h2>
{% for item in sequences %}
{% for key, item in sequences %}
<h4>{{ item.name }}</h4>
<div id="parents">
{% for course in item.requirements %}
@ -26,6 +26,20 @@
{% endif %}
{% endfor %}
</div>
<script>
var url = '{{ _p.web_ajax }}sequence.ajax.php?type={{ sequence_type }}';
var sequenceId = '{{ key }}';
$(function() {
$.ajax({
url: url + '&a=graph&sequence_id=' + sequenceId,
success: function (data) {
$('#show_graph').append(data);
}
});
});
</script>
<div id="show_graph">{{ graph }}</div>
{% endfor %}
{% if allow_subscription %}

@ -600,6 +600,11 @@ class Course
return $this->title;
}
public function getName()
{
return $this->getTitle();
}
/**
* @return string
*/

@ -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
*/

@ -366,8 +366,6 @@ class SequenceResourceRepository extends EntityRepository
true
);
//var_dump($gradebook, $userFinishedCourse);
if (0 === $sessionId) {
if (false === $userFinishedCourse) {
$status = false;

Loading…
Cancel
Save