diff --git a/~dev_rating/application/classes/Controller/Student/Subject.php b/~dev_rating/application/classes/Controller/Student/Subject.php
index 49192e7922df79a2bfb09fbbeda4d1d5f29d53bf..46f42df98a14f5f9becd27857ef5af07649c41f8 100644
--- a/~dev_rating/application/classes/Controller/Student/Subject.php
+++ b/~dev_rating/application/classes/Controller/Student/Subject.php
@@ -34,35 +34,39 @@ class Controller_Student_Subject extends Controller_UserEnvi {
         $rate = 0; $maxRate = 0; $i = 0; $id = 0;
         foreach($discipline as $row)
         {
-            if($row['ModuleID'] != $id)
+            if($row['ModuleType'] == 'exam')
             {
-                $i++;
-                $id = $row['ModuleID'];
+                $disciplineHandled['Exam']['Rate'] = (int) $row['Rate'];
+                $disciplineHandled['Exam']['MaxRate'] = (int) $row['MaxRate'];
+                $disciplineHandled['Exam']['Date'] = $row['Date'];
             }
-            
-            if(!isset($disciplineHandled['Modules'][$i]['SubmodulesCount']))
+            elseif($row['ModuleType'] == 'bonus')
             {
-                $disciplineHandled['Modules'][$i]['SubmodulesCount'] = 0;
-                $disciplineHandled['Modules'][$i]['Rate'] = 0;
-                $disciplineHandled['Modules'][$i]['MaxRate'] = 0;
-            }
-            
-            $j = $disciplineHandled['Modules'][$i]['SubmodulesCount'] += 1;
-            $disciplineHandled['Modules'][$i]['Rate'] += (int) $row['Rate'];
-            $disciplineHandled['Modules'][$i]['MaxRate'] += (int) $row['MaxRate'];
-            $disciplineHandled['Modules'][$i]['Title'] = $row['ModuleName'];
-            
-            // Константное программирование. Но я не знаю, как отличить этот спецмодуль от остальных.
-            if($row['ModuleName'] == 'Экзамен' AND $row['MaxRate'] == 40)
-            {
-                $disciplineHandled['Modules'][$i]['Title'] = $row['ModuleName'].' РїРѕ РєСѓСЂСЃСѓ "'.$subject['Title'].'"';
-                $disciplineHandled['Modules'][$i]['isExam'] = true;
-                $disciplineHandled['Modules'][$i]['Exam']['Rate'] = (int) $row['Rate'];
-                $disciplineHandled['Modules'][$i]['Exam']['MaxRate'] = (int) $row['MaxRate'];
-                $disciplineHandled['Modules'][$i]['Exam']['Date'] = $row['Date'];
+                $disciplineHandled['Bonus']['Description'] = $row['Description'];
+                $disciplineHandled['Bonus']['Rate'] = (int) $row['Rate'];
+                $disciplineHandled['Bonus']['MaxRate'] = (int) $row['MaxRate'];
+                $disciplineHandled['Bonus']['Date'] = $row['Date'];
             }
             else
             {
+                if($row['ModuleID'] != $id)
+                {
+                    $i++;
+                    $id = $row['ModuleID'];
+                }
+
+                if(!isset($disciplineHandled['Modules'][$i]['SubmodulesCount']))
+                {
+                    $disciplineHandled['Modules'][$i]['SubmodulesCount'] = 0;
+                    $disciplineHandled['Modules'][$i]['Rate'] = 0;
+                    $disciplineHandled['Modules'][$i]['MaxRate'] = 0;
+                }
+
+                $j = $disciplineHandled['Modules'][$i]['SubmodulesCount'] += 1;
+                $disciplineHandled['Modules'][$i]['Rate'] += (int) $row['Rate'];
+                $disciplineHandled['Modules'][$i]['MaxRate'] += (int) $row['MaxRate'];
+                $disciplineHandled['Modules'][$i]['Title'] = $row['ModuleName'];
+
                 $disciplineHandled['Modules'][$i]['Submodules'][$j]['Title'] = $row['SubModuleName'];
                 $disciplineHandled['Modules'][$i]['Submodules'][$j]['Description'] = $row['SubmoduleDescription'];
                 $disciplineHandled['Modules'][$i]['Submodules'][$j]['Rate'] = (int) $row['Rate'];
diff --git a/~dev_rating/application/views/base.twig b/~dev_rating/application/views/base.twig
index e0ae9f7ee149a7cf6d7eb3b8c86641dd78ce7e8a..9f847b7f94ca1642d83e1706aec828e8422ca140 100644
--- a/~dev_rating/application/views/base.twig
+++ b/~dev_rating/application/views/base.twig
@@ -58,6 +58,9 @@
                                     {{ HTML.image('media/img/user.png', {'height': '11px'})|raw }}
                                     {{ User.First }} {{ User.Last }}
                                 </div> | 
+                                {% if User.AccRoleMark == 4 %}
+                                {{ HTML.anchor('admin', 'Администрирование', {'title': 'Перейти в панель управления системой'})|raw }}
+                                {% endif %}
 				{{ HTML.anchor('/', 'Главная страница', {'title': 'Перейти на главную страницу'})|raw }}
 				{{ HTML.anchor('settings', 'Настройки', {'title': 'Настроить аккаунт'})|raw }}
 				{{ HTML.anchor('sign/out', 'Выход', {'title': 'Выйти из системы'})|raw }}
diff --git a/~dev_rating/application/views/student/subject.twig b/~dev_rating/application/views/student/subject.twig
index d8bc94aabcf6fe021476470ee52f1d2ace2e9a9c..8eece73b73ca15dda4c9af44bc74c3d6c823e33c 100644
--- a/~dev_rating/application/views/student/subject.twig
+++ b/~dev_rating/application/views/student/subject.twig
@@ -50,22 +50,6 @@
     </div>
     <div class="mapContent">
         {% for Module in DisciplineMap.Modules %}
-            {% if Module.isExam %}
-                <div class="examBlock">
-                    <div class="examTitle">{{ Module.Title }}</div>
-                    <div class="examRate">{{ Module.Exam.Rate }} / {{ Module.Exam.MaxRate }}</div>
-                    <div class="examPercent">
-                        {{ (Module.Exam.Rate  * 100) // Module.Exam.MaxRate }} %
-                    </div>
-                    <div class="examDate">
-                        {% if Module.Exam.Date != 0 %}
-                            {{ Module.Exam.Date|date('d.m.Y') }}
-                        {% else %}
-                            ---
-                        {% endif %}
-                    </div>
-                </div>
-            {% else %}
                 <div class="moduleBlock">
                     {{ Module.Title }}
                 </div>
@@ -90,12 +74,44 @@
                         </div>
                     {% endif %}
                 {% endfor %}
-            {% endif %}
             {% if loop.last %}
                 <div class="disciplineResult">
                     Итого: {{ DisciplineMap.Rate }} / {{ DisciplineMap.MaxRate }}
                 </div>
             {% endif %}
         {% endfor %}
+        {% if Discipline.Bonus is not empty %}
+            <div class="bonusBlock">
+                <div class="bonusTitle">Бонусные баллы</div>
+                <div class="bonusRate">{{ Discipline.Bonus.Rate }} / {{ Discipline.Bonus.MaxRate }}</div>
+                <div class="bonusPercent">
+                    {{ (Discipline.Bonus.Rate  * 100) // Discipline.Bonus.MaxRate }} %
+                </div>
+                <div class="bonusDate">
+                    {% if Discipline.Bonus.Date != 0 %}
+                        {{ Discipline.Bonus.Date|date('d.m.Y') }}
+                    {% else %}
+                        ---
+                    {% endif %}
+                </div>
+            </div>
+        {% endif %}
+            
+        {% if Discipline.Exam is not empty %}
+            <div class="examBlock">
+                <div class="examTitle">Экзамен по курсу &laquo;{{ Discipline.Title|default('---') }}&raquo;</div>
+                <div class="examRate">{{ Discipline.Exam.Rate }} / {{ Discipline.Exam.MaxRate }}</div>
+                <div class="examPercent">
+                    {{ (Discipline.Exam.Rate  * 100) // Discipline.Exam.MaxRate }} %
+                </div>
+                <div class="examDate">
+                    {% if Discipline.Exam.Date != 0 %}
+                        {{ Discipline.Exam.Date|date('d.m.Y') }}
+                    {% else %}
+                        ---
+                    {% endif %}
+                </div>
+            </div>
+        {% endif %}
     </div>
 {% endblock %}
\ No newline at end of file