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