Skip to content
Snippets Groups Projects
Commit c9cae94a authored by Anton Bagliy's avatar Anton Bagliy Committed by Роман Штейнберг
Browse files

WIP: discipline tree in final form export view #284

parent a1d32b38
Branches
Tags
No related merge requests found
"use strict";
$(document).ready(()=>{
$(document).ready(() => {
let settings = getSettings();
const pathToSfeduAPIAdapter = $('#sync_api_url').html().trim();
$(function () { $('#groupTree').jstree(); });
$(function () {
$('#groupTree').jstree(
{
"core": {
// so that create works
"check_callback": true,
error: function (err) {
console.log(err);
}
},
},
);
}
);
$('#groupTree').on("changed.jstree", function (e, data) {
console.log(data.selected);
});
const singleNumRegexp = /\w_(\d+)/;
const parseClass = function (str) {
singleNumRegexp.lastIndex = 0;
let foundMatch = singleNumRegexp.exec(str);
return foundMatch ? parseInt(foundMatch[1]) : 0;
};
let groupID = parseClass(data.selected[0]);
let getDisciplines = function (groupID, url, onSuccess, onFail, successText, errorText) {
$.post(g_URLdir + url, {groupID: groupID}).success((disciplines) => {
Popup.success(successText);
onSuccess(JSON.parse(JSON.parse(disciplines).response));
}).fail(jqXHR => {
onFail();
const status = parseInt(jqXHR.status);
let message = errorText;
try {
if (status === 400)
message = JSON.parse(jqXHR.responseText).message;
} catch (error) {
}
if (status !== 0)
Popup.error(message);
});
};
getDisciplines(groupID, 'handler/discipline/getDisciplinesForGroup',
function (disciplines) {
jQuery.each(disciplines, function (i, val) {
$("#" + i).append(document.createTextNode(" - " + val));
$('#groupTree').jstree().create_node(data.selected, {
"id": val.ID,
"text": val.SubjectName,
}, "last");
});
},
function () {
}, "дисциплины загрузились", "ошибка");
})
// $('#syncInnerDepartments').click(()=>{
// $.get(pathToSfeduAPIAdapter + 'subdivisions/inner');
......
......@@ -120,6 +120,18 @@ class Controller_Handler_Discipline extends Controller_Handler_Api
return json_encode(Model_Teacher::with($teacherID)->getSimilarDisciplines($subjectID));
}
public function action_getDisciplinesForGroup() {
$groupID = $this->request->post('groupID');
$semesterID = User::instance()->SemesterID;
$students = Model_Students::ofGroup($groupID, $semesterID);
// TODO: refactor after new groups implemented
$disciplines = Model_Group::with($groupID)->getDisciplines(false, $semesterID);
$disciplines = Arr::groupByUniqueKey('ID', $disciplines);
//$discWithCompounds = self::processCompounds($disciplines);
return json_encode($disciplines);
}
/**
* @return Model_Discipline
*/
......
......@@ -37,21 +37,4 @@ class Controller_Office_Export extends Controller_Environment_Office
]);
}
public function action_show() {
$semesterID = User::instance()->SemesterID;
//$facultyID = User::instance()->Faculty->ID;
$groupID = $this->request->post('groupID');
$students = Model_Students::ofGroup($groupID, $semesterID);
// TODO: refactor after new groups implemented
$disciplines = Model_Group::with($groupID)->getDisciplines(false, $semesterID);
$disciplines = Arr::groupByUniqueKey('ID', $disciplines);
//$discWithCompounds = self::processCompounds($disciplines);
$this->twig->set_filename(static::OFFICE . 'export')
->set([
'Disciplines' => $disciplines,
]);
}
}
......@@ -32,7 +32,7 @@
{{ degreeTitle }} {{ grade_num }} курс
<ul>
{% for group in grade["groups"] %}
<li id = Group_{{ grade["grade_id"] }}_{{ group["GroupNum"] }}>
<li id = group_{{ group["ID"] }} class="grade_{{ grade["grade_id"] }} group_{{ group["ID"] }}">
{{ group["SpecName"] }} {{ group["GroupNum"] }}
</li>
{% endfor %}
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment