Browse Source

made changes in hole project

kateshev14 10 months ago
parent
commit
79144ffb75

+ 4 - 3
SharixAdmin/admin.py

@@ -54,7 +54,8 @@ class ShariXUserAdmin(adm.UserAdmin):
         'username',
         'phone_number',
         'first_name',
-        'last_name'
+        'last_name',
+        'avatar'
     )
     list_filter = (
         'last_login',
@@ -65,14 +66,14 @@ class ShariXUserAdmin(adm.UserAdmin):
     )
     fieldsets = (
         ("Главное", {'fields': ('phone_number', 'password')}),
-        ('Персональные данные', {'fields': ('username', 'email', 'first_name','last_name')}),
+        ('Персональные данные', {'fields': ('username', 'email', 'first_name','last_name', 'avatar')}),
         ('Разрешения', {'fields': ('is_staff', 'is_active', 'is_superuser',)}),
         ('Прочие разрешения', {'fields': ('groups', 'user_permissions'), 'classes': ['collapse']}),
         ('Прочее', {'fields': ('last_login', 'date_joined',)}),
     )
     add_fieldsets = (
         ("Главное", {'fields': ('phone_number', 'password1', 'password2')}),
-        ('Персональные данные', {'fields': ('username', 'email', 'first_name','last_name')}),
+        ('Персональные данные', {'fields': ('username', 'email', 'first_name','last_name', 'avatar')}),
         ('Разрешения', {'fields': ('is_staff', 'is_active', 'is_superuser',)}),
         ('Прочие разрешения', {'fields': ('groups', 'user_permissions'), 'classes': ['collapse']}),
         ('Прочее', {'fields': ('last_login', 'date_joined',)}),

+ 4 - 0
SharixAdmin/static/SharixAdmin/img/menu/map-pin.svg

@@ -0,0 +1,4 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M20 10C20 16 12 22 12 22C12 22 4 16 4 10C4 7.87827 4.84285 5.84344 6.34315 4.34315C7.84344 2.84285 9.87827 2 12 2C14.1217 2 16.1566 2.84285 17.6569 4.34315C19.1571 5.84344 20 7.87827 20 10Z" stroke="#275A27" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M12 13C13.6569 13 15 11.6569 15 10C15 8.34315 13.6569 7 12 7C10.3431 7 9 8.34315 9 10C9 11.6569 10.3431 13 12 13Z" stroke="#275A27" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
+</svg>

+ 3 - 0
SharixAdmin/static/SharixAdmin/img/menu/map-pin.svg:Zone.Identifier

@@ -0,0 +1,3 @@
+[ZoneTransfer]
+ZoneId=3
+HostUrl=https://www.figma.com/

+ 4 - 0
SharixAdmin/static/SharixAdmin/img/menu/map-pin_w.svg

@@ -0,0 +1,4 @@
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M20 10C20 16 12 22 12 22C12 22 4 16 4 10C4 7.87827 4.84285 5.84344 6.34315 4.34315C7.84344 2.84285 9.87827 2 12 2C14.1217 2 16.1566 2.84285 17.6569 4.34315C19.1571 5.84344 20 7.87827 20 10Z" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
+<path d="M12 13C13.6569 13 15 11.6569 15 10C15 8.34315 13.6569 7 12 7C10.3431 7 9 8.34315 9 10C9 11.6569 10.3431 13 12 13Z" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
+</svg>

+ 3 - 0
SharixAdmin/static/SharixAdmin/img/menu/map-pin_w.svg:Zone.Identifier

@@ -0,0 +1,3 @@
+[ZoneTransfer]
+ZoneId=3
+HostUrl=https://www.figma.com/

+ 3 - 3
SharixAdmin/static/drf-yasg/service_type/pencil.svg

@@ -1,3 +1,3 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="25" height="24" viewBox="0 0 25 24" fill="none">
-  <path d="M22.5 7.24002C22.5008 7.10841 22.4756 6.97795 22.4258 6.85611C22.376 6.73427 22.3027 6.62346 22.21 6.53002L17.97 2.29002C17.8766 2.19734 17.7658 2.12401 17.6439 2.07425C17.5221 2.02448 17.3916 1.99926 17.26 2.00002C17.1284 1.99926 16.9979 2.02448 16.8761 2.07425C16.7543 2.12401 16.6435 2.19734 16.55 2.29002L13.72 5.12002L2.79002 16.05C2.69734 16.1435 2.62401 16.2543 2.57425 16.3761C2.52448 16.4979 2.49926 16.6284 2.50002 16.76V21C2.50002 21.2652 2.60537 21.5196 2.79291 21.7071C2.98045 21.8947 3.2348 22 3.50002 22H7.74002C7.87994 22.0076 8.01991 21.9857 8.15084 21.9358C8.28176 21.8858 8.40073 21.8089 8.50002 21.71L19.37 10.78L22.21 8.00002C22.3013 7.9031 22.3757 7.79155 22.43 7.67002C22.4397 7.59031 22.4397 7.50973 22.43 7.43002C22.4347 7.38347 22.4347 7.33657 22.43 7.29002L22.5 7.24002ZM7.33002 20H4.50002V17.17L14.43 7.24002L17.26 10.07L7.33002 20ZM18.67 8.66002L15.84 5.83002L17.26 4.42002L20.08 7.24002L18.67 8.66002Z" fill="#479FF8"/>
-</svg>
+<svg width="25" height="24" viewBox="0 0 25 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M22.5 7.23962C22.5007 7.10803 22.4755 6.97758 22.4258 6.85575C22.376 6.73392 22.3027 6.62311 22.21 6.52968L17.97 2.29C17.8765 2.19732 17.7657 2.124 17.6439 2.07424C17.5221 2.02448 17.3916 1.99926 17.26 2.00002C17.1284 1.99926 16.9979 2.02448 16.8761 2.07424C16.7542 2.124 16.6434 2.19732 16.55 2.29L13.72 5.11978L2.79002 16.049C2.69733 16.1424 2.62401 16.2532 2.57425 16.375C2.52448 16.4969 2.49926 16.6273 2.50002 16.7589V20.9986C2.50002 21.2638 2.60537 21.5181 2.79291 21.7057C2.98045 21.8932 3.2348 21.9985 3.50001 21.9985H7.74001C7.87993 22.0061 8.0199 21.9843 8.15083 21.9343C8.28175 21.8843 8.40072 21.8074 8.50001 21.7085L19.37 10.7794L22.21 7.99957C22.3013 7.90266 22.3756 7.79112 22.43 7.66959C22.4396 7.58989 22.4396 7.50932 22.43 7.42961C22.4347 7.38307 22.4347 7.33617 22.43 7.28962L22.5 7.23962ZM7.33001 19.9987H4.50001V17.1689L14.43 7.23962L17.26 10.0694L7.33001 19.9987ZM18.67 8.65952L15.84 5.82973L17.26 4.41984L20.08 7.23962L18.67 8.65952Z" fill="#275A27"/>
+</svg>

+ 27 - 12
SharixAdmin/tables.py

@@ -165,7 +165,7 @@ class ServiceTypeTable(tables.Table):
 class CommentsTable(tables.Table):
 
     id = tables.Column( attrs={"td":{"width":"50px"}})
-    codename = tables.LinkColumn('service_type/edit/', verbose_name='Услуга', orderable=False, text = lambda record: record.codename,
+    name_comment = tables.LinkColumn('service_type/edit/', verbose_name='Комментарий', orderable=False, text = lambda record: record.codename,
         args=[tables.A('pk')], attrs= {"a": {"style": "pointer-events: none;"}, 'th':{'scope':'col'}, "td":{"class":"name_col"}})
     description = tables.LinkColumn('service_type/edit/', orderable=False, verbose_name='Описание', text = lambda record: record.description,
         args=[tables.A('pk')], attrs= {"a": {"style": "pointer-events: none;"}, 'th':{'scope':'col'}, "td":{"class":"description_col"}})
@@ -176,16 +176,14 @@ class CommentsTable(tables.Table):
     
     
     class Meta:
-        model = ServiceType
+        model = Comments
         attrs = {"class": "table table-layout-fixed text-start"}
-        exclude = ('requirements',
-                   'price_type','status','ticket_status', 
-                   'id_metaservice', 'link_agreement',
-                   'is_global', 'is_visible', 'caption')
+        exclude = ('ticket_status',
+                   'is_global', 'is_visible')
 
 class ServiceTable(tables.Table):
 
-    id = tables.Column(verbose_name=_('ID'), attrs={"td":{"width":"5%"}})
+    id = tables.Column(attrs={"td":{"width":"5%"}})
     servicetype_id = tables.Column(verbose_name=_('Description of the service'), accessor = 'servicetype_id.caption',
         attrs={'th':{'scope':'col'}, "td":{"width":"20%"}})
     
@@ -196,13 +194,18 @@ class ServiceTable(tables.Table):
     price_km = tables.Column(verbose_name=_('Cost km.'), attrs={'th':{'scope':'col'}, "td":{"width":"20%"}})
     price_min = tables.Column(verbose_name=_('Cost min.'), attrs={'th':{'scope':'col'}, "td":{"width":"20%"}})
     price_amount = tables.Column(verbose_name=_('Cost of service'), attrs={'th':{'scope':'col'}, "td":{"width":"20%"}})
+    
+    id_provider = tables.Column(verbose_name=_('Организатор'))
+    name_service = tables.Column(verbose_name=_('Экскурсия'))
+    rating = tables.Column(verbose_name=_('Рейтинг'))
+    price = tables.Column(verbose_name=_('Цена'))
 
     class Meta:
         model = Service
         attrs = {"class": "table table-layout-fixed"}
-        exclude = ('resource_id', 'requirements', 'id_provider',
-                   'id_metaservice', 'price_alg', 'service_status', 'ticket_status',
-                    'is_global', 'is_visible')
+        exclude = ('resource_id','servicetype_id', 'requirements',
+                   'id_metaservice', 'price_alg','price_km', 'price_min', 'price_amount', 'service_status', 'ticket_status',
+                    'is_global', 'is_visible', 'place_start', 'place_end', 'movement_way', 'discription', 'status')
 
     def render_check(self, value, record):
         if record.status == 'active':
@@ -214,9 +217,21 @@ class UserInfoTable(tables.Table):
 
     id = tables.Column(verbose_name=_('ID'), attrs={"td":{"width":"5%"}})
 
+    deletee = tables.LinkColumn('user_information/delete/', verbose_name='', orderable=False, text = "D",
+        args=[tables.A('pk')], attrs={'th':{'scope':'col'}, "td":{"class":"delete_col"}})
+    
     class Meta:
         model = get_user_model()
         attrs = {"class": "table table-layout-fixed"}
-        exclude = ('password', 'phone_number', 
+        exclude = ('password', 'phone_number', "avatar",
                    'last_login','is_staff', 'is_superuser',
-                   'date_joined')
+                   'date_joined')
+        
+class PaymentTable(tables.Table):
+
+    class Meta:
+        model = Payment
+        attrs = {"class": "table table-layout-fixed"}
+        exclude = ('legal_name', 'repr_id', 
+                   'requirements','status', 'ticket_status',
+                   'bank_name', 'is_global', 'is_visible', 'id_metaservice')

+ 3 - 1
SharixAdmin/templates/SharixAdmin/account.html

@@ -24,7 +24,9 @@
                   {% blocktrans trimmed with request.user.id as id %}
                   <td class="p-3">{{ id }}</td>                  
                   {% endblocktrans %}
-                  <td class="p-3"><img class="mb-4" style="height: 45px;" src="{% static 'SharixAdmin/img/logo.png' %}" alt="" ></td>
+                  {% blocktrans trimmed with request.user.avatar as ava %}
+                  <td class="p-3"><img class="mb-4" style="height: 45px;" src="% {{ava}}" alt="" ></td>
+                  {% endblocktrans %}                  
                   {% blocktrans trimmed with request.user.username as user %}
                   <td class="p-3">{{ user }}</td>                  
                   {% endblocktrans %}

+ 17 - 2
SharixAdmin/templates/SharixAdmin/index.html

@@ -44,6 +44,21 @@
           </div>
         </a>
       </li>
+      <li class="nav-item">
+        <a href="{% url 'service' %}" class="nav-link {% if current_page == "service" %}active rounded{% endif %}">
+          <div class="link d-flex align-items-center">
+            <img
+              class="nav-img"
+              src="
+                {% if current_page == "service" %}
+                  {% static 'SharixAdmin/img/menu/map-pin_w.svg' %}
+                {% else %}
+                  {% static 'SharixAdmin/img/menu/map-pin.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">
@@ -123,12 +138,12 @@
       </li>
       {% else %}  
       <li class="nav-item">
-        <a href="{% url 'webservice_running:order_reg' %}" class="nav-link {% if current_page == "order_reg" %}active rounded{% endif %}">
+        <a href="{% url 'webservice_running:order_list' %}" class="nav-link {% if current_page == "order_list" %}active rounded{% endif %}">
           <div class="link d-flex align-items-center">
             <img
               class="nav-img"
               src="
-                {% if current_page == "order_reg" %}
+                {% if current_page == "order_list" %}
                   {% static 'SharixAdmin/img/menu/order_w.svg' %}
                 {% else %}
                   {% static 'SharixAdmin/img/menu/order.svg' %}

+ 2 - 2
SharixAdmin/templates/SharixAdmin/main.html

@@ -3,8 +3,8 @@
 
 {% block contenthome %}
 <h1 class="mainHeader">{{ title }}</h1>
-<p class="description_service">Это система управления государством, источником власти в которой является сам народ. Именно народ решает, какие законы и нормы необходимы для гармоничного существования и развития государства. Таким образом, каждый человек в демократическом обществе 
-    Получает определенный набор свобод и обязательств сформированных с учетом интересов всего сообщества. Исходя из вышесказанного, можно заключить, что демократия – это возможность для каждого человека свободно участвовать в непосредственном управлении своим государством, обществом и личной судьбой в конечном счете.</p>    
+<p class="description_service">Это удобное и информативное пространство, где пользователи могут быстро ознакомиться с основной документацией сервиса ShariX Guide. 
+    <br>Также здесь представлена краткая информация про пользователя, его дату регистрации, а также баланс баллов. При необходимости можно приобрести баллы.</br></p>    
 <div class="container" style="padding: 2px;">
     <div class="row fs-6">
         

+ 3 - 2
SharixAdmin/templates/SharixAdmin/partners.html

@@ -4,8 +4,9 @@
 {% block contenthome %}
 <div class="container">
     <h1 class="mainHeader">{{ title }}</h1>
-    <p class="description_service">Это система управления государством, источником власти в которой является сам народ. Именно народ решает, какие законы и нормы необходимы для гармоничного существования и развития государства. Таким образом, каждый человек в демократическом обществе 
-      Получает определенный набор свобод и обязательств сформированных с учетом интересов всего сообщества. Исходя из вышесказанного, можно заключить, что демократия – это возможность для каждого человека свободно участвовать в непосредственном управлении своим государством, обществом и личной судьбой в конечном счете.</p>
+    <p class="description_service">Управление партнерскими отношениями. 
+      Администраторы могут просматривать информацию о текущих партнерах, добавлять новых партнеров, управлять условиями сотрудничества и менять статус партнера. 
+      Кроме того, здесь имеется сортировка, позволяющая администратору легко настроить поиск в соответствии с предпочтениями. </p>
 
     <div class="container text-center mt-2">
       {% render_table table %}

+ 1 - 2
SharixAdmin/templates/SharixAdmin/payment_form.html

@@ -4,8 +4,7 @@
 {% block contenthome %}
 <div class="container">
     <h1 class="mainHeader">{{ title }}</h1>
-    <p class="description_service">Это система управления государством, источником власти в которой является сам народ. Именно народ решает, какие законы и нормы необходимы для гармоничного существования и развития государства. Таким образом, каждый человек в демократическом обществе 
-  Получает определенный набор свобод и обязательств сформированных с учетом интересов всего сообщества. Исходя из вышесказанного, можно заключить, что демократия – это возможность для каждого человека свободно участвовать в непосредственном управлении своим государством, обществом и личной судьбой в конечном счете.</p>
+    <p class="description_service"> Управление данными реквизитов компании. Администраторы могут просматривать и вносить правки в реквизиты компании. </p>
 
 <div class="row justify-content-start">
     <div class="maintable" id="maintable">

+ 1 - 1
SharixAdmin/templates/SharixAdmin/payment_way.html

@@ -17,7 +17,7 @@
                   <td scope="col" class="p-3"><b>CVV</b></td>
                 </tr>
                 <tr>
-                  <td class="p-3">Нет зарегестрированных банковских карт</td>
+                  <td class="p-3">Нет зарегистрированных банковских карт</td>
                   <td class="p-3"></td>
                   <td class="p-3"></td>
                 </tr>

+ 4 - 3
SharixAdmin/templates/SharixAdmin/service.html

@@ -3,9 +3,10 @@
 
 
 {% block contenthome %}
-    <p class="h1">{{ title }}</p>
-    <p class="description_service">Это система управления государством, источником власти в которой является сам народ. Именно народ решает, какие законы и нормы необходимы для гармоничного существования и развития государства. Таким образом, каждый человек в демократическом обществе 
-      Получает определенный набор свобод и обязательств сформированных с учетом интересов всего сообщества. Исходя из вышесказанного, можно заключить, что демократия – это возможность для каждого человека свободно участвовать в непосредственном управлении своим государством, обществом и личной судьбой в конечном счете.</p>
+    <h1 class="mainHeader">{{ title }}</h1>
+    <p class="description_service">Просмотр и создание новых экскурсий. Здесь админ может просматривать и добавлять экскурсии с различными данными: 
+      организатор экскурсии, название экскурсии, рейтинг, цена и активация/деактивация экскурсии. Кроме того, здесь имеется сортировка, 
+      позволяющая администратору легко настроить поиск в соответствии с предпочтениями.</p>
     <div class="container text-center mt-2">
       {% render_table table %}
     </div>

+ 3 - 2
SharixAdmin/templates/SharixAdmin/service_information_form.html

@@ -4,8 +4,9 @@
 {% block contenthome %}
 <div class="container">
 <h1 class="mainHeader">{{ title }}</h1>
-<p class="description_service">Это система управления государством, источником власти в которой является сам народ. Именно народ решает, какие законы и нормы необходимы для гармоничного существования и развития государства. Таким образом, каждый человек в демократическом обществе 
-    Получает определенный набор свобод и обязательств сформированных с учетом интересов всего сообщества. Исходя из вышесказанного, можно заключить, что демократия – это возможность для каждого человека свободно участвовать в непосредственном управлении своим государством, обществом и личной судьбой в конечном счете.</p>
+<p class="description_service"> Полный обзор всей доступной информации о сервисе и документов. 
+Администраторы могут просматривать и редактировать информацию о сервисе с разными данными: название, юр.лицо, представитель и описание сервиса.
+А также можно просматривать документы. </p>
 {{object.servicetype_id.caption}}
 {{object.id_provider.company_id.address}}
 {{object.id_provider.company_id.repr_id}}

+ 2 - 2
SharixAdmin/templates/SharixAdmin/service_type.html

@@ -15,8 +15,8 @@
 </style>
 
 <h1 class="mainHeader">{{ title }}</h1>
-<p class="description_service">Это система управления государством, источником власти в которой является сам народ. Именно народ решает, какие законы и нормы необходимы для гармоничного существования и развития государства. Таким образом, каждый человек в демократическом обществе 
-        Получает определенный набор свобод и обязательств сформированных с учетом интересов всего сообщества. Исходя из вышесказанного, можно заключить, что демократия – это возможность для каждого человека свободно участвовать в непосредственном управлении своим государством, обществом и личной судьбой в конечном счете.</p>
+<p class="description_service">Управление набором предоставляемых услуг. Здесь админы могут создавать, редактировать и удалять описания услуг. 
+  Кроме того, здесь имеется сортировка, позволяющая администратору легко настроить поиск в соответствии с предпочтениями.</p>
       <div class="row justify-content-start">
           <div class="maintable" id="maintable">
             {% render_table table %}

+ 4 - 5
SharixAdmin/templates/SharixAdmin/test.html

@@ -4,8 +4,7 @@
 {% block contenthome %}
 <div class="container">
     <h1 class="mainHeader">{{ title }}</h1>
-    <p class="description_service">Это система управления государством, источником власти в которой является сам народ. Именно народ решает, какие законы и нормы необходимы для гармоничного существования и развития государства. Таким образом, каждый человек в демократическом обществе 
-  Получает определенный набор свобод и обязательств сформированных с учетом интересов всего сообщества. Исходя из вышесказанного, можно заключить, что демократия – это возможность для каждого человека свободно участвовать в непосредственном управлении своим государством, обществом и личной судьбой в конечном счете.</p>
+    <p class="description_service">Управление данными реквизитов компании. Администраторы могут просматривать и вносить правки в реквизиты компании.</p>
 
 <div class="row justify-content-start">
     <div class="maintable" id="maintable">
@@ -29,7 +28,7 @@
                 </tr>
                 <tr>
                   <td class="p-3">ИНН</td>
-                  <td class="p-3">744811430253</tыd>
+                  <td class="p-3">744811430253</td>
                 </tr>
                 <tr>
                   <td class="p-3">ОГРН/ОГРНИП</td>
@@ -52,8 +51,8 @@
     </div>
 </div>
     
-<div class="text-end mt-3">
+<!--<div class="text-end mt-3">
     <a class="btn btn-primary ps-3 pe-3" id="bord" href="/payment_form">Редактировать</a>
-</div>
+</div>-->
 </div>    
 {% endblock contenthome %}

+ 4 - 2
SharixAdmin/templates/SharixAdmin/transactions.html

@@ -5,8 +5,10 @@
 {% block contenthome %}
 <div class="container">
     <h1 class="mainHeader">{{ title }}</h1>
-    <p class="description_service">Это система управления государством, источником власти в которой является сам народ. Именно народ решает, какие законы и нормы необходимы для гармоничного существования и развития государства. Таким образом, каждый человек в демократическом обществе 
-      Получает определенный набор свобод и обязательств сформированных с учетом интересов всего сообщества. Исходя из вышесказанного, можно заключить, что демократия – это возможность для каждого человека свободно участвовать в непосредственном управлении своим государством, обществом и личной судьбой в конечном счете.</p>
+    <p class="description_service">Полная информация о всех заказах пользователей. 
+      Админы могут просматривать детали каждого заказа, включая выбранные услуги, стоимость, дату и время заказа. 
+      Также на этой странице доступна информация о статусе выполнения каждого заказа и ответственных сотрудниках. 
+      Кроме того, здесь имеется сортировка, позволяющая администратору легко настроить поиск в соответствии с предпочтениями.</p>
     <h3 >{% trans 'User: ' %}{{ request.user.username }}</h3>
     <h3 >{% blocktrans %}Balance: {{ wallet.balance }} points{% endblocktrans %}</h3>
     <form class="d-flex" method="post">

+ 4 - 2
SharixAdmin/templates/SharixAdmin/user_information.html

@@ -15,8 +15,10 @@
 </style>
 
 <h1 class="mainHeader">{{ title }}</h1>
-<p class="description_service">Это система управления государством, источником власти в которой является сам народ. Именно народ решает, какие законы и нормы необходимы для гармоничного существования и развития государства. Таким образом, каждый человек в демократическом обществе 
-        Получает определенный набор свобод и обязательств сформированных с учетом интересов всего сообщества. Исходя из вышесказанного, можно заключить, что демократия – это возможность для каждого человека свободно участвовать в непосредственном управлении своим государством, обществом и личной судьбой в конечном счете.</p>
+<p class="description_service">Настройка доступа и разрешений для пользователей в системе. 
+  Администраторы могут назначать роли с различными уровнями доступа, определять права пользователей на просмотр, редактирование и удаление информации. 
+  Также можно добавлять самих пользователей с определенными привилегиями и управлять их членством. При регистрации пользователи появляются здесь. 
+  Кроме того, здесь имеется сортировка, позволяющая администратору легко настроить поиск в соответствии с предпочтениями.</p>
       <div class="row justify-content-start">
           <div class="maintable" id="maintable">
             {% render_table table %}

+ 15 - 0
SharixAdmin/templates/SharixAdmin/user_information_delete.html

@@ -0,0 +1,15 @@
+{% extends 'SharixAdmin/index.html' %}
+{% load i18n %}
+
+{% block contenthome %}
+<h1 class="mainHeader">{{ title }}</h1>
+<form method="post">
+    {% csrf_token %}
+    <div class="container m-2">
+        <p>{% blocktrans %}Are you sure you want to delete \"%(object.caption)s\"?{% endblocktrans %}</p>
+    </div>
+    <div class="text-center mt-2 mb-5">
+        <input class="btn btn-primary center" type="submit" name="apply" value="{% trans 'Delete' %}"/>
+    </div>
+</form>
+{% endblock %}

+ 1 - 0
SharixAdmin/urls.py

@@ -62,6 +62,7 @@ urlpatterns = [
     path('partner_information/edit/<int:pk>', login_required(PartnerInformationUpdateView.as_view()), name='partner_information/edit/'),
 
     path('user_information', login_required(UserListView.as_view()), name='user_information'),
+    path('user_information/delete/<int:pk>', login_required(UserDelete.as_view()), name='user_information/delete/'),    
 
     path('api/v1/auth/', include('djoser.urls.authtoken'), name="api-auth"),
     path('api/v1/platform/', include(router.urls), name="api-platform"),

+ 1 - 1
SharixAdmin/views/__init__.py

@@ -15,7 +15,7 @@ from .payment import paymentView
 from .balance import balance
 from .trans_id import trans_id
 from .schema import schema_v3
-from .user_info import UserListView
+from .user_info import *
 from .task_management import *
 from .comments import *
 from .tech_support  import *

+ 6 - 4
SharixAdmin/views/service.py

@@ -5,7 +5,6 @@ from dbsynce.models import Service
 from django.contrib.auth.decorators import login_required
 from django.contrib.auth.mixins import UserPassesTestMixin
 from django.utils.translation import gettext as _
-
 class ServiceListView(UserPassesTestMixin, SingleTableView):
     table_class = ServiceTable
     queryset = Service.objects.all()
@@ -14,17 +13,20 @@ class ServiceListView(UserPassesTestMixin, SingleTableView):
     def get_context_data(self, **kwargs):
         context = super().get_context_data(**kwargs)
         context.update({
-            'title': _('Rates'),
-            'object_list': context['object_list']
+            'title': 'Экскурсии',
+            'object_list': context['object_list'],
+            "current_page": "service"
         })
         return context
+
     
     def test_func(self) -> bool or None:
         group_names = ('PROVIDER')
-        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:
             return True
         return False
 
+
 @login_required
 @group_required('PROVIDER')
 def change_service_status(request):

+ 1 - 1
SharixAdmin/views/service_info.py

@@ -13,7 +13,7 @@ import requests
 from django.urls import reverse_lazy
 from datetime import timezone
 import xmpp
-from xmpp import cli
+
 
 
 class ServiceInformationCreate(UserPassesTestMixin, CreateView):

+ 29 - 2
SharixAdmin/views/user_info.py

@@ -1,9 +1,10 @@
 from django.contrib.auth import get_user_model
-
+from django.views.generic.edit import DeleteView
 from django_tables2 import SingleTableView
 from SharixAdmin.tables import UserInfoTable
 from django.contrib.auth.mixins import UserPassesTestMixin
 from django.contrib.auth.models import Group
+from django.urls import reverse
 from django.utils.translation import gettext as _
 
 
@@ -22,8 +23,34 @@ class UserListView(UserPassesTestMixin, SingleTableView):
         })
         return context
     
+    def testing(self, queryset, is_descending):
+        queryset = queryset.annotate.order_by("-" if is_descending else "")
+        return (queryset, True)
+
+    def test_func(self) -> bool or None:
+        group_names = ('METASERVICE-ADMIN')
+        if bool(self.request.user.groups.filter(name=group_names)) or self.request.user.is_superuser:
+            return True
+        return False
+
+class UserDelete(UserPassesTestMixin, DeleteView):
+    model = UserInfoTable
+    template_name = "SharixAdmin/user_information_delete.html"
+
+    def get_context_data(self, **kwargs):
+        context = super().get_context_data(**kwargs)
+        context.update({
+            'title': 'Управление правами',
+            'object': self.object,
+            "current_page": "user_information"
+        })
+        return context
+    
+    def get_success_url(self):
+        return reverse('user_information')
+    
     def test_func(self) -> bool or None:
-        group_names = ('PROVIDER')
+        group_names = ('METASERVICE-ADMIN')
         if bool(self.request.user.groups.filter(name=group_names)) or self.request.user.is_superuser:
             return True
         return False