Эх сурвалжийг харах

Home page front-end redesign

- Removed unnecessary files
- Some JS scripts rewritten and comments added
- Reworked some .css files
- Fixed template layout
TonyKurts 1 жил өмнө
parent
commit
d8d2371090

+ 93 - 0
SharixAdmin/static/SharixAdmin/css/style.css

@@ -0,0 +1,93 @@
+@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap');
+
+* {
+    font-family: 'Open Sans', sans-serif;
+    margin: 0;
+    padding: 0;
+    box-sizing: border-box;
+}
+
+.content {
+    max-width: 1920px;
+    min-width: 800px;
+    min-height: 100vh;
+}
+
+.border {
+    border-color: #D8D8D8 !important;
+}
+
+.rounded {
+    border-radius: 0.5rem !important;
+}
+
+.box-shadow {
+    box-shadow: 4px 5px 40px 0px #E5E5E5;
+}
+
+#menu-bar {
+    position: fixed;
+    z-index: 32;
+    user-select: none;
+    transition-duration: 0.4s;
+}
+
+.menu-bar-label {
+    position: absolute;
+    margin-left: 2rem;
+    transition-duration: 0.4s;
+    width: max-content;
+}
+
+#menu-bar-img-arrow {
+    width: 24px;
+    height: 24px;
+    color: #0081ff;
+    transition-duration: 0.4s;
+}
+
+#user-workspace {
+    transition-duration: 0.4s;
+}
+
+#loader-wrapper {
+    position: fixed;
+    top: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+    background-color: rgba(255, 255, 255, 1); /* Полупрозрачный белый цвет */
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    z-index: 9999; /* Помещаем поверх всех остальных элементов */
+}
+  
+#loader {
+    border: 8px solid #f3f3f3; /* Светло-серый */
+    border-top: 8px solid #3498db; /* Синий */
+    border-radius: 50%;
+    width: 50px;
+    height: 50px;
+    animation: spin 1.5s linear infinite; /* Анимация вращения */
+}
+
+@keyframes spin {
+    0% { transform: rotate(0deg); }
+    100% { transform: rotate(360deg); }
+}
+
+.nav-link {
+    height: 48px;
+    display: flex;
+    align-items: center;
+}
+
+.nav-img {
+    width: 22px;
+    height: 22px;
+}
+
+.active .menu-bar-label {
+    color: white;
+}

+ 0 - 0
SharixAdmin/static/SharixAdmin/img/menu/tikets.svg → SharixAdmin/static/SharixAdmin/img/menu/tickets.svg


+ 0 - 0
SharixAdmin/static/SharixAdmin/img/menu/tikets_w.svg → SharixAdmin/static/SharixAdmin/img/menu/tickets_w.svg


+ 48 - 0
SharixAdmin/static/SharixAdmin/js/menu-bar.js

@@ -0,0 +1,48 @@
+// Получаем элементы из DOM
+const menuBarEl = document.getElementById('menu-bar'); // Элемент меню
+const menuBarImgArrowEl = document.getElementById('menu-bar-img-arrow'); // Элемент стрелки в меню
+const menuBarLabelEls = document.querySelectorAll('.menu-bar-label'); // Коллекция элементов меток в меню
+const userWorkspaceEl = document.getElementById('user-workspace'); // Элемент рабочей области пользователя
+
+// Проверяем, открыто ли меню, и устанавливаем значение по умолчанию, если в localStorage нет информации
+if (localStorage.getItem('menuBarOpened') === null) localStorage.setItem('menuBarOpened', true);
+
+// Функция для управления видимостью меню
+function menuBarControll() {
+    // Получаем значение открытия меню из localStorage
+    let menuBarOpened = localStorage.getItem('menuBarOpened');
+    let menuBarWidth;
+
+    // Устанавливаем ширину меню в зависимости от его состояния (открыто/закрыто)
+    if (menuBarOpened === 'true') {
+        // Ширина меню при закрытом состоянии
+        menuBarWidth = 74; 
+        // Устанавливаем нулевую прозрачность для каждой метки в меню
+        menuBarLabelEls.forEach(function(el) { el.style.opacity = 0; });
+        // Поворачиваем стрелку на 0 градусов
+        menuBarImgArrowEl.style.transform = 'rotate(0deg)';
+    } else {
+        // Ширина меню при октрытом состоянии
+        menuBarWidth = 280;
+        // Устанавливаем полную прозрачность для каждой метки в меню
+        menuBarLabelEls.forEach(function(el) { el.style.opacity = 1; });
+        // Поворачиваем стрелку на 180 градусов
+        menuBarImgArrowEl.style.transform = 'rotate(180deg)';
+    }
+
+    // Устанавливаем необходимую ширину меню и отступ рабочей области пользователя
+    menuBarEl.style.minWidth = menuBarWidth + 'px';
+    userWorkspaceEl.style.marginLeft = menuBarWidth + 16 + 'px';
+}
+
+// Функция для переключения состояния открытия меню
+function menuBarSwitch() {
+    // Получаем текущее значение открытия меню из localStorage
+    let menuBarOpened = localStorage.getItem('menuBarOpened');
+    // Инвертируем значение (true -> false, false -> true)
+    menuBarOpened = menuBarOpened === 'true' ? false : true;
+    // Сохраняем новое значение в localStorage
+    localStorage.setItem('menuBarOpened', menuBarOpened);
+    // Вызываем функцию управления меню для обновления его внешнего вида
+    menuBarControll();
+}

+ 0 - 61
SharixAdmin/static/drf-yasg/navbar-style.css

@@ -1,61 +0,0 @@
-@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@400;700&display=swap');
-
-* {
-    font-family: 'Open Sans', sans-serif;
-    margin: 0;
-    padding: 0;
-    box-sizing: border-box;
-}
-body {
-    height: 130vh;
-}
-
-.nav-item {
-    margin-bottom: 6px;
-    font-size: 16px;
-    line-height: 24px;
-}
-.footer-item {
-    margin-top: 4px;
-    font-size: 14px;
-    color: #3F3F3F;
-    font-weight: 400;
-}
-.footer-color{
-    color: #479FF8;
-}
-.footer-link a{
-    text-decoration: none;
-}
-.arrow {
-    margin: auto;
-    color: #479FF8;
-}
-.rectangle-arrow {
-    position: fixed;
-    display: flex;
-    top: 0;
-    left: 0;
-    width: 78px;
-    height: 40px;
-    align-items: center;
-    vertical-align: middle;
-    border-radius: 6px;
-    border: 1px solid #D8D8D8;
-    background: #FFF;
-    box-shadow: 4px 5px 40px 0px #E5E5E5;
-    margin-top: 24px;
-    margin-left: 10px;
-    justify-content: center;
-}
-.nav-item span {
-    margin-left: 4px;
-}
-.nav-pills .nav-link {
-    height: 48px;
-    display: flex;
-
-}
-.link {
-    margin-top: 4px;
-}

+ 0 - 21
SharixAdmin/static/drf-yasg/style.css

@@ -1,24 +1,3 @@
-html {
-    box-sizing: border-box;
-    overflow: -moz-scrollbars-vertical;
-    overflow-y: scroll;
-}
-
-*,
-*:before,
-*:after {
-    box-sizing: inherit;
-}
-
-body {
-    margin: 0;
-    padding: 0;
-}
-
-body.swagger-body {
-    background: #fafafa;
-}
-
 .hidden {
 .hidden {
     display: none;
     display: none;
 }
 }

+ 12 - 7
SharixAdmin/templates/SharixAdmin/base.html

@@ -1,20 +1,25 @@
 {% load static %}
 {% load static %}
+
 <!DOCTYPE html>
 <!DOCTYPE html>
 <html lang="en">
 <html lang="en">
 <head>
 <head>
     <meta charset="UTF-8">
     <meta charset="UTF-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta http-equiv="X-UA-Compatible" content="IE=edge">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
     <meta name="viewport" content="width=device-width, initial-scale=1.0">
-    <link rel="shortcut icon" href="{% static 'SharixAdmin/img/logo.png' %}"/>
-    <link rel="stylesheet" href="{% static 'drf-yasg/navbar-style.css' %}" >
-    <link rel="stylesheet" href="{% static 'drf-yasg/service_type.css' %}" >
+    <link rel="shortcut icon" href="{% static 'SharixAdmin/img/logo.png' %}">
+    <link rel="stylesheet" href="{% static 'drf-yasg/navbar-style.css' %}">
+    <link rel="stylesheet" href="{% static 'drf-yasg/service_type.css' %}">
     <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
     <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
-    <link type="text/css" href="{% static 'drf-yasg/colors2.css' %}" rel="stylesheet" />
+    <link href="{% static 'drf-yasg/colors2.css' %}" rel="stylesheet">
+    
+    <link rel="stylesheet" href="{% static 'SharixAdmin/css/style.css' %}">
+
     <title>{{ title }}</title>
     <title>{{ title }}</title>
 </head>
 </head>
-<body style="min-width: 1050px;">
-    {% block content %}
-    {% endblock %}
+
+<body>
+    {% block content %}{% endblock %}
+    
     <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>
     <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>
 </body>
 </body>
 </html>
 </html>

+ 174 - 161
SharixAdmin/templates/SharixAdmin/index.html

@@ -3,177 +3,190 @@
 {% load static %}
 {% load static %}
 
 
 {% block content %}
 {% block content %}
+<div id="loader-wrapper">
+  <div id="loader"></div>
+</div>
 
 
+<div class="content p-4 mx-auto d-flex flex-column justify-content-between">
+  <nav id="menu-bar">
+    <button class="bg-white border box-shadow rounded mb-2 px-4 py-1" onclick="menuBarSwitch()">
+        <img id="menu-bar-img-arrow" src="{% static 'SharixAdmin/img/menu/arrow-right.svg' %}">
+    </button>
 
 
-<input type="checkbox" name="" style="display: none;" checked id="hideMenuCheckBox">
-<div class="container-fluid">
-    <div class="row">
-        <div class="col-3" id="leftmainpage">
-            <div class="d-flex flex-column p-2" style="width: 100%; min-width: 72px; max-width: 280px; height: 464px; position: sticky; top: 76px;
-            border-radius: 10px; border: 1px solid #D8D8D8; box-shadow: 4px 5px 40px 0px #E5E5E5;">
+    <ul class="d-flex flex-column nav nav-pills rounded box-shadow border p-2 bg-white">
+      <li class="nav-item">
+        <a href="{% url "home" %}" class="nav-link {% if current_page == "index" %}active rounded{% endif %}">
+          <div class="link d-flex align-items-center">
+            <img
+              class="nav-img"
+              src="
+                {% if current_page == "index" %}
+                  {% static 'SharixAdmin/img/menu/house_w.svg' %}
+                {% else %}
+                  {% static 'SharixAdmin/img/menu/house.svg' %}
+                {% endif %}">
+            <span class="menu-bar-label">Главная</span>
+          </div>
+        </a>
+      </li>
+      <li class="nav-item">
+        <a href="{% url 'tickets:ticket_list_list' %}" class="nav-link {% if current_page == "tickets" %}active rounded{% endif %}">
+          <div class="link d-flex align-items-center">
+            <img
+              class="nav-img"
+              src="
+                {% if current_page == "tickets" %}
+                  {% static 'SharixAdmin/img/menu/tickets_w.svg' %}
+                {% else %}
+                  {% static 'SharixAdmin/img/menu/tickets.svg' %}
+                {% endif %}"> 
+            <span class="menu-bar-label">Заявки</span>
+          </div>
+        </a>
+      </li>
+      <li class="nav-item">
+        <a href="http://study.reversea.net/" class="nav-link {% if current_page == "education" %}active rounded{% endif %}">
+          <div class="link d-flex align-items-center">
+            <img
+              class="nav-img"
+              src="
+                {% if current_page == "education" %}
+                  {% static 'SharixAdmin/img/menu/education_w.svg' %}
+                {% else %}
+                  {% static 'SharixAdmin/img/menu/education.svg' %}
+                {% endif %}">
+            <span class="menu-bar-label">Курсы</span>
+          </div>
+        </a>
+      </li>
+      <li class="nav-item">
+        <a href="{% url 'partners' %}" class="nav-link {% if current_page == "partners" %}active rounded{% endif %}">
+          <div class="link d-flex align-items-center">
+            <img
+              class="nav-img"
+              src="
+                {% if current_page == "partners" %}
+                  {% static 'SharixAdmin/img/menu/people_w.svg' %}
+                {% else %}
+                  {% static 'SharixAdmin/img/menu/people.svg' %}
+                {% endif %}">
+            <span class="menu-bar-label">Партнеры</span>
+          </div>
+        </a>
+      </li>
+      <li class="nav-item">
+        <a href="{% url 'user_information' %}" class="nav-link {% if current_page == "none" %}active rounded{% endif %}">
+          <div class="link d-flex align-items-center">
+            <img
+              class="nav-img"
+              src="
+                {% if current_page == "none" %}
+                  {% static 'SharixAdmin/img/menu/hdd-network_w.svg' %}
+                {% else %}
+                  {% static 'SharixAdmin/img/menu/hdd-network.svg' %}
+                {% endif %}">
+            <span class="menu-bar-label">Управление правами</span>
+          </div>
+        </a>
+      </li>
+      <li class="nav-item">
+        <a href="{% url 'service_type' %}" class="nav-link {% if current_page == "service_type" %}active rounded{% endif %}">
+          <div class="link d-flex align-items-center">
+            <img
+              class="nav-img"
+              src="
+                {% if current_page == "service_type" %}
+                  {% static 'SharixAdmin/img/menu/briefcase_w.svg' %}
+                {% else %}
+                  {% static 'SharixAdmin/img/menu/briefcase.svg' %}
+                {% endif %}">
+            <span class="menu-bar-label">Услуги сервиса</span>
+          </div>
+        </a>
+      </li>
+      <li class="nav-item">
+        <a href="{% url 'trans' %}" class="nav-link {% if current_page == "transactions" %}active rounded{% endif %}">
+          <div class="link d-flex align-items-center">
+            <img
+              class="nav-img"
+              src="
+                {% if current_page == "transactions" %}
+                  {% static 'SharixAdmin/img/menu/clock-history_w.svg' %}
+                {% else %}
+                  {% static 'SharixAdmin/img/menu/clock-history.svg' %}
+                {% endif %}">
+            <span class="menu-bar-label">История заказов</span>
+          </div>
+        </a>
+      </li>
+      <li class="nav-item">
+        <a href="{% url 'service_information-add' %}" class="nav-link {% if current_page == "service_info" %}active rounded{% endif %}">
+          <div class="link d-flex align-items-center">
+            <img
+              class="nav-img"
+              src="
+                {% if current_page == "service_info" %}
+                  {% static 'SharixAdmin/img/menu/person_w.svg' %}
+                {% else %}
+                  {% static 'SharixAdmin/img/menu/person.svg' %}
+                {% endif %}">
+            <span class="menu-bar-label">Информация о сервисе</span>
+          </div>
+        </a>
+      </li>
+      <li class="nav-item">
+        <a href="{% url 'payment' %}" class="nav-link {% if current_page == "payment" %}active rounded{% endif %}">
+          <div class="link d-flex align-items-center">
+            <img
+              class="nav-img"
+              src="
+                {% if current_page == "payment" %}
+                  {% static 'SharixAdmin/img/menu/credit-card_w.svg' %}
+                {% else %}
+                  {% static 'SharixAdmin/img/menu/credit-card.svg' %}
+                {% endif %}">
+            <span class="menu-bar-label">Оплата</span>
+          </div>
+        </a>
+      </li>
+    </ul>
+  </nav>
 
 
+  <div id="user-workspace" class="p-5 border rounded box-shadow">
+      {% block contenthome %}{% endblock contenthome%}
+  </div>
 
 
-              <ul class="nav nav-pills flex-column mb-auto" style="margin-top: 12px;">
-                {% for item in menu %}
-                {% if item.link == url_path %}
-                <li class="nav-item">
-                  <a class="nav-link active" style="color: #FFF; border-radius: 10px;" >
-                    {% with 'SharixAdmin/img/menu/'|add:item.sel|add:'_w.svg' as image_static %}
-                    <div class="link">
-                      <img  src="{% static image_static %}" alt="" style="width: 22px; height: 22px;"> 
-                      {% endwith %}
-                      
-                      <span class="hidemenu" style="color: #FFF;">{{ item.title }}</span>
-                    </div>
-                  </a>
-                </li>
-                {% elif item.link == 'tickets' %}
-                <li class="nav-item">
-                  <a href="{% url 'tickets:ticket_list_list' %}" class="nav-link" >
-                    {% with 'SharixAdmin/img/menu/'|add:item.sel|add:'.svg' as image_static %}
-                    <div class="link">
-                      <img  src="{% static image_static %}" alt="" style="width: 22px; height: 22px;"> 
-                      {% endwith %}
-                      <span class="hidemenu">{{ item.title }}</span>
-                    </div>
-                  </a>
-                </li>
-                {% elif item.link == 'course' %}
-                <li class="nav-item">
-                  <a href="http://study.reversea.net/" class="nav-link" >
-                    {% with 'SharixAdmin/img/menu/'|add:item.sel|add:'.svg' as image_static %}
-                    <div class="link">
-                      <img  src="{% static image_static %}" alt="" style="width: 22px; height: 22px;"> 
-                      {% endwith %}
-                      <span class="hidemenu">{{ item.title }}</span>
-                    </div>
-                  </a>
-                </li>
-                {% else %}
-                <li class="nav-item">
-                  <a href="{% url item.link %}" class="nav-link" >
-                    {% with 'SharixAdmin/img/menu/'|add:item.sel|add:'.svg' as image_static %}
-                    <div class="link">
-                      <img  src="{% static image_static %}" alt="" style="width: 22px; height: 22px; "> 
-                      {% endwith %}
-                      <span class="hidemenu">{{ item.title }}</span>
-                    </div>
-                  </a>
-                </li>
-                {% endif%}
-                {% endfor %}
-              </ul>
-                <hr>
-                <div class="dropdown">
-                  <a href="#" aria-expanded="false">
-                    <img alt="" width="1" height="1" class="rounded-circle me-2">
-                    <strong id="user-name-exit"></strong>
-                  </a>
-                </div>
-              </div>      
-        </div>
-        <div class="col-9" id="rightmainpage">
-            <div class="d-flex flex-column p-4" 
-            style="
-            width: 100%; 
-            height: 857px; 
-            border: 1px solid #D8D8D8;
-            border-radius: 10px;
-            box-shadow: 4px 5px 40px 0px #E5E5E5;
-            margin-top: 76px;">
-            {% block contenthome %}
-            {% endblock contenthome%}
-        </div>
-            
-      </div>
+  <footer class="d-flex justify-content-between mt-3 p-2 align-items-center border rounded box-shadow">
+    <div>
+        <img class="rounded-circle" style="height: 48px" src="{% static 'SharixAdmin/img/user_avatar_1.png' %}"/>
+        <span class="mx-2">{{ phone }}</span>
     </div>
     </div>
-
-    <div class="d-flex justify-content-between mt-2 p-2 align-items-center" id="footer"
-          style="border: 1px solid #D8D8D8; box-shadow: 4px 5px 40px 0px #E5E5E5; border-radius: 10px;">
-      <div>
-          <img class="rounded-circle" style="height: 48px" src="{% static 'SharixAdmin/img/user_avatar_1.png' %}"/>
-          <span class="mx-2">{{ phone }}</span>
-      </div>
-      <div>
-          <a class="ms-4" href="{% url 'contact' %}">{% trans 'Contacts' %}</a>
-          <a class="ms-4" href="https://wiki.sharix-app.org/doku.php/sharix/legal/soglashenie_s_servisom_na_ispolzovanie_platformy_sharix">{% trans 'Terms of use' %}</a>
-          <a class="ms-4 me-1" href="https://wiki.sharix-app.org/doku.php/sharix/legal/politika_konfidencialnosti_platformy_sharix">{% trans 'Privacy policy' %}</a>
-          <svg width="24" viewBox="0 0 24 24" fill="none" stroke="#479FF8" xmlns="http://www.w3.org/2000/svg">
-            <text x="9" y="16">
-                <a href="https://wiki.sharix-app.org/doku.php">?</a>
-            </text>
-            <circle cx="12" cy="12" r="11.5"/>
-          </svg>
-      </div>
+    <div>
+        <a class="ms-4" href="{% url 'contact' %}">{% trans 'Contacts' %}</a>
+        <a class="ms-4" href="https://wiki.sharix-app.org/doku.php/sharix/legal/soglashenie_s_servisom_na_ispolzovanie_platformy_sharix">{% trans 'Terms of use' %}</a>
+        <a class="ms-4 me-1" href="https://wiki.sharix-app.org/doku.php/sharix/legal/politika_konfidencialnosti_platformy_sharix">{% trans 'Privacy policy' %}</a>
+        <svg width="24" viewBox="0 0 24 24" fill="none" stroke="#479FF8" xmlns="http://www.w3.org/2000/svg">
+          <text x="9" y="16">
+              <a href="https://wiki.sharix-app.org/doku.php">?</a>
+          </text>
+          <circle cx="12" cy="12" r="11.5"/>
+        </svg>
     </div>
     </div>
+  </footer>
 </div>
 </div>
 
 
-<a class="d-flex align-items-center mb-3 mb-md-0 me-md-auto text-decoration-none" 
-onclick="barMenuHide()" 
-style="cursor: pointer; position: fixed; align-items: center;">
-  <div class="rectangle-arrow">
-    <img src="{% static 'SharixAdmin/img/menu/arrow-right.svg' %}" 
-    style="width: 24px; height: 24px; rotate: 180deg; color: #0081ff; transition-duration: 0.4s;" 
-    class="mx-3 my-2" id="row-bar-menu" alt="">
-    <span class="fs-4" id="sharix-menu-row"></span>
-  </div>
-</a>
+<script src="{% static 'SharixAdmin/js/menu-bar.js' %}"></script>
 
 
 <script>
 <script>
-  hidemenu = document.getElementsByClassName('hidemenu')
-  shMenuRow = document.getElementById('sharix-menu-row')
-  usNameExit = document.getElementById('user-name-exit')
-  rightmainpage = document.getElementById('rightmainpage')
-  leftmainpage = document.getElementById('leftmainpage')
-  hideCheck = document.getElementById('hideMenuCheckBox')
-  rowBarMenu = document.getElementById('row-bar-menu')
-
-  function showmenu(){
-    rowBarMenu.style.transform = 'rotate(0deg)';
-    shMenuRow.style.display = "inline"
-      usNameExit.style.display = "inline"
-      leftmainpage.style.maxWidth = "310px"
-      leftmainpage.classList.remove("col-1")
-      leftmainpage.classList.add("col-3")
-      rightmainpage.classList.remove("col-11")
-      rightmainpage.classList.add("col-9")
-      for(var i = 0; i < hidemenu.length; i++){
-       hidemenu[i].style.display = "inline"; // depending on what you're doing
-      }
-  }
-  function hide(){
-    rowBarMenu.style.transform = 'rotate(180deg)';
-    shMenuRow.style.display = "none"
-    usNameExit.style.display = "none"
-    leftmainpage.style.maxWidth = "100px"
-    leftmainpage.classList.remove("col-3")
-    leftmainpage.classList.add("col-1")
-    rightmainpage.classList.remove("col-9")
-    rightmainpage.classList.add("col-11")
-    for(var i = 0; i < hidemenu.length; i++){
-      hidemenu[i].style.display = "none"; // depending on what you're doing
-    }
-  }
-  function barMenuHide(){
-    if(hideCheck.checked == true){
-      hideCheck.checked = false
-      hide()
-    } else {
-      hideCheck.checked = true
-      showmenu()
-    }
-  }
-  if(hideCheck.checked == true){
-      showmenu()
-    } else {
-      hide()
-    }
-  
-  
-</script>
-
-
-
+  // Запуск некоторых функций после загрузки страницы
+  document.addEventListener('DOMContentLoaded', function() {
+    menuBarControll();
+  });
 
 
+  // Функция для скрытия экрана загрузки
+  function hideLoader() { document.getElementById("loader-wrapper").style.display = "none"; }
 
 
+  // Скрыть экран загрузки через 4 секунды
+  setTimeout(hideLoader, 400);
+</script>
 {% endblock %}
 {% endblock %}

+ 32 - 34
SharixAdmin/templates/SharixAdmin/main.html

@@ -2,40 +2,38 @@
 {% load i18n %}
 {% load i18n %}
 
 
 {% block contenthome %}
 {% block contenthome %}
-<div class="container">
-    <h1 class="mainHeader">{{ title }}</h1>
-    <p class="description_service">Это система управления государством, источником власти в которой является сам народ. Именно народ решает, какие законы и нормы необходимы для гармоничного существования и развития государства. Таким образом, каждый человек в демократическом обществе 
-        Получает определенный набор свобод и обязательств сформированных с учетом интересов всего сообщества. Исходя из вышесказанного, можно заключить, что демократия – это возможность для каждого человека свободно участвовать в непосредственном управлении своим государством, обществом и личной судьбой в конечном счете.</p>    
-    <div class="container" style="padding: 2px;">
-        <div class="row fs-6">
+<h1 class="mainHeader">{{ title }}</h1>
+<p class="description_service">Это система управления государством, источником власти в которой является сам народ. Именно народ решает, какие законы и нормы необходимы для гармоничного существования и развития государства. Таким образом, каждый человек в демократическом обществе 
+    Получает определенный набор свобод и обязательств сформированных с учетом интересов всего сообщества. Исходя из вышесказанного, можно заключить, что демократия – это возможность для каждого человека свободно участвовать в непосредственном управлении своим государством, обществом и личной судьбой в конечном счете.</p>    
+<div class="container" style="padding: 2px;">
+    <div class="row fs-6">
+        
+        <div class="col-6 ">
+            <ul class="list-group">
+                <li class="list-group-item light"><strong>{% trans 'Documentation' %}</strong> </li>
+                <li class="list-group-item"><a  href="https://wiki.sharix-app.org/doku.php/sharix/legal/politika_konfidencialnosti_platformy_sharix">{% trans 'Privacy policy' %}</a></li>
+                <li class="list-group-item"><a  href="https://wiki.sharix-app.org/doku.php/sharix/legal/pravila_okazanija_uslug">{% trans 'Rules for the provision of services' %}</a></li>
+                <li class="list-group-item"><a  href="https://wiki.sharix-app.org/doku.php/sharix/legal/porjadok_okazanija_uslug">{% trans 'Procedure for the provision of services' %}</a></li>
+                <li class="list-group-item"><a  href="https://wiki.sharix-app.org/doku.php/sharix/legal/perechen_uslug_platformy">{% trans 'List of services' %}</a></li>
+                <li class="list-group-item"><a  href="{% url 'schemav1' %}">{% trans 'Scheme 1' %}</a> / <a  href="{% url 'schemav2' %}">{% trans 'Scheme 2' %}</a> / <a  href="{% url 'schema' %}">{% trans 'Scheme 3' %}</a> / <a  href="{% url 'schema-redoc' %}">{% trans 'API Docs' %}</a></li>
             
             
-            <div class="col-6 ">
-                <ul class="list-group">
-                    <li class="list-group-item light"><strong>{% trans 'Documentation' %}</strong> </li>
-                    <li class="list-group-item"><a  href="https://wiki.sharix-app.org/doku.php/sharix/legal/politika_konfidencialnosti_platformy_sharix">{% trans 'Privacy policy' %}</a></li>
-                    <li class="list-group-item"><a  href="https://wiki.sharix-app.org/doku.php/sharix/legal/pravila_okazanija_uslug">{% trans 'Rules for the provision of services' %}</a></li>
-                    <li class="list-group-item"><a  href="https://wiki.sharix-app.org/doku.php/sharix/legal/porjadok_okazanija_uslug">{% trans 'Procedure for the provision of services' %}</a></li>
-                    <li class="list-group-item"><a  href="https://wiki.sharix-app.org/doku.php/sharix/legal/perechen_uslug_platformy">{% trans 'List of services' %}</a></li>
-                    <li class="list-group-item"><a  href="{% url 'schemav1' %}">{% trans 'Scheme 1' %}</a> / <a  href="{% url 'schemav2' %}">{% trans 'Scheme 2' %}</a> / <a  href="{% url 'schema' %}">{% trans 'Scheme 3' %}</a> / <a  href="{% url 'schema-redoc' %}">{% trans 'API Docs' %}</a></li>
-                
-                  </ul>
-            </div>
-            <div class="col-6 text-end">
-              {% blocktrans trimmed with request.user.username as user %}
-              <p>User: <b>{{ user }}</b></p>
-              {% endblocktrans %}
-              {% blocktrans trimmed %}
-              <p>Phone number: <b>{{ phone }}</b></p>
-              {% endblocktrans %}
-              {% blocktrans trimmed with request.user.date_joined as date %}
-              <p>Date of registration: <b>{{ date }}</b></p>
-              {% endblocktrans %}
-              {% blocktrans trimmed with wallet.balance as balance %}
-              <p>Balance: <b>{{ balance }} points</b></p>
-              {% endblocktrans %}
-                <a href="{% url 'balance' %}" class="btn btn-success">{% trans 'Buy points' %}</a>
-            </div>
+                </ul>
+        </div>
+        <div class="col-6 text-end">
+            {% blocktrans trimmed with request.user.username as user %}
+            <p>User: <b>{{ user }}</b></p>
+            {% endblocktrans %}
+            {% blocktrans trimmed %}
+            <p>Phone number: <b>{{ phone }}</b></p>
+            {% endblocktrans %}
+            {% blocktrans trimmed with request.user.date_joined as date %}
+            <p>Date of registration: <b>{{ date }}</b></p>
+            {% endblocktrans %}
+            {% blocktrans trimmed with wallet.balance as balance %}
+            <p>Balance: <b>{{ balance }} points</b></p>
+            {% endblocktrans %}
+            <a href="{% url 'balance' %}" class="btn btn-success">{% trans 'Buy points' %}</a>
         </div>
         </div>
     </div>
     </div>
-</div>    
-{% endblock contenthome %}
+</div>  
+{% endblock %}

+ 3 - 15
SharixAdmin/templates/SharixAdmin/service_type.html

@@ -4,8 +4,6 @@
 {% load static %}
 {% load static %}
 
 
 {% block contenthome %}
 {% block contenthome %}
-
-
 <style>
 <style>
   a {
   a {
     color: black;
     color: black;
@@ -16,26 +14,16 @@
   }
   }
 </style>
 </style>
 
 
-
-    
-    <div class="container">
-      <h1 class="mainHeader">{{ title }}</h1>
-      <p class="description_service">Это система управления государством, источником власти в которой является сам народ. Именно народ решает, какие законы и нормы необходимы для гармоничного существования и развития государства. Таким образом, каждый человек в демократическом обществе 
+<h1 class="mainHeader">{{ title }}</h1>
+<p class="description_service">Это система управления государством, источником власти в которой является сам народ. Именно народ решает, какие законы и нормы необходимы для гармоничного существования и развития государства. Таким образом, каждый человек в демократическом обществе 
         Получает определенный набор свобод и обязательств сформированных с учетом интересов всего сообщества. Исходя из вышесказанного, можно заключить, что демократия – это возможность для каждого человека свободно участвовать в непосредственном управлении своим государством, обществом и личной судьбой в конечном счете.</p>
         Получает определенный набор свобод и обязательств сформированных с учетом интересов всего сообщества. Исходя из вышесказанного, можно заключить, что демократия – это возможность для каждого человека свободно участвовать в непосредственном управлении своим государством, обществом и личной судьбой в конечном счете.</p>
       <div class="row justify-content-start">
       <div class="row justify-content-start">
           <div class="maintable" id="maintable">
           <div class="maintable" id="maintable">
             {% render_table table %}
             {% render_table table %}
           </div>     
           </div>     
-
-
-
-  </div>
+      </div>
 
 
   <div class="container text-end mt-2">
   <div class="container text-end mt-2">
     <a class="btn btn-primary" id="bord" href="/service_type/add">{% trans 'Add' %}</a>
     <a class="btn btn-primary" id="bord" href="/service_type/add">{% trans 'Add' %}</a>
   </div>
   </div>
-  
-
-
-
 {% endblock contenthome %}
 {% endblock contenthome %}

+ 0 - 3
SharixAdmin/tests.py

@@ -1,3 +0,0 @@
-from django.test import TestCase
-
-# Create your tests here.

+ 2 - 2
SharixAdmin/urls.py

@@ -19,7 +19,7 @@ urlpatterns = [
     path('transactions/<int:trans_id>/', trans_id, name='transid'),
     path('transactions/<int:trans_id>/', trans_id, name='transid'),
     path('logout/', logout_view, name='logoutweb'),
     path('logout/', logout_view, name='logoutweb'),
     path('balance/', balance, name='balance'),
     path('balance/', balance, name='balance'),
-    path('test/', testPage, name='test-page'),
+    path('payment/', login_required(paymentView), name='payment'),
    
    
     path('partners/', login_required(PartnersListView.as_view()), name='partners'),
     path('partners/', login_required(PartnersListView.as_view()), name='partners'),
     path('partners/change_status/', change_partners_status, name='partners/change_status'),
     path('partners/change_status/', change_partners_status, name='partners/change_status'),
@@ -39,7 +39,7 @@ urlpatterns = [
     path('service_type/add/', login_required(ServiceTypeCreate.as_view()), name='service_type/add/'),
     path('service_type/add/', login_required(ServiceTypeCreate.as_view()), name='service_type/add/'),
     path('service_type/delete/<int:pk>', login_required(ServiceTypeDelete.as_view()), name='service_type/delete/'),
     path('service_type/delete/<int:pk>', login_required(ServiceTypeDelete.as_view()), name='service_type/delete/'),
 
 
-    path('service_information/add/', login_required(ServiceInformationCreate.as_view()), name='service_information/add/'),
+    path('service_information/add/', login_required(ServiceInformationCreate.as_view()), name='service_information-add'),
     path('service_information/edit/<int:pk>', login_required(ServiceInformationUpdateView.as_view()), name='service_information/edit/'),
     path('service_information/edit/<int:pk>', login_required(ServiceInformationUpdateView.as_view()), name='service_information/edit/'),
     
     
     path('service/', ServiceListView.as_view(), name='service'),
     path('service/', ServiceListView.as_view(), name='service'),

+ 1 - 1
SharixAdmin/views/__init__.py

@@ -10,7 +10,7 @@ from .partners import *
 from .partner_info import *
 from .partner_info import *
 from .provider import *
 from .provider import *
 from .login import *
 from .login import *
-from .test import testPage
+from .payment import paymentView
 from .balance import balance
 from .balance import balance
 from .trans_id import trans_id
 from .trans_id import trans_id
 from .schema import schema_v3
 from .schema import schema_v3

+ 0 - 1
SharixAdmin/views/balance.py

@@ -1,6 +1,5 @@
 from django.shortcuts import render
 from django.shortcuts import render
 from django.contrib.auth.decorators import login_required
 from django.contrib.auth.decorators import login_required
-from SharixAdmin.views.context import get_context
 from django.utils.translation import gettext as _
 from django.utils.translation import gettext as _
 
 
 @login_required
 @login_required

+ 0 - 35
SharixAdmin/views/context.py

@@ -1,35 +0,0 @@
-from django.urls import resolve
-from django.utils.translation import gettext_lazy as _
-
-menu = [
-    {'title':_('Главная'),          'link':'home', 'sel':'house'},
-    {'title':_('Заявки'),              'link':'tickets', 'sel':'tikets'},
-    {'title':_('Партнеры'),                'link':'partners', 'sel':'people',
-     'roles':['METASERVICE-ADMIN']},
-    {'title':_('Управление правами'),'link':'user_information', 'sel':'hdd-network'},
-    {'title':_('Услуги сервиса'),          'link':'service_type', 'sel':'briefcase',
-     'roles':['METASERVICE-ADMIN']},
-    {'title':_('История заказов'),        'link':'trans','sel':'clock-history'},
-    {'title':_('Информация о сервисе'),    'link':'service_information/add/', 'sel':'person',
-     'roles':['METASERVICE-ADMIN']},
-    {'title':_('Оплата'),    'link':'test-page', 'sel':'credit-card'},
-
-]
-
-def get_context(request, page_context) -> dict:
-    # Получаем роли текущего пользователя
-    user_roles = set(group.name for group in request.user.groups.all())
-    is_superuser = request.user.is_superuser
-    menu_items = []
-    # Добавляем только те страницы к которым должен быть доступ
-    for item in menu:
-        if not item.get('roles') or is_superuser or set(item['roles']) & set(user_roles):  
-            menu_items.append(item)
-
-    base_context = {
-        "title":page_context['title'],
-        'url_path':resolve(request.path_info).url_name,
-        'menu':menu_items
-    }
-    context = dict(list(base_context.items()) + list(page_context.items()))
-    return context

+ 5 - 6
SharixAdmin/views/index.py

@@ -1,18 +1,17 @@
 from django.contrib.auth.decorators import login_required
 from django.contrib.auth.decorators import login_required
-from SharixAdmin.views.context import get_context
 from django.shortcuts import render
 from django.shortcuts import render
 from django.utils.translation import gettext as _
 from django.utils.translation import gettext as _
 
 
 
 
 @login_required
 @login_required
 def index(request):
 def index(request):
-
     ph_num = str(request.user.phone_number)
     ph_num = str(request.user.phone_number)
     convert_ph_num = f"+{ph_num[:1]} ({ph_num[1:4]}) {ph_num[4:7]}-{ph_num[7:9]}-{ph_num[9:11]}"
     convert_ph_num = f"+{ph_num[:1]} ({ph_num[1:4]}) {ph_num[4:7]}-{ph_num[7:9]}-{ph_num[9:11]}"
-    #print(convert_ph_num)
-    context = get_context(request, {
+
+    context = {
         'title':_('Home/Balance'),
         'title':_('Home/Balance'),
-        'phone':convert_ph_num
-    })
+        'phone':convert_ph_num,
+        'current_page': 'index'
+    }
     
     
     return render(request, 'SharixAdmin/main.html', context)
     return render(request, 'SharixAdmin/main.html', context)

+ 2 - 3
SharixAdmin/views/partner_info.py

@@ -4,7 +4,6 @@ from SharixAdmin.groups import group_required
 from dbsynce.models import Company
 from dbsynce.models import Company
 from django.contrib.auth.mixins import UserPassesTestMixin
 from django.contrib.auth.mixins import UserPassesTestMixin
 from django.views.generic.edit import UpdateView, CreateView
 from django.views.generic.edit import UpdateView, CreateView
-from SharixAdmin.views.context import get_context
 from django.urls import reverse
 from django.urls import reverse
 from django.utils.translation import gettext as _
 from django.utils.translation import gettext as _
 
 
@@ -44,10 +43,10 @@ class PartnerInformationCreate(UserPassesTestMixin, CreateView):
 
 
     def get_context_data(self, **kwargs):
     def get_context_data(self, **kwargs):
         context = super().get_context_data(**kwargs)
         context = super().get_context_data(**kwargs)
-        context.update(get_context(self.request, {
+        context.update({
             'title': _('Partner Information'),
             'title': _('Partner Information'),
             'object': self.object,
             'object': self.object,
-        }))
+        })
         return context
         return context
     
     
     def get_success_url(self):
     def get_success_url(self):

+ 4 - 3
SharixAdmin/views/partners.py

@@ -4,7 +4,6 @@ from SharixAdmin.groups import group_required
 from SharixAdmin.tables import PartnersTable
 from SharixAdmin.tables import PartnersTable
 from django.contrib.auth.decorators import login_required
 from django.contrib.auth.decorators import login_required
 from dbsynce.models import Company
 from dbsynce.models import Company
-from SharixAdmin.views.context import get_context
 from django.http import JsonResponse
 from django.http import JsonResponse
 from django.utils.translation import gettext as _
 from django.utils.translation import gettext as _
 
 
@@ -16,10 +15,11 @@ class PartnersListView(UserPassesTestMixin, SingleTableView):
 
 
     def get_context_data(self, **kwargs):
     def get_context_data(self, **kwargs):
         context = super().get_context_data(**kwargs)
         context = super().get_context_data(**kwargs)
-        context.update(get_context(self.request, {
+        context.update({
             'title': _('Partners'),
             'title': _('Partners'),
             'object_list': context['object_list'],
             'object_list': context['object_list'],
-        }))
+            'current_page': "partners"
+        })
         return context
         return context
     
     
     def test_func(self) -> bool or None:
     def test_func(self) -> bool or None:
@@ -28,6 +28,7 @@ class PartnersListView(UserPassesTestMixin, SingleTableView):
             return True
             return True
         return False
         return False
 
 
+
 @login_required
 @login_required
 @group_required('METASERVICE-ADMIN')
 @group_required('METASERVICE-ADMIN')
 def change_partners_status(request):
 def change_partners_status(request):

+ 9 - 0
SharixAdmin/views/payment.py

@@ -0,0 +1,9 @@
+from django.shortcuts import render
+from django.utils.translation import gettext as _
+
+def paymentView(request):
+    context = {
+        'title':_('Оплата'),
+        'current_page': 'payment'
+    }
+    return render(request, "SharixAdmin/test.html", context)

+ 2 - 3
SharixAdmin/views/provider.py

@@ -3,7 +3,6 @@ from SharixAdmin.groups import group_required
 from SharixAdmin.tables import ProviderTable
 from SharixAdmin.tables import ProviderTable
 from dbsynce.models import Provider
 from dbsynce.models import Provider
 from django.contrib.auth.decorators import login_required
 from django.contrib.auth.decorators import login_required
-from SharixAdmin.views.context import get_context
 from django.http import JsonResponse
 from django.http import JsonResponse
 from django.contrib.auth.mixins import UserPassesTestMixin
 from django.contrib.auth.mixins import UserPassesTestMixin
 from django.utils.translation import gettext as _
 from django.utils.translation import gettext as _
@@ -15,10 +14,10 @@ class ProviderListView(UserPassesTestMixin, SingleTableView):
 
 
     def get_context_data(self, **kwargs):
     def get_context_data(self, **kwargs):
         context = super().get_context_data(**kwargs)
         context = super().get_context_data(**kwargs)
-        context.update(get_context(self.request, {
+        context.update({
             'title': _('Performers'),
             'title': _('Performers'),
             'object_list': context['object_list'],
             'object_list': context['object_list'],
-        }))
+        })
         return context
         return context
     
     
     def test_func(self) -> bool or None:
     def test_func(self) -> bool or None:

+ 2 - 3
SharixAdmin/views/resource.py

@@ -4,7 +4,6 @@ from SharixAdmin.groups import group_required
 from SharixAdmin.tables import ResourceTable
 from SharixAdmin.tables import ResourceTable
 from django.contrib.auth.decorators import login_required
 from django.contrib.auth.decorators import login_required
 from dbsynce.models import Resource
 from dbsynce.models import Resource
-from SharixAdmin.views.context import get_context
 from django.http import JsonResponse
 from django.http import JsonResponse
 from django.utils.translation import gettext as _
 from django.utils.translation import gettext as _
 
 
@@ -15,10 +14,10 @@ class ResourceListView(UserPassesTestMixin, SingleTableView):
 
 
     def get_context_data(self, **kwargs):
     def get_context_data(self, **kwargs):
         context = super().get_context_data(**kwargs)
         context = super().get_context_data(**kwargs)
-        context.update(get_context(self.request, {
+        context.update({
             'title': _('Resources'),
             'title': _('Resources'),
             'object_list': context['object_list'],
             'object_list': context['object_list'],
-        }))
+        })
         return context
         return context
     
     
     def test_func(self) -> bool or None:
     def test_func(self) -> bool or None:

+ 3 - 4
SharixAdmin/views/service.py

@@ -3,7 +3,6 @@ from SharixAdmin.groups import group_required
 from SharixAdmin.tables import ServiceTable
 from SharixAdmin.tables import ServiceTable
 from dbsynce.models import Service
 from dbsynce.models import Service
 from django.contrib.auth.decorators import login_required
 from django.contrib.auth.decorators import login_required
-from SharixAdmin.views.context import get_context
 from django.contrib.auth.mixins import UserPassesTestMixin
 from django.contrib.auth.mixins import UserPassesTestMixin
 from django.utils.translation import gettext as _
 from django.utils.translation import gettext as _
 
 
@@ -14,10 +13,10 @@ class ServiceListView(UserPassesTestMixin, SingleTableView):
 
 
     def get_context_data(self, **kwargs):
     def get_context_data(self, **kwargs):
         context = super().get_context_data(**kwargs)
         context = super().get_context_data(**kwargs)
-        context.update(get_context(self.request, {
+        context.update({
             'title': _('Rates'),
             'title': _('Rates'),
-            'object_list': context['object_list'],
-        }))
+            'object_list': context['object_list']
+        })
         return context
         return context
     
     
     def test_func(self) -> bool or None:
     def test_func(self) -> bool or None:

+ 9 - 7
SharixAdmin/views/service_info.py

@@ -2,7 +2,6 @@ from SharixAdmin.forms import ServiceInformationCreateForm, ServiceInformationUp
 from django.contrib.auth.mixins import UserPassesTestMixin
 from django.contrib.auth.mixins import UserPassesTestMixin
 from django.views.generic.edit import CreateView, UpdateView
 from django.views.generic.edit import CreateView, UpdateView
 from dbsynce.models import Service
 from dbsynce.models import Service
-from SharixAdmin.views.context import get_context
 from django.urls import reverse
 from django.urls import reverse
 from django.utils.translation import gettext as _
 from django.utils.translation import gettext as _
 
 
@@ -16,6 +15,7 @@ from datetime import timezone
 import xmpp
 import xmpp
 from xmpp import cli
 from xmpp import cli
 
 
+
 class ServiceInformationCreate(UserPassesTestMixin, CreateView):
 class ServiceInformationCreate(UserPassesTestMixin, CreateView):
     model = Service
     model = Service
     form_class = ServiceInformationCreateForm
     form_class = ServiceInformationCreateForm
@@ -41,11 +41,11 @@ class ServiceInformationCreate(UserPassesTestMixin, CreateView):
 
 
     def get_context_data(self, **kwargs):
     def get_context_data(self, **kwargs):
         context = super().get_context_data(**kwargs)
         context = super().get_context_data(**kwargs)
-        context.update(get_context(self.request, {
+        context.update({
             'title': _('Information about the service'),
             'title': _('Information about the service'),
             'object': self.object,
             'object': self.object,
-            
-        }))
+            'current_page': 'service_info'
+        })
         return context
         return context
     
     
     def get_success_url(self):
     def get_success_url(self):
@@ -57,7 +57,8 @@ class ServiceInformationCreate(UserPassesTestMixin, CreateView):
         if bool(self.request.user.groups.filter(name=group_names)) or self.request.user.is_superuser:
         if bool(self.request.user.groups.filter(name=group_names)) or self.request.user.is_superuser:
             return True
             return True
         return False
         return False
-    
+
+
 class ServiceInformationUpdateView(UserPassesTestMixin, UpdateView):
 class ServiceInformationUpdateView(UserPassesTestMixin, UpdateView):
     model = Service
     model = Service
     form_class = ServiceInformationUpdateForm
     form_class = ServiceInformationUpdateForm
@@ -65,10 +66,11 @@ class ServiceInformationUpdateView(UserPassesTestMixin, UpdateView):
 
 
     def get_context_data(self, **kwargs):
     def get_context_data(self, **kwargs):
         context = super().get_context_data(**kwargs)
         context = super().get_context_data(**kwargs)
-        context.update(get_context(self.request, {
+        context.update({
             'title': 'Information about the service',
             'title': 'Information about the service',
             'object': self.object,
             'object': self.object,
-        }))
+            'current_page': 'service_info'
+        })
         return context
         return context
     
     
     def get_success_url(self):
     def get_success_url(self):

+ 2 - 3
SharixAdmin/views/service_tariff.py

@@ -5,7 +5,6 @@ from SharixAdmin.tables import ServiceTariffTable
 from SharixAdmin.forms import ServiceTariffCreateForm, ServiceTariffUpdateForm
 from SharixAdmin.forms import ServiceTariffCreateForm, ServiceTariffUpdateForm
 from dbsynce.models import Service
 from dbsynce.models import Service
 from django.urls import reverse
 from django.urls import reverse
-from SharixAdmin.views.context import get_context
 from django.utils.translation import gettext as _
 from django.utils.translation import gettext as _
 
 
 class ServiceTariffCreate(UserPassesTestMixin, CreateView):
 class ServiceTariffCreate(UserPassesTestMixin, CreateView):
@@ -15,10 +14,10 @@ class ServiceTariffCreate(UserPassesTestMixin, CreateView):
 
 
     def get_context_data(self, **kwargs):
     def get_context_data(self, **kwargs):
         context = super().get_context_data(**kwargs)
         context = super().get_context_data(**kwargs)
-        context.update(get_context(self.request, {
+        context.update({
             'title': _('Service rates'),
             'title': _('Service rates'),
             'object': self.object,
             'object': self.object,
-        }))
+        })
         return context
         return context
     
     
     def get_success_url(self):
     def get_success_url(self):

+ 12 - 9
SharixAdmin/views/service_type.py

@@ -5,7 +5,6 @@ from django.contrib.auth.mixins import UserPassesTestMixin
 from SharixAdmin.forms import ServiceTypeCreateForm, ServiceTypeUpdateForm
 from SharixAdmin.forms import ServiceTypeCreateForm, ServiceTypeUpdateForm
 from dbsynce.models import ServiceType
 from dbsynce.models import ServiceType
 from django.urls import reverse
 from django.urls import reverse
-from SharixAdmin.views.context import get_context
 from django.utils.translation import gettext as _
 from django.utils.translation import gettext as _
 
 
     
     
@@ -17,10 +16,11 @@ class ServiceTypeCreate(UserPassesTestMixin, CreateView):
 
 
     def get_context_data(self, **kwargs):
     def get_context_data(self, **kwargs):
         context = super().get_context_data(**kwargs)
         context = super().get_context_data(**kwargs)
-        context.update(get_context(self.request, {
+        context.update({
             'title': _('Услуги сервиса'),
             'title': _('Услуги сервиса'),
             'object': self.object,
             'object': self.object,
-        }))
+            "current_page": "service_type"
+        })
         return context
         return context
     
     
     def get_success_url(self):
     def get_success_url(self):
@@ -44,10 +44,11 @@ class ServiceTypeListView(UserPassesTestMixin, SingleTableView):
 
 
     def get_context_data(self, **kwargs):
     def get_context_data(self, **kwargs):
         context = super().get_context_data(**kwargs)
         context = super().get_context_data(**kwargs)
-        context.update(get_context(self.request, {
+        context.update({
             'title': 'Услуги сервиса',
             'title': 'Услуги сервиса',
             'object_list': context['object_list'],
             'object_list': context['object_list'],
-        }))
+            "current_page": "service_type"
+        })
         return context
         return context
     
     
     def testing(self, queryset, is_descending):
     def testing(self, queryset, is_descending):
@@ -67,10 +68,11 @@ class ServiceTypeUpdateView(UserPassesTestMixin, UpdateView):
 
 
     def get_context_data(self, **kwargs):
     def get_context_data(self, **kwargs):
         context = super().get_context_data(**kwargs)
         context = super().get_context_data(**kwargs)
-        context.update(get_context(self.request, {
+        context.update({
             'title': _('Услуги сервиса'),
             'title': _('Услуги сервиса'),
             'object': self.object,
             'object': self.object,
-        }))
+            "current_page": "service_type"
+        })
         return context
         return context
     
     
     
     
@@ -90,10 +92,11 @@ class ServiceTypeDelete(UserPassesTestMixin, DeleteView):
 
 
     def get_context_data(self, **kwargs):
     def get_context_data(self, **kwargs):
         context = super().get_context_data(**kwargs)
         context = super().get_context_data(**kwargs)
-        context.update(get_context(self.request, {
+        context.update({
             'title': 'Услуги сервиса',
             'title': 'Услуги сервиса',
             'object': self.object,
             'object': self.object,
-        }))
+            "current_page": "service_type"
+        })
         return context
         return context
     
     
     def get_success_url(self):
     def get_success_url(self):

+ 0 - 9
SharixAdmin/views/test.py

@@ -1,9 +0,0 @@
-from SharixAdmin.views.context import get_context
-from django.shortcuts import render
-from django.utils.translation import gettext as _
-
-def testPage(request):
-    context = get_context(request, {
-        'title':_('Оплата')
-        })
-    return render(request, "SharixAdmin/test.html", context)

+ 3 - 3
SharixAdmin/views/trans_id.py

@@ -1,11 +1,11 @@
 from django.shortcuts import render
 from django.shortcuts import render
-from SharixAdmin.views.context import get_context
 from django.contrib.auth.decorators import login_required
 from django.contrib.auth.decorators import login_required
 from django.utils.translation import gettext as _
 from django.utils.translation import gettext as _
 
 
+
 @login_required
 @login_required
 def trans_id(request, trans_id):
 def trans_id(request, trans_id):
-    context = get_context(request, {
+    context = {
         'title':_('Service')
         'title':_('Service')
-        })
+    }
     return render(request, 'SharixAdmin/trans_carried.html', context)
     return render(request, 'SharixAdmin/trans_carried.html', context)

+ 3 - 3
SharixAdmin/views/transactions.py

@@ -1,13 +1,13 @@
 from django.contrib.auth.decorators import login_required
 from django.contrib.auth.decorators import login_required
-from SharixAdmin.views.context import get_context
 from django.shortcuts import render
 from django.shortcuts import render
 from django.utils.translation import gettext as _
 from django.utils.translation import gettext as _
 
 
 @login_required
 @login_required
 def transactions(request):
 def transactions(request):
     
     
-    context = get_context(request, {
+    context = {
         'title':_('Payment history'),
         'title':_('Payment history'),
-        })
+        'current_page': 'transactions'
+    }
         
         
     return render(request, 'SharixAdmin/transactions.html', context)
     return render(request, 'SharixAdmin/transactions.html', context)

+ 3 - 3
SharixAdmin/views/user_info.py

@@ -2,11 +2,11 @@ from django.contrib.auth import get_user_model
 
 
 from django_tables2 import SingleTableView
 from django_tables2 import SingleTableView
 from SharixAdmin.tables import UserInfoTable
 from SharixAdmin.tables import UserInfoTable
-from SharixAdmin.views.context import get_context
 from django.contrib.auth.mixins import UserPassesTestMixin
 from django.contrib.auth.mixins import UserPassesTestMixin
 from django.contrib.auth.models import Group
 from django.contrib.auth.models import Group
 from django.utils.translation import gettext as _
 from django.utils.translation import gettext as _
 
 
+
 class UserListView(UserPassesTestMixin, SingleTableView):
 class UserListView(UserPassesTestMixin, SingleTableView):
     table_class = UserInfoTable
     table_class = UserInfoTable
     queryset = get_user_model().objects.all()
     queryset = get_user_model().objects.all()
@@ -14,11 +14,11 @@ class UserListView(UserPassesTestMixin, SingleTableView):
 
 
     def get_context_data(self, **kwargs):
     def get_context_data(self, **kwargs):
         context = super().get_context_data(**kwargs)
         context = super().get_context_data(**kwargs)
-        context.update(get_context(self.request, {
+        context.update({
             'title': _('User Management'),
             'title': _('User Management'),
             'object_list': context['object_list'],
             'object_list': context['object_list'],
             'groups': Group.objects.all()
             'groups': Group.objects.all()
-        }))
+        })
         return context
         return context
     
     
     def test_func(self) -> bool or None:
     def test_func(self) -> bool or None: