ShariX Developer 10 годин тому
батько
коміт
9193c9bdaa

+ 1 - 50
sharix_admin/lib/menu.py

@@ -1,54 +1,5 @@
 from webservice_running.lib.menu import *
-
-WSR_ALL = ['serivce_tariff_local']
-
-#TODO - providers+resources on map
-WSR_CLIENT_MY = ['order_local', 'orders_local', 'frequent_address', 'favorite_contacts', 'preferred_providers']
-WSR_MENU_CLIENT_MY_OPERATIONS = ['order_local/add']
-WSR_NOT_MENU_CLIENT_MY_OPERATIONS = ['order_local/edit', 'frequent_address/add', 'frequent_address/edit', 'frequent_address/del', 'favorite_contacts/add', 'favorite_contacts/edit', 'favorite_contacts/del', 'preferred_providers/add', 'preferred_providers/edit', 'preferred_providers/del']
-
-#WEBSERVICE_RUNNING_MENU
-MENU_GLOBAL_CUSTOMIZABLE = ['main_local', 'service_tariffs_local']
-STAFF_METASERVICE_MENU_CUSTOMIZABLE = ['resources_local', 'providers_local', 'orders_local', 'cooperate_request' ]
-STAFF_MY_PARTNER_MENU_CUSTOMIZABLE = ['resources_local', 'providers_local', 'orders_local']
-STAFF_MY_PROVIDER_MENU_CUSTOMIZABLE = ['resources_local', 'orders_local']
-CLIENT_MY_MENU_CUSTOMIZABLE = ['cooperate_request', 'order_local/add', 'orders_local', 'frequent_address', 'frequent_contacts', 'preferred_providers']
-
-#CUSTOM PAGES
-WSR_EXTENDED_MY = []
-#WSR_EXTENDED_MY = ['frequent_address', 'frequent_contacts', 'preferred_providers']
-WSR_EXTENDED = []
-#TODO - providers+resources on map (NOT MY, GLOBAL or MY meant by geolocation+preferences)
-
-
-MENU_SCHEME_LIST = {
-    'main': ['sharix_admin', 'house', 'Главная'],
-#    'main_local': ['webservice_running', 'house', 'Главная сервиса'],
-    'service_categories': ['sharix_admin', 'briefcase', 'Категории услуг'],
-    'service_tariffs': ['sharix_admin', 'briefcase', 'Тарифы'],
-    'partners': ['sharix_admin', 'handshake', 'Партнеры'],
-    'resources': ['sharix_admin', 'hdd-network', 'Ресурсы'],
-#    'resources_local': ['webservice_running', 'hdd-network', 'Ресурсы'],
-    'providers': ['sharix_admin', 'person', 'Исполнители'],
-    #'providers_local': ['webservice_running', 'person', 'Исполнители'],
-#    'orders': ['sharix_admin', 'clock-history', 'Заказы'],
-#    'orders_local': ['webservice_running', 'clock-history', 'Заказы'],
-    'access_control': ['sharix_admin', 'hdd-network', 'Права доступа'],
-    'relationship': ['sharix_admin', 'hdd-network', 'Взаимоотношения'],
-    'ticket_list_list': ['tickets', 'tickets', 'Заявки'],
-    'support_chat': ['sharix_admin', 'tickets', 'Чат техподдержки'],
-    'cooperate_request': ['sharix_admin', 'credit-card', 'Стать партнером'],
-    'job_request_metaservice': ['sharix_admin', 'credit-card', 'Вакансии'],
-#    'frequent_address': ['webservice_running', 'person', 'Частые адреса'],
-#    'frequent_contacts': ['webservice_running', 'person', 'Частые контакты'],
-    'preferred_providers': ['webservice_running', 'person', 'Желаемые исполнители'],
-    }
-
-
-
-
-
-
+from webservice_running.lib.menu import MENU_SCHEME_LIST
 
 #Same idea as vvv, maybe some custom pages for example for reports later 
 METASERVICE_ADMIN_ALL = ['partners', 'orders', 'access_control', 'resources', 'providers']

+ 3 - 1
sharix_admin/templates/sharix_admin/base_admin.html

@@ -33,10 +33,12 @@
       </li>
       {% endfor %}
 
+      {% comment %}
       
       {% include 'webservice_running/metaservice_menu.html' %}
-     
+      {% endcomment %}
 
+      
     </ul>
   </nav>
 

+ 4 - 3
sharix_admin/templates/sharix_admin/order_local.html → sharix_admin/templates/sharix_admin/orders.html

@@ -1,11 +1,12 @@
 {% extends 'sharix_admin/base_admin.html' %}
 {% load render_table from django_tables2 %}
+{% load i18n %}
 {% load static %}
 
 {% block view %}
 {% block contenthome %}
-    <h1>{{ title }}</h1>
-    
+
+{% render_table table %}
     
 {% endblock contenthome %}
-{% endblock view %}
+{% endblock view %}

+ 4 - 4
sharix_admin/urls.py

@@ -34,11 +34,11 @@ urlpatterns = [
     #path('job-request/<str:partner>', login_required(JobRequestPartnerView.as_view()), name='job_request_partner'),
 
         #Order model SHOULD HAVE at least LIST, ADD, DETAIL, EDIT if that corresponds service idea, othervice Open models and pages might be enough
-    path('orders_local/', login_required(OrdersListView.as_view()), name='orders_local'),
-    path('order_local/<int:pk>', login_required(OrdersDetailView.as_view()), name='order_local_detail'),
+    path('orders/', login_required(OrdersListView.as_view()), name='orders'),
+    path('order/<int:pk>', login_required(OrdersDetailView.as_view()), name='order_detail'),
         # todo - move from views.order_reg to this one
-    path('order_local/add/', login_required(OrdersCreate.as_view()), name='order_local/add/'),
-    path('order_local/edit/<int:pk>', login_required(OrdersEditView.as_view()), name='order_local/edit'),
+    path('order/add/', login_required(OrdersCreate.as_view()), name='order/add/'),
+    path('order/edit/<int:pk>', login_required(OrdersEditView.as_view()), name='order/edit'),
 
     # Набор страниц по модели Партнер
     path('partners/', login_required(PartnersListView.as_view()), name='partners'),

+ 20 - 13
sharix_admin/views/order.py

@@ -21,10 +21,13 @@ from dbsynce.lib.data import *
 from .base import BaseView
 from django.db.models import Q
 
-class OrdersListView(UserPassesTestMixin, SingleTableView):
+class OrdersListView(BaseView, SingleTableView):
+#class OrdersListView(UserPassesTestMixin, SingleTableView):
     table_class = OrdersTable
     queryset = Orders.objects.all()
-    template_name = 'sharix_admin/order_local.html'
+    template_name = 'sharix_admin/orders.html'
+    page_title = 'Заказы'
+    page_name = 'orders'
 
     def get_context_data(self, **kwargs):
         context = super().get_context_data(**kwargs)
@@ -46,11 +49,15 @@ class OrdersListView(UserPassesTestMixin, SingleTableView):
             ).distinct()
         return queryset
 
+    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:
         return True
 
 @login_required
-@group_required('PARTNER-ADMIN')
+@group_required('PARTNER-SUPERVISOR')
 def change_order_local_status(request):
     if request.method == 'POST':
         order_id = request.POST.get('order_local') 
@@ -67,13 +74,13 @@ def change_order_local_status(request):
 
 class OrdersEditView(BaseView, FormView):
     form_class = OrderForm
-    template_name = "sharix_admin/order_local.html"
-    success_url = reverse_lazy("sharix_admin:order_local")
+    template_name = "sharix_admin/order.html"
+    success_url = reverse_lazy("sharix_admin:order")
     page_title = 'Изменить заказ'
     page_name = 'order_edit'
 
     def test_func(self):
-        return "PARTNER-ADMIN" in self.user_groups
+        return "CLIENT" in self.user_groups
 
     def form_valid(self, form):
         with transaction.atomic():
@@ -95,13 +102,13 @@ class OrdersEditView(BaseView, FormView):
 
 class OrdersCreate(BaseView, FormView):
     form_class = OrderForm
-    template_name = "sharix_admin/order_local.html"
-    success_url = reverse_lazy("sharix_admin:order_local")
+    template_name = "sharix_admin/order.html"
+    success_url = reverse_lazy("sharix_admin:order")
     page_title = 'Добавить заказ'
-    page_name = 'order_local/add/'
+    page_name = 'order/add/'
 
     def test_func(self):
-        return not "PARTNER-ADMIN" in self.user_groups
+        return not "CLIENT" in self.user_groups
 
     def form_valid(self, form):
         with transaction.atomic():
@@ -122,12 +129,12 @@ class OrdersCreate(BaseView, FormView):
         messages.success(self.request, 'Заказ успешно создан!')
         return super().form_valid(form)
 
-class OrdersDetailView(DetailView):
+class OrdersDetailView(BaseView, DetailView):
     model = Orders
-    template_name = 'sharix_admin/order_local.html'
+    template_name = 'sharix_admin/order.html'
     context_object_name = 'order'
 
     def get_context_data(self, **kwargs):
         context = super().get_context_data(**kwargs)
         context['title'] = _('Order Details')
-        return context
+        return context

+ 1 - 1
sharix_admin/views/partner.py

@@ -180,7 +180,7 @@ class PartnerDocView(PartnerBaseView, DetailView):
         return context
 
 
-class PartnersListView(UserPassesTestMixin, SingleTableView):
+class PartnersListView(PartnerBaseView, UserPassesTestMixin, SingleTableView):
     page_title = _('Партнеры')
     page_name = 'partners'
     table_class = PartnersTable

+ 1 - 1
sharix_admin/views/provider.py

@@ -87,7 +87,7 @@ class ProviderCreate(BaseView, FormView):
         return super().form_valid(form)  # Возвращаем успешный ответ
 
 
-class ProvidersListView(UserPassesTestMixin, SingleTableView):
+class ProvidersListView(BaseView, UserPassesTestMixin, SingleTableView):
 
     page_title = _('Исполнители по видам услуг')
     page_name = 'providers'

+ 3 - 1
sharix_admin/views/resource.py

@@ -24,10 +24,12 @@ from dbsynce.lib.data import *
 from .base import BaseView
 from django.db.models import Q
 
-class ResourcesListView(UserPassesTestMixin, SingleTableView):
+class ResourcesListView(BaseView, UserPassesTestMixin, SingleTableView):
     table_class = ResourcesTable
     queryset = Resource.objects.all()
     template_name = 'sharix_admin/resource_list.html'
+    page_title = 'Ресурсы'
+    page_name = 'resources'
 
     def get_context_data(self, **kwargs):
         context = super().get_context_data(**kwargs)

+ 1 - 1
sharix_admin/views/service_category.py

@@ -103,7 +103,7 @@ class ServiceCategoryCreate(BaseView, FormView):
 #class ServiceCategoriesListView(UserPassesTestMixin, SingleTableView):
 class ServiceCategoriesListView(BaseView, SingleTableView):
     page_title = _('Услуги сервиса')
-    page_name = 'service_category'
+    page_name = 'service_categories'
     table_class = ServiceCategoriesTable
     queryset = ServiceCategory.objects.all()
     template_name = 'sharix_admin/service_categories.html'

+ 3 - 1
sharix_admin/views/staff.py

@@ -23,10 +23,12 @@ from django.utils.translation import gettext as _
 
 
 #TODO This is abslutely incorrect, custom page needed!
-class AccessControlListView(UserPassesTestMixin, SingleTableView):
+class AccessControlListView(BaseView, UserPassesTestMixin, SingleTableView):
     table_class = PermissionsTable
     queryset = Permissions.objects.all()
     template_name = 'sharix_admin/staff/access_control.html'
+    page_title = 'Управление правами доступа'
+    page_name = 'access_control'
 
     def get_context_data(self, **kwargs):
         context = super().get_context_data(**kwargs)