Add SubGroup label, use DefinedColor instead of hasColor see BT#12861

pull/2487/head
jmontoyaa 8 years ago
parent a55b7b98d3
commit 03006a6072
  1. 4
      main/cron/import_csv.php
  2. 51
      main/inc/lib/career.lib.php

@ -2409,7 +2409,7 @@ class ImportCsv
$currentCourseId = (int) $row['CourseId']; $currentCourseId = (int) $row['CourseId'];
$name = $row['CourseName']; $name = $row['CourseName'];
$hasColor = $row['HasColor']; $color = $row['DefinedColor'];
$notes = $row['Notes']; $notes = $row['Notes'];
$groupValue = $row['Group']; $groupValue = $row['Group'];
$rowValue = $row['Row']; $rowValue = $row['Row'];
@ -2423,7 +2423,7 @@ class ImportCsv
} else { } else {
$current = $graph->createVertex($currentCourseId); $current = $graph->createVertex($currentCourseId);
$current->setAttribute('graphviz.label', $name); $current->setAttribute('graphviz.label', $name);
$current->setAttribute('HasColor', $hasColor); $current->setAttribute('DefinedColor', $color);
$current->setAttribute('Notes', $notes); $current->setAttribute('Notes', $notes);
$current->setAttribute('Row', $rowValue); $current->setAttribute('Row', $rowValue);
$current->setAttribute('Group', $groupValue); $current->setAttribute('Group', $groupValue);

@ -309,9 +309,13 @@ class Career extends Model
foreach ($graph->getVertices() as $vertex) { foreach ($graph->getVertices() as $vertex) {
$group = $vertex->getAttribute('Group'); $group = $vertex->getAttribute('Group');
$subGroup = $vertex->getAttribute('SubGroup'); $subGroup = $vertex->getAttribute('SubGroup');
$subGroupData = explode(':', $subGroup);
$column = $vertex->getGroup(); $column = $vertex->getGroup();
$row = $vertex->getAttribute('Row'); $row = $vertex->getAttribute('Row');
$list[$group][$subGroup][$column][$row] = $vertex; $subGroupId = $subGroupData[0];
$label = isset($subGroupData[1]) ? $subGroupData[1] : '';
$list[$group][$subGroupId]['columns'][$column][$row] = $vertex;
$list[$group][$subGroupId]['label'] = $label;
} }
$maxGroups = count($list); $maxGroups = count($list);
@ -322,20 +326,24 @@ class Career extends Model
$connections = ''; $connections = '';
$groupDrawLine = []; $groupDrawLine = [];
$groupCourseList = [];
// Read Connections column
foreach ($list as $group => $subGroupList) { foreach ($list as $group => $subGroupList) {
$showGroupLine = true; foreach ($subGroupList as $subGroupData) {
foreach ($subGroupList as $column => $rows) { $columns = $subGroupData['columns'];
if (count($rows) == 1) { $showGroupLine = true;
if (count($columns) == 1) {
$showGroupLine = false; $showGroupLine = false;
} }
$groupDrawLine[$group] = $showGroupLine; $groupDrawLine[$group] = $showGroupLine;
//if ($showGroupLine == false) { //if ($showGroupLine == false) {
/** @var Vertex $vertex */ /** @var Vertex $vertex */
foreach ($rows as $row => $items) { foreach ($columns as $row => $items) {
foreach ($items as $vertex) { foreach ($items as $vertex) {
if ($vertex instanceof Vertex) { if ($vertex instanceof Vertex) {
$groupCourseList[$group][] = $vertex->getId();
$connectionList = $vertex->getAttribute( $connectionList = $vertex->getAttribute(
'Connections' 'Connections'
); );
@ -409,7 +417,7 @@ class Career extends Model
$showGroupLine = true; $showGroupLine = true;
} }
$graphHtml .= self::parseSubGroups( $graphHtml .= self::parseSubGroups(
$list, $groupCourseList,
$group, $group,
$showGroupLine, $showGroupLine,
$subGroupList, $subGroupList,
@ -423,7 +431,7 @@ class Career extends Model
} }
/** /**
* @param array $list * @param array $groupCourseList list of groups and their courses
* @param int $group * @param int $group
* @param bool $showGroupLine * @param bool $showGroupLine
* @param array $subGroupList * @param array $subGroupList
@ -431,7 +439,7 @@ class Career extends Model
* @return string * @return string
*/ */
public static function parseSubGroups( public static function parseSubGroups(
$list, $groupCourseList,
$group, $group,
$showGroupLine, $showGroupLine,
$subGroupList, $subGroupList,
@ -449,13 +457,19 @@ class Career extends Model
// padding:15px; // padding:15px;
$graphHtml = '<div id="'.$groupIdTag.'" class="career_group" style=" '.$borderLine.' padding:15px; float:left; margin-left:'.$leftGroup.'; width:'.$widthGroup.'%">'; $graphHtml = '<div id="'.$groupIdTag.'" class="career_group" style=" '.$borderLine.' padding:15px; float:left; margin-left:'.$leftGroup.'; width:'.$widthGroup.'%">';
foreach ($subGroupList as $subGroup => $columnList) { foreach ($subGroupList as $subGroup => $subGroupData) {
$subGroupLabel = $subGroupData['label'];
$columnList = $subGroupData['columns'];
$line = ''; $line = '';
if (!empty($subGroup)) { if (!empty($subGroup)) {
$line = 'border-style:solid;'; $line = 'border-style:solid;';
} }
// padding:15px; // padding:15px;
$graphHtml .= '<div id="subgroup_'.$subGroup.'" class="career_subgroup" style="'.$line.' margin-bottom:20px; padding:15px; float:left; margin-left:0px; width:100%">'; $graphHtml .= '<div id="subgroup_'.$subGroup.'" class="career_subgroup" style="'.$line.' margin-bottom:20px; padding:15px; float:left; margin-left:0px; width:100%">';
if (!empty($subGroupLabel)) {
$graphHtml .= '<h3>'.$subGroupLabel.'</h3>';
}
foreach ($columnList as $column => $rows) { foreach ($columnList as $column => $rows) {
$leftColumn = $defaultSpace.'px'; $leftColumn = $defaultSpace.'px';
if ($column == 1) { if ($column == 1) {
@ -518,11 +532,10 @@ class Career extends Model
$id = $vertex->getId(); $id = $vertex->getId();
$rowId = "row_$row"; $rowId = "row_$row";
$top = $topValue * ($row - 1);
$graphHtml .= '<div id = "row_'.$id.'" class="'.$rowId.' career_row" >'; $graphHtml .= '<div id = "row_'.$id.'" class="'.$rowId.' career_row" >';
$color = ''; $color = '';
if (!empty($vertex->getAttribute('HasColor'))) { if (!empty($vertex->getAttribute('DefinedColor'))) {
$color = $vertex->getAttribute('HasColor'); $color = $vertex->getAttribute('DefinedColor');
} }
$content = $vertex->getAttribute('Notes'); $content = $vertex->getAttribute('Notes');
$content .= '<div class="pull-right">['.$id.']</div>'; $content .= '<div class="pull-right">['.$id.']</div>';
@ -559,9 +572,11 @@ class Career extends Model
} else { } else {
$parts = explode('SG', $arrow); $parts = explode('SG', $arrow);
if (empty($parts[0]) && count($parts) == 2) { if (empty($parts[0]) && count($parts) == 2) {
$groupArrow = $parts[1]; $subGroupArrow = $parts[1];
/*var_dump($subGroupArrow);
var_dump(array_keys($subGroupList));*/
$graphHtml .= self::createConnection( $graphHtml .= self::createConnection(
"subgroup_$groupArrow", "subgroup_$subGroupArrow",
"row_$id", "row_$id",
['Left', 'Right'] ['Left', 'Right']
); );
@ -571,10 +586,16 @@ class Career extends Model
} }
if ($found == false) { if ($found == false) {
$defaultArrow = ['Left', 'Right'];
if (isset($groupCourseList[$group]) &&
in_array($arrow, $groupCourseList[$group])
) {
$defaultArrow = ['Top', 'Bottom'];
}
$graphHtml .= self::createConnection( $graphHtml .= self::createConnection(
"row_$arrow", "row_$arrow",
"row_$id", "row_$id",
['Left', 'Right'] $defaultArrow
); );
} }
} }

Loading…
Cancel
Save