Skip to content
Snippets Groups Projects
Commit 67b13a91 authored by Andrew Rudenets's avatar Andrew Rudenets
Browse files

1. Добавил вывод информации о предмете студенту (пока неказисто)

2. Исправил заголовок страницы
3. Сделал название системы ссылкой на главную страницу
4. Добавил вывод информации о предмете преподавателю (пока только передача в несуществующий шаблон)
parent 444829f3
Branches
Tags
No related merge requests found
......@@ -9,8 +9,41 @@ class Controller_Student_Subject extends Controller_UserEnvi {
$db = new Model_Student;
$id = $this->request->param('id');
$discipline = $db->getDisciplineMap($this->UserInfo['StudentID'], $id);
if(count($discipline) == 0)
if($discipline->count() == 0)
throw HTTP_Exception::factory(404, "Предмет с ID $id не найден!");
$info = $db->getDisciplineInfoByID($id)->offsetGet(0);
$teachers = $db->getTeachersForDiscipline($id);
$subject['Title'] = $info['SubjectName'];
if($info['ExamType'] == 'exam')
{
$subject['Control'] = 'Экзамен';
}
elseif($info['ExamType'] == 'credit')
{
$subject['Control'] = 'Зачет';
}
$subject['LectureHours'] = $info['LectionCount'];
$subject['SeminarHours'] = $info['PracticeCount'];
$teachersHandled = array(); $i = 0;
foreach ($teachers as $row) {
$teachersHandled[$i] = $row['LastName'].' '.$row['FirstName'].'';
if(!empty($row['TeacherSecond']))
{
$teachersHandled[$i] .= ' '.$row['SecondName'];
}
$i++;
}
$subject['Teachers'] = implode(', ', $teachersHandled);
$twig->Subject = $subject;
$disciplineHandled = array();
$rate = 0; $maxRate = 0; $i = 0; $id = 0;
foreach($discipline as $row)
......
......@@ -5,6 +5,9 @@ class Controller_Teacher_Index extends Controller_UserEnvi {
public function action_index()
{
$twig = Twig::factory('teacher/index');
// ???
$twig->User = $this->UserInfo;
$this->response->body($twig);
}
......
......@@ -5,15 +5,45 @@ class Controller_Teacher_Map extends Controller_UserEnvi {
public function action_show()
{
$twig = Twig::factory('teacher/map/show');
$id = $this->request->param('id');
$db = new Model_Teacher_Map;
$map = $db->getMapForDiscipline($this->UserInfo['TeacherID'], $id);
if($map->count() == 0)
throw HTTP_Exception::factory(404, "Учебная карта дисциплины с ID $id не найдена!");
$twig->User = $this->UserInfo;
$twig->Map = $this->getMapInfo($map);
$twig->Subject = $this->getSubjectInfo($db, $id);
$this->response->body($twig);
}
public function action_create()
{
$twig = Twig::factory('teacher/map/construct');
$twig->User = $this->UserInfo;
$id = $this->request->param('id');
$this->response->body($twig);
}
public function action_edit()
{
$twig = Twig::factory('teacher/map/construct');
$id = $this->request->param('id');
$db = new Model_Teacher_Map;
$map = $db->getMapForDiscipline($this->UserInfo['TeacherID'], $id);
$map = $db->getDisciplineMap($this->UserInfo['TeacherID'], $id);
if($map->count() == 0)
throw HTTP_Exception::factory(404, "Учебная карта дисциплины с ID $id не найдена!");
$twig->User = $this->UserInfo;
$twig->Map = $this->getMapInfo($map);
$twig->Subject = $this->getSubjectInfo($db, $id);
$this->response->body($twig);
}
private function getMapInfo($map) {
$mapHandled = array();
$maxRate = 0; $i = 0; $module = 0;
......@@ -38,57 +68,40 @@ class Controller_Teacher_Map extends Controller_UserEnvi {
$maxRate += $row['MaxRate'];
}
$mapHandled['ModulesCount'] = $i;
$mapHandled['MaxRate'] = (int) $maxRate;
$this->map = $mapHandled;
$mapHandled['MaxRate'] = (int) $maxRate;
//$this->response->body($twig);
$this->response->body('<pre>'.print_r($mapHandled, true).'</pre>');
return $mapHandled;
}
public function action_create()
public function getSubjectInfo($db, $id)
{
$twig = Twig::factory('teacher/map/construct');
$twig->User = $this->UserInfo;
$id = $this->request->param('id');
$info = $db->getDisciplineInfoByID($id)->offsetGet(0);
$teachers = $db->getTeachersForDiscipline($id);
$this->response->body($twig);
}
public function action_edit()
{
$twig = Twig::factory('teacher/map/construct');
$twig->User = $this->UserInfo;
$id = $this->request->param('id');
$db = new Model_Teacher_Map;
$discipline = $db->getDisciplineMap($this->UserInfo['TeacherID'], $id);
if($discipline->count() == 0)
throw HTTP_Exception::factory(404, "Учебная карта дисциплины с ID $id не найдена!");
$disciplineHandled = array();
$maxRate = 0; $i = 0; $module = 0;
foreach($discipline as $row)
$subject['Title'] = $info['SubjectName'];
if($info['ExamType'] == 'exam')
{
if($row['ModuleID'] != $module)
{
$i++;
$module = $row['ModuleID'];
}
if(!isset($disciplineHandled[$i]['SubmodulesCount']))
$subject['Control'] = 'Экзамен';
}
elseif($info['ExamType'] == 'credit')
{
$subject['Control'] = 'Зачет';
}
$subject['LectureHours'] = $info['LectionCount'];
$subject['SeminarHours'] = $info['PracticeCount'];
$teachersHandled = array(); $i = 0;
foreach ($teachers as $row) {
$teachersHandled[$i] = $row['LastName'].' '.$row['FirstName'].'';
if(!empty($row['TeacherSecond']))
{
$disciplineHandled[$i]['SubmodulesCount'] = 0;
$disciplineHandled[$i]['MaxRate'] = 0;
$teachersHandled[$i] .= ' '.$row['SecondName'];
}
$j = $disciplineHandled[$i]['SubmodulesCount'] += 1;
$disciplineHandled[$i]['MaxRate'] += (int) $row['MaxRate'];
$disciplineHandled[$i]['ModuleTitle'] = $row['ModuleName'];
$disciplineHandled[$i][$j]['Title'] = $row['SubModuleName'];
$disciplineHandled[$i][$j]['Description'] = $row['SubmoduleDescription'];
$disciplineHandled[$i][$j]['MaxRate'] = (int) $row['MaxRate'];
$maxRate += $row['MaxRate'];
$i++;
}
$disciplineHandled['ModulesCount'] = $i;
$disciplineHandled['MaxRate'] = (int) $maxRate;
$this->response->body($twig);
$subject['Teachers'] = implode(', ', $teachersHandled);
}
}
\ No newline at end of file
......@@ -13,4 +13,16 @@ class Model_Student extends Model
$sql = "CALL `GetSubjectMapForStudent`('$student_id', '$subject_id'); ";
return DB::query(Database::SELECT, $sql)->execute();
}
public function getDisciplineInfoByID($discipline_id)
{
$sql = "CALL `GetDisciplineInfoByID`('$discipline_id'); ";
return DB::query(Database::SELECT, $sql)->execute();
}
public function getTeachersForDiscipline($discipline_id)
{
$sql = "CALL `GetTeachersForDiscipline`('$discipline_id'); ";
return DB::query(Database::SELECT, $sql)->execute();
}
}
......@@ -31,4 +31,16 @@ class Model_Teacher_Map extends Model
$sql = "SELECT `ChangeSubmodule`('$teacherID', '$submoduleID', '$maxRate', '$order', '$title', '$description') AS `Num`;";
return DB::query(Database::SELECT, $sql)->execute();
}
public function getDisciplineInfoByID($discipline_id)
{
$sql = "CALL `GetDisciplineInfoByID`('$discipline_id'); ";
return DB::query(Database::SELECT, $sql)->execute();
}
public function getTeachersForDiscipline($discipline_id)
{
$sql = "CALL `GetTeachersForDiscipline`('$discipline_id'); ";
return DB::query(Database::SELECT, $sql)->execute();
}
}
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>{% block title %}{% endblock %}</title>
<title>{% block title %}{% endblock %} | {{ System.Title }}</title>
{{ HTML.style('media/css/base.css')|raw }}
{{ HTML.script('media/js/jquery-1.11.1.min.js')|raw }}
{% block media %}{% endblock %}
......@@ -12,7 +12,7 @@
<div class="header_wrapper">
<div class="header">
<div class="top_logo">
{{ System.Title }}
{{ HTML.anchor('/', System.Title, {'title': 'Перейти на главную'})|raw }}
</div>
<div class="top_name_faculty">
{{ User.FacultyName }}
......
......@@ -21,9 +21,15 @@
{% endmacro %}
{% import 'student/subject' as mod %}
{% block title %}{{ Subject.Title|default('Предмет') }}{% endblock %}
{% block main_top_title %} {{ Subject.Title|default('Предмет') }} {% endblock %}
{% block main_content %}
<div class='main_teachers'>
<b>Преподаватели:</b> {{ Subject.Teachers }}<br>
<b>Форма промежуточной аттестации:</b> {{ Subject.Control }}<br>
<b>Всего {{ Subject.LectureHours + Subject.SeminarHours }} ч.</b>, в том числе
<b>{{ Subject.LectureHours }} ч.</b> лекций и <b>{{ Subject.SeminarHours }} ч.</b> практики
</div>
<div class="main_modules">
{% for i in range(1, discipline.ModulesCount) %}
<table border="0" cellspacing="0" class="module_table">
......
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