From c710228207106454e53aa872d2af844595fff083 Mon Sep 17 00:00:00 2001
From: Andrew Rudenets <andrey.rudenets@gmail.com>
Date: Mon, 13 Jul 2015 16:45:35 +0300
Subject: [PATCH] Office interface has been improved

---
 media/js/admin/students/upload.js             |  9 --
 media/less/common.less                        | 13 +++
 media/less/common/forms.less                  |  2 +-
 media/less/common/tabs.less                   | 96 ++++++++++---------
 .../application/views/office/base.twig        |  2 +
 .../application/views/office/students.twig    | 13 +++
 .../views/office/students/add.twig            | 23 +++--
 .../views/office/students/profile.twig        | 23 +++--
 .../views/office/students/search.twig         |  5 +-
 .../views/office/students/upload.twig         | 52 ++++------
 .../views/office/subjects/upload.twig         | 50 ++++------
 .../application/views/office/teachers.twig    | 12 +++
 .../views/office/teachers/add.twig            | 10 +-
 .../views/office/teachers/profile.twig        |  2 +-
 .../views/office/teachers/search.twig         |  2 +-
 .../views/office/teachers/upload.twig         | 52 ++++------
 16 files changed, 179 insertions(+), 187 deletions(-)
 delete mode 100644 media/js/admin/students/upload.js
 create mode 100644 ~dev_rating/application/views/office/students.twig
 create mode 100644 ~dev_rating/application/views/office/teachers.twig

diff --git a/media/js/admin/students/upload.js b/media/js/admin/students/upload.js
deleted file mode 100644
index b7113be60..000000000
--- a/media/js/admin/students/upload.js
+++ /dev/null
@@ -1,9 +0,0 @@
-$(function()
-{
-    var jFaculty = $('#facultySelect');
-
-    jFaculty.change(function() {
-        var item = jFaculty.find('option:selected').val();
-        $('#SecondStep').css('display', Number(item) ? 'block' : 'none');
-    });
-});
\ No newline at end of file
diff --git a/media/less/common.less b/media/less/common.less
index c7d69bdc9..8c7592e2c 100644
--- a/media/less/common.less
+++ b/media/less/common.less
@@ -82,6 +82,18 @@ body {
     height: 100%;
 }
 
+pre
+{
+    font-family: "Courier New", Courier, monospace;
+    font-size: 0.85em;
+    padding: 5px;
+    margin: 0;
+    word-wrap: normal;
+    white-space: normal;
+    background: @ColorBaseGrey;
+    border: 1px solid @ColorLightGrey;
+}
+
 .page {
     width: 100%;
 }
@@ -89,6 +101,7 @@ body {
 p {
     text-align: justify;
     margin-bottom: 10px;
+    font-size: 0.9em;
 }
 
 b {
diff --git a/media/less/common/forms.less b/media/less/common/forms.less
index 5497ffc28..1177a7cc4 100644
--- a/media/less/common/forms.less
+++ b/media/less/common/forms.less
@@ -51,7 +51,7 @@
     }
 }
 
-input[type=button].defaultForm, button.defaultForm {
+input[type=button].defaultForm, button.defaultForm, input[type=submit].defaultForm {
     display: inline-block;
     cursor: pointer;
     padding: 7px 0;
diff --git a/media/less/common/tabs.less b/media/less/common/tabs.less
index 5b6295a7a..7fa045353 100644
--- a/media/less/common/tabs.less
+++ b/media/less/common/tabs.less
@@ -1,52 +1,54 @@
 @import (reference) "../common.less";
 
 .tabsWrapper {
-  margin: 5px auto;
-  width: 95%;
-  //margin: 5px 25px 10px 25px;
-  .tabs {
-    display: table;
-    width: 100%;
-    margin: 0;
-    padding: 0;
-    .tab {
-      display: table-cell;
-      width: 20%;
-      float: none;
-      text-align: center;
-      border-left: 3px solid #fff;
-      a {
-        display: block;
-        padding-top: 5px;
-        padding-bottom: 5px;
-        background: @ColorBaseGrey;
-        font-size: 13px;
-        color: @ColorLightBlue;
-      }
-      a:hover {
-        background-color: @ColorLightenBlue;
-        color: @ColorBaseGrey;
-        text-decoration: none;
-      }
-      a.inactive
-      {
-        background-color: @ColorBaseGrey;
-        color: @ColorDarkGrey;
-      }
-      a.inactive:hover
-      {
-        background-color: @ColorBaseGrey;
-        color: @ColorDarkGrey;
-        cursor: help;
-      }
-      a.active {
-        background-color: @ColorLightenBlue;
-        color: @ColorBaseGrey;
-        text-decoration: none;
-      }
+    margin: 5px auto;
+    width: 95%;
+
+    .tabs {
+        display: table;
+        width: 100%;
+        margin: 0;
+        padding: 0;
+        .tab {
+            display: table-cell;
+            width: 20%;
+            float: none;
+            text-align: center;
+            border-left: 3px solid #fff;
+            a {
+                display: block;
+                padding-top: 7px;
+                padding-bottom: 7px;
+                background: @ColorBaseGrey;
+                font-size: 13px;
+                color: @ColorLightBlue;
+            }
+            a:hover {
+                background-color: @ColorLightenBlue;
+                color: @ColorBaseGrey;
+                text-decoration: none;
+            }
+            a.inactive {
+                background-color: @ColorBaseGrey;
+                color: @ColorDarkGrey;
+            }
+            a.inactive:hover {
+                background-color: @ColorBaseGrey;
+                color: @ColorDarkGrey;
+                cursor: help;
+            }
+            a.active {
+                background-color: @ColorLightenBlue;
+                color: @ColorBaseGrey;
+                text-decoration: none;
+            }
+        }
+    }
+    .tab:first-child {
+        margin-left: 0;
+    }
+    &.noTopMargin {
+        margin: 0 auto;
+        margin-bottom: 10px;
     }
-  }
-  .tab:first-child {
-    margin-left: 0px;
-  }
 }
\ No newline at end of file
diff --git a/~dev_rating/application/views/office/base.twig b/~dev_rating/application/views/office/base.twig
index bd13a4de6..b1bfefa7d 100644
--- a/~dev_rating/application/views/office/base.twig
+++ b/~dev_rating/application/views/office/base.twig
@@ -3,6 +3,7 @@
 {% block media %} {# head -> css, js #}
     {{ HTML.style('static/css/sidepanel.css')|raw }}
     {{ HTML.style('static/css/dean_office/dean.css')|raw }}
+    {{ HTML.style('static/css/common/tabs.css')|raw }}
     <script>
         {# todo: remove, http://jsfiddle.net/uojpa23a/1/ #}
         $(function () {
@@ -40,6 +41,7 @@
             {% endfor %}
         </div>
         <div class="main_side_content">
+            {% block office_tabs %}{% endblock %}
             {% block office_content %}{% endblock %}
         </div>
     </div>
diff --git a/~dev_rating/application/views/office/students.twig b/~dev_rating/application/views/office/students.twig
new file mode 100644
index 000000000..7d5691a06
--- /dev/null
+++ b/~dev_rating/application/views/office/students.twig
@@ -0,0 +1,13 @@
+{% extends "office/base" %}
+
+{% block main_top_title %}Студенты{% endblock %}
+
+{% block office_tabs %}
+    <div class="tabsWrapper noTopMargin">
+        <div class="tabs">
+            <div class="tab">{{ HTML.anchor('office/students/search',  'РџРѕРёСЃРє')|raw }}</div>
+            <div class="tab">{{ HTML.anchor('office/students/upload', 'Добавление')|raw }}</div>
+            <div class="tab">{{ HTML.anchor('office/students/transfer', 'Перевод')|raw }}</div>
+        </div>
+    </div>
+{% endblock %}
\ No newline at end of file
diff --git a/~dev_rating/application/views/office/students/add.twig b/~dev_rating/application/views/office/students/add.twig
index d791f72e8..39be466cf 100644
--- a/~dev_rating/application/views/office/students/add.twig
+++ b/~dev_rating/application/views/office/students/add.twig
@@ -1,4 +1,4 @@
-{% extends "office/base" %}
+{% extends "office/students" %}
 
 {% block title %}Студенты{% endblock %}
 
@@ -7,7 +7,6 @@
     {{ HTML.script('static/js/admin/students/add.js')|raw }}
 {% endblock %}
 
-
 {% block main_top_title %}Добавление студента{% endblock %}
 
 {% block office_content %}
@@ -22,8 +21,8 @@
             <div class="error_text">Какая-то ошибка :(</div>
         </div>
     </div>
-    
-    
+
+
     <div class="inputGroup">
         <div class="inputGroup_title">
             Персональная информация
@@ -34,21 +33,21 @@
             <input type="text" id="secondName" placeholder="Отчество">
         </div>
     </div>
-    
-    
+
+
     <div class="inputGroup">
         <div class="inputGroup_title">
             Выбор учебной группы
         </div>
         <div class="inputGroup_input">
-            
+
             <select id="facultySelect">
                 <option value="0">— Подразделение ЮФУ —</option>
                 {% for row in Faculties %}
                     <option value="{{ row.ID }}">{{ row.Name }} ({{ row.Abbr }})</option>
                 {% endfor %}
             </select>
-            
+
             <select id="gradeSelect">
                 <option value="0">— Курс —</option>
                 {% for Title, Degree in Grades %}
@@ -59,15 +58,15 @@
                     </optgroup>
                 {% endfor %}
             </select>
-            
+
             <select id="groupSelect">
                 <option value="0">— Учебная группа —</option>
             </select>
-            
+
         </div>
     </div>
-    
-    
+
+
     <div class="inputGroup">
         <div class="inputGroup_submit">
             <button id="inputGroupSubmit">Добавить студента</button>
diff --git a/~dev_rating/application/views/office/students/profile.twig b/~dev_rating/application/views/office/students/profile.twig
index 16e2a85aa..de9ee852e 100644
--- a/~dev_rating/application/views/office/students/profile.twig
+++ b/~dev_rating/application/views/office/students/profile.twig
@@ -1,4 +1,4 @@
-{% extends "office/base" %}
+{% extends "office/students" %}
 
 {% block title %}Профиль студента{% endblock %}
 
@@ -10,7 +10,6 @@
     </script>
 {% endblock %}
 
-
 {% block main_top_title %}Профиль студента{% endblock %}
 
 {% block office_content %}
@@ -19,22 +18,22 @@
         <div class="profile_clearFix">
             <h2>{{ Profile.FirstName }} {{ Profile.SecondName }} {{ Profile.LastName }}</h2>
         </div>
-        
+
         <div class="profile_clearFix">
             <div class="label">Подразделение:</div>
             <div class="labeled_info">{{ Profile.FacultyName }}</div>
         </div>
-        
+
         <div class="profile_clearFix">
             <div class="label">Направление:</div>
             <div class="labeled_info">{{ Profile.SpecName }}</div>
         </div>
-        
+
         <div class="profile_clearFix">
             <div class="label">Степень:</div>
             <div class="labeled_info">{{ Rus[Profile.Degree] }}</div>
         </div>
-        
+
         <div class="profile_clearFix">
             <div class="label">РљСѓСЂСЃ, РіСЂСѓРїРїР°:</div>
             <div class="itemBlock">
@@ -57,7 +56,7 @@
                 </div>
             </div>
         </div>
-        
+
         {# TODO Statuses (see Controller/Office/Students) #}
         {#<div class="profile_clearFix">#}
             {#<div class="label">Статус:</div>#}
@@ -74,7 +73,7 @@
             {#</div>#}
         {#</div>#}
 
-        
+
         {% if User.isAdmin %}
             <div id="For_Admin">
                 {% if Account.Code %}
@@ -83,22 +82,22 @@
                         <div class="labeled_info">{{ Account.Code|default('Аккаунт активирован') }}</div>
                     </div>
                 {% endif %}
-                
+
                 <div class="profile_clearFix">
                     <div class="label">Логин пользователя:</div>
                     <div class="labeled_info">{{ Account.Login|default('—') }}</div>
                 </div>
-                
+
                 <div class="profile_clearFix">
                     <div class="label">E-Mail:</div>
                     <div class="labeled_info">{{ Account.EMail|default('—') }}</div>
                 </div>
-                
+
                 <div class="profile_clearFix">
                     <div class="label">ID:</div>
                     <div class="labeled_info">{{ Account.ID|default('—') }}</div>
                 </div>
-                
+
                 <div class="profile_clearFix">
                     <div class="label">Роль:</div>
                     <div class="labeled_info">{{ Account.Role|default('—') }}</div>
diff --git a/~dev_rating/application/views/office/students/search.twig b/~dev_rating/application/views/office/students/search.twig
index 797e0bbf2..88070a704 100644
--- a/~dev_rating/application/views/office/students/search.twig
+++ b/~dev_rating/application/views/office/students/search.twig
@@ -1,4 +1,4 @@
-{% extends "office/base" %}
+{% extends "office/students" %}
 
 {% import 'controls/searchStudent' as search %}
 
@@ -6,7 +6,6 @@
 
 {% block office_media %}
     {{ search.head("URLdir + 'handler/search/GetStudentsByName'") }}   {# todo: this is not a good sign #}
-    {{ HTML.style('static/css/common/tabs.css')|raw }}
 {% endblock %}
 
 {% block _ResultPrototype %}
@@ -25,8 +24,6 @@
     </div>
 {% endblock %}
 
-{% block main_top_title %}Студенты{% endblock %}
-
 {% block office_content %}
     {{ search.control(block('_ResultPrototype'), GradesList, User.isAdmin ? Faculties) }}
 {% endblock %}
diff --git a/~dev_rating/application/views/office/students/upload.twig b/~dev_rating/application/views/office/students/upload.twig
index d2a9919e5..cb7cf5ee3 100644
--- a/~dev_rating/application/views/office/students/upload.twig
+++ b/~dev_rating/application/views/office/students/upload.twig
@@ -1,16 +1,12 @@
-{% extends "office/base" %}
+{% extends "office/students" %}
 
-{% block title %}Студенты{% endblock %}
-
-{% block office_media %}
-    {{ HTML.style('static/css/admin/stepByStep.css')|raw }}
-    {{ HTML.script('static/js/admin/students/upload.js')|raw }}
-{% endblock %}
+{% block title %}Добавление студентов{% endblock %}
 
+{% block main_top_title %}Студенты{% endblock %}
 
-{% block main_top_title %}Загрузка списка студентов{% endblock %}
-    
 {% block office_content %}
+
+    <h2 class="defaultForm marginBetween">Пакетная загрузка студентов</h2>
     {% if Errors is not empty %}
         {% set res %}
             {% for item in Errors %}
@@ -21,31 +17,21 @@
         {{ admin.message(warning, 'Возникли проблемы!', '<ul>' ~ res ~ '</ul>') }}
     {% endif %}
 
+    <p>Инструмент пакетной загрузки студентов предоставляет возможность регистрировать в системе множество студентов.</p>
+    <p>Файл со списком студентов представляет собой .csv-файл, который должен иметь следующий формат:</p>
+    <p><pre>ФИО;Курс;Группа;[Бакалавриат, Специалитет, Магистратура];Специальность</pre></p>
     <form enctype="multipart/form-data" action="" method="POST">
-        <div class="stepBox" id="FirstStep">
-            <div class="step_title">
-                <span class='step_title_count'>Шаг 1:</span>
-                <span class='step_title_description'>Выберите подразделение университета</span>
-            </div>
-            <div class="step_body">
-                <select id="facultySelect" name="facultyID">
-                    <option value="0" selected="selected">— Подразделение ЮФУ —</option>
-                    {% for row in Faculties %}
-                        <option value="{{ row.ID }}">{{ row.Name }} ({{ row.Abbr }})</option>
-                    {% endfor %}
-                </select>
-            </div>
+        <div class="goodClearFix defaultForm marginBetween">
+            <select id="facultySelect" name="facultyID" class="defaultForm">
+                <option value="0" selected="selected">— Выберите подразделение ЮФУ —</option>
+                {% for row in Faculties %}
+                    <option value="{{ row.ID }}">{{ row.Name }} ({{ row.Abbr }})</option>
+                {% endfor %}
+            </select>
         </div>
-
-        <div class="stepBox" id="SecondStep">
-            <div class="step_title">
-                <span class='step_title_count'>Шаг 2:</span>
-                <span class='step_title_description'>Выберите файл для загрузки</span>
-            </div>
-            <div class="step_body">
-                  <input name="students" type="file">
-                  <input type="submit" value="Send">
-            </div>
+        <div class="goodClearFix">
+            <div class="defaultForm FLeft"><input name="students" class="defaultForm FullWidth" type="file"></div>
+            <div class="defaultForm FRight"><input type="submit" class="defaultForm GreenButton P2Width noMargin" value="Загрузить"></div>
         </div>
     </form>
-{% endblock %}            
+{% endblock %}
diff --git a/~dev_rating/application/views/office/subjects/upload.twig b/~dev_rating/application/views/office/subjects/upload.twig
index e19449729..6fadeba35 100644
--- a/~dev_rating/application/views/office/subjects/upload.twig
+++ b/~dev_rating/application/views/office/subjects/upload.twig
@@ -1,15 +1,13 @@
 {% extends "office/base" %}
 
-{% block title %}Предметы{% endblock %}
+{% block title %}Загрузка предметов{% endblock %}
 
-{% block main_top_title %}Загрузка списка предметов{% endblock %}
+{% block main_top_title %}Предметы{% endblock %}
 
-{% block office_media %}
-    {{ HTML.style('static/css/admin/stepByStep.css')|raw }}
-    {{ HTML.script('static/js/admin/students/upload.js')|raw }}
-{% endblock %}
-    
 {% block office_content %}
+
+    <h2 class="defaultForm marginBetween">Пакетная загрузка предметов</h2>
+
     {% if UploadingResult is not empty %}
         <p>Обработано: {{ UploadingResult.RecordsCount }}, в том числе с ошибками: {{ UploadingResult.ErrorsCount }},
             найдены в базе: {{ UploadingResult.RecordsExistsCount }}.</p>
@@ -25,31 +23,21 @@
         {% endif %}
     {% endif %}
 
+    <p>Инструмент пакетной загрузки предметов предоставляет возможность добавлять в систему множество наименований предметов.</p>
+    <p>Файл со списком предметов представляет собой .csv-файл, который должен иметь следующий формат:</p>
+    <p><pre>Название;Аббревиатура</pre></p>
     <form enctype="multipart/form-data" action="" method="POST">
-        <div class="stepBox" id="FirstStep">
-            <div class="step_title">
-                <span class='step_title_count'>Шаг 1:</span>
-                <span class='step_title_description'>Выберите подразделение университета</span>
-            </div>
-            <div class="step_body">
-                <select id="facultySelect" name="facultyID">
-                    <option value="0" selected="selected">— Подразделение ЮФУ —</option>
-                    {% for row in Faculties %}
-                        <option value="{{ row.ID }}">{{ row.Name }} ({{ row.Abbr }})</option>
-                    {% endfor %}
-                </select>
-            </div>
+        <div class="goodClearFix defaultForm marginBetween">
+            <select id="facultySelect" name="facultyID" class="defaultForm">
+                <option value="0" selected="selected">— Выберите подразделение ЮФУ —</option>
+                {% for row in Faculties %}
+                    <option value="{{ row.ID }}">{{ row.Name }} ({{ row.Abbr }})</option>
+                {% endfor %}
+            </select>
         </div>
-
-        <div class="stepBox" id="SecondStep">
-            <div class="step_title">
-                <span class='step_title_count'>Шаг 2:</span>
-                <span class='step_title_description'>Выберите файл для загрузки</span>
-            </div>
-            <div class="step_body">
-                <input name="subjects" type="file">
-                <input type="submit" value="Send">
-            </div>
+        <div class="goodClearFix">
+            <div class="defaultForm FLeft"><input name="students" class="defaultForm FullWidth" type="file"></div>
+            <div class="defaultForm FRight"><input type="submit" class="defaultForm GreenButton P2Width noMargin" value="Загрузить"></div>
         </div>
     </form>
-{% endblock %}            
+{% endblock %}
diff --git a/~dev_rating/application/views/office/teachers.twig b/~dev_rating/application/views/office/teachers.twig
new file mode 100644
index 000000000..ff96b0833
--- /dev/null
+++ b/~dev_rating/application/views/office/teachers.twig
@@ -0,0 +1,12 @@
+{% extends "office/base" %}
+
+{% block main_top_title %}Студенты{% endblock %}
+
+{% block office_tabs %}
+    <div class="tabsWrapper noTopMargin">
+        <div class="tabs">
+            <div class="tab">{{ HTML.anchor('office/teachers/search',  'РџРѕРёСЃРє')|raw }}</div>
+            <div class="tab">{{ HTML.anchor('office/teachers/upload', 'Добавление')|raw }}</div>
+        </div>
+    </div>
+{% endblock %}
\ No newline at end of file
diff --git a/~dev_rating/application/views/office/teachers/add.twig b/~dev_rating/application/views/office/teachers/add.twig
index d8de69661..6a331df9b 100644
--- a/~dev_rating/application/views/office/teachers/add.twig
+++ b/~dev_rating/application/views/office/teachers/add.twig
@@ -1,4 +1,4 @@
-{% extends "office/base" %}
+{% extends "office/teachers" %}
 
 {% block office_media %}
     {{ HTML.style('static/css/admin/inputGroup.css')|raw }}
@@ -21,8 +21,8 @@
             <input type="text" id="secondName" placeholder="Отчество">
         </div>
     </div>
-    
-    
+
+
     <div class="inputGroup">
         <div class="inputGroup_title">
             Выбор места работы
@@ -45,8 +45,8 @@
             </select>
         </div>
     </div>
-    
-    
+
+
     <div class="inputGroup">
         <div class="inputGroup_submit">
             <button id="inputGroupSubmit">Добавить преподавателя</button>
diff --git a/~dev_rating/application/views/office/teachers/profile.twig b/~dev_rating/application/views/office/teachers/profile.twig
index 73383362d..173c0cd75 100644
--- a/~dev_rating/application/views/office/teachers/profile.twig
+++ b/~dev_rating/application/views/office/teachers/profile.twig
@@ -1,4 +1,4 @@
-{% extends "office/base" %}
+{% extends "office/teachers" %}
 
 {% block title %}Профиль преподавателя{% endblock %}
 
diff --git a/~dev_rating/application/views/office/teachers/search.twig b/~dev_rating/application/views/office/teachers/search.twig
index 01dad6f88..915e074b1 100644
--- a/~dev_rating/application/views/office/teachers/search.twig
+++ b/~dev_rating/application/views/office/teachers/search.twig
@@ -1,4 +1,4 @@
-{% extends "office/base" %}
+{% extends "office/teachers" %}
 
 {% import 'controls/searchTeacher' as search %}
 
diff --git a/~dev_rating/application/views/office/teachers/upload.twig b/~dev_rating/application/views/office/teachers/upload.twig
index 6dd9a6a25..e013e4a1f 100644
--- a/~dev_rating/application/views/office/teachers/upload.twig
+++ b/~dev_rating/application/views/office/teachers/upload.twig
@@ -1,14 +1,10 @@
-{% extends "office/base" %}
+{% extends "office/teachers" %}
 
 {% block title %}Преподаватели{% endblock %}
-{% block main_top_title %}Загрузка списка преподавателей{% endblock %}
+{% block main_top_title %}Преподаватели{% endblock %}
 
-{% block office_media %}
-    {{ HTML.style('static/css/admin/stepByStep.css')|raw }}
-    {{ HTML.script('static/js/admin/students/upload.js')|raw }}
-{% endblock %}
-    
 {% block office_content %}
+    <h2 class="defaultForm marginBetween">Пакетная загрузка преподавателей</h2>
     {% if Errors is not empty %}
         {% set res %}
             {% for item in Errors %}
@@ -19,31 +15,25 @@
         {{ admin.message(warning, 'Возникли проблемы!', '<ul>' ~ res ~ '</ul>') }}
     {% endif %}
 
+    <div class="dialogTopText">
+        <p>Инструмент пакетной загрузки преподавателей предоставляет возможность регистрировать в системе множество преподавателей.</p>
+        <p>Файл со списком преподавателей представляет собой .csv-файл, который должен иметь следующий формат:</p>
+        <p>
+            <pre>ФИО;Кафедра</pre>
+        </p>
+    </div>
     <form enctype="multipart/form-data" action="" method="POST">
-        <div class="stepBox" id="FirstStep">
-            <div class="step_title">
-                <span class='step_title_count'>Шаг 1:</span>
-                <span class='step_title_description'>Выберите подразделение университета</span>
-            </div>
-            <div class="step_body">
-                <select id="facultySelect" name="facultyID">
-                    <option value="0" selected="selected">— Подразделение ЮФУ —</option>
-                    {% for row in Faculties %}
-                        <option value="{{ row.ID }}">{{ row.Name }} ({{ row.Abbr }})</option>
-                    {% endfor %}
-                </select>
-            </div>
+        <div class="goodClearFix defaultForm marginBetween">
+            <select id="facultySelect" name="facultyID" class="defaultForm">
+                <option value="0" selected="selected">— Выберите подразделение ЮФУ —</option>
+                {% for row in Faculties %}
+                    <option value="{{ row.ID }}">{{ row.Name }} ({{ row.Abbr }})</option>
+                {% endfor %}
+            </select>
         </div>
-
-        <div class="stepBox" id="SecondStep">
-            <div class="step_title">
-                <span class='step_title_count'>Шаг 2:</span>
-                <span class='step_title_description'>Выберите файл для загрузки</span>
-            </div>
-            <div class="step_body">
-                <input name="teachers" type="file">
-                <input type="submit" value="Send">
-            </div>
+        <div class="goodClearFix">
+            <div class="defaultForm FLeft"><input name="students" class="defaultForm FullWidth" type="file"></div>
+            <div class="defaultForm FRight"><input type="submit" class="defaultForm GreenButton P2Width noMargin" value="Загрузить"></div>
         </div>
     </form>
-{% endblock %}            
+{% endblock %}
-- 
GitLab