From 648d882b034806df8870b1e85df722a67aa23232 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=D0=90=D0=BD=D0=B4=D1=80=D0=B5=D0=B9=20=D0=A0=D1=83=D0=B4?=
 =?UTF-8?q?=D0=B5=D0=BD=D0=B5=D1=86?= <andrey.rudenets@gmail.com>
Date: Mon, 15 Sep 2014 23:13:59 +0400
Subject: [PATCH] =?UTF-8?q?1.=20=D0=A1=D1=81=D1=8B=D0=BB=D0=BA=D0=B0=20?=
 =?UTF-8?q?=D0=BD=D0=B0=20=D0=BF=D0=B0=D0=BD=D0=B5=D0=BB=D1=8C=20=D0=B0?=
 =?UTF-8?q?=D0=B4=D0=BC=D0=B8=D0=BD=D0=B8=D1=81=D1=82=D1=80=D0=B0=D1=82?=
 =?UTF-8?q?=D0=BE=D1=80=D0=B0=20=D0=B4=D0=BB=D1=8F=20=D0=BF=D0=BE=D1=81?=
 =?UTF-8?q?=D0=B2=D1=8F=D1=89=D0=B5=D0=BD=D0=BD=D1=8B=D1=85=202.=20=D0=98?=
 =?UTF-8?q?=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B2=20?=
 =?UTF-8?q?=D0=B8=D0=BD=D1=82=D0=B5=D1=80=D1=84=D0=B5=D0=B9=D1=81=D0=B5=20?=
 =?UTF-8?q?=D1=81=D1=82=D1=83=D0=B4=D0=B5=D0=BD=D1=82=D0=B0=20(=D0=BE?=
 =?UTF-8?q?=D0=B6=D0=B8=D0=B4=D0=B0=D0=B5=D1=82=D1=81=D1=8F=20fix=20=D0=91?=
 =?UTF-8?q?=D0=94)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../classes/Controller/Student/Subject.php    | 50 ++++++++++---------
 ~dev_rating/application/views/base.twig       |  3 ++
 .../application/views/student/subject.twig    | 50 ++++++++++++-------
 3 files changed, 63 insertions(+), 40 deletions(-)

diff --git a/~dev_rating/application/classes/Controller/Student/Subject.php b/~dev_rating/application/classes/Controller/Student/Subject.php
index 49192e792..46f42df98 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 e0ae9f7ee..9f847b7f9 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 d8bc94aab..8eece73b7 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
-- 
GitLab