|
@@ -1,5 +1,55 @@
|
|
|
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', 'Желаемые исполнители'],
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
#Same idea as vvv, maybe some custom pages for example for reports later
|
|
|
METASERVICE_ADMIN_ALL = ['partners', 'orders', 'access_control', 'resources', 'providers']
|
|
|
#note: delete 'delete' operation from urlpatterns! Question - should be edit and change status apart or not?
|
|
@@ -38,10 +88,10 @@ CLIENT_MY_OPERATIONS = ['order/edit', 'order/add']
|
|
|
#GLOBAL_MENU - same for all users, info on forms may vary according to roles, but view is one for all
|
|
|
#MENU_GLOBAL = ['service_categories', 'support_chat', 'job_request_metaservice']
|
|
|
MENU_GLOBAL = ['tickets_list_list', 'service_categories', 'support_chat', 'job_request_metaservice']
|
|
|
-MENU_OPEN = ['main', 'service_tariffs']
|
|
|
+MENU_OPEN = ['main', 'service_tariffs', 'cooperate_request']
|
|
|
|
|
|
#Thus menu points for all staff roles is the same
|
|
|
-STAFF_METASERVICE_MENU_GLOBAL = ['access_control', 'partners']
|
|
|
+STAFF_METASERVICE_MENU_GLOBAL = ['access_control', 'relationship', 'partners']
|
|
|
STAFF_METASERVICE_MENU_OPEN = ['resources', 'providers', 'orders']
|
|
|
#Another set of pages that lists only MY PARTNER objects - needed for the situation for users with multiple roles. For each Partner connection - same set of pages, maybe it's good idea to hide it
|
|
|
STAFF_MY_PARTNER_MENU_GLOBAL = ['access_control', 'partners']
|
|
@@ -57,15 +107,15 @@ CLIENT_MY_MENU_OPEN = ['orders']
|
|
|
#function to check if menu should be visible:
|
|
|
# function that get roles by userid
|
|
|
|
|
|
-STAFF_METASERVICE_ROLES = ['METASERVICE_ADMIN', 'METASERVICE_SUPERVISOR', 'METASERVICE_SUPPORT', 'METASERVICE_TECHSUPPORT']
|
|
|
-STAFF_PARTNER_ROLES = ['PARTNER_ADMIN', 'PARTNER_SUPERVISOR', 'PARTNER_SUPPORT', 'PARTNER_TECHSUPPORT', 'PROVIDER']
|
|
|
+STAFF_METASERVICE_ROLES = ['METASERVICE-ADMIN', 'METASERVICE-SUPERVISOR', 'METASERVICE-SUPPORT', 'METASERVICE-TECHSUPPORT']
|
|
|
+STAFF_PARTNER_ROLES = ['PARTNER-ADMIN', 'PARTNER-SUPERVISOR', 'PARTNER-SUPPORT', 'PARTNER-TECHSUPPORT', 'PROVIDER']
|
|
|
CLIENT_ROLES = ['CLIENT']
|
|
|
|
|
|
#if user role in list provided and page name in a connected list then menu item is visible
|
|
|
#so we have to know user_id and page type and MENU_ALG algorythm
|
|
|
|
|
|
MENU_ALG = 'APPEND'
|
|
|
-global menu_visible_pages
|
|
|
+global visible_pages
|
|
|
visible_pages = []
|
|
|
|
|
|
if MENU_ALG == 'PURE':
|
|
@@ -95,18 +145,35 @@ MENU_SCHEME_LIST_OPEN = {
|
|
|
'providers': ['sharix_admin', 'person', 'Исполнители'],
|
|
|
'orders': ['sharix_admin', 'clock-history', 'Заказы'],
|
|
|
'access_control': ['sharix_admin', 'hdd-network', 'Права доступа'],
|
|
|
- 'tickets': ['tickets_list_list', 'tickets', 'Заявки'],
|
|
|
+ 'tickets_list_list': ['tickets', 'tickets', 'Заявки'],
|
|
|
'support_chat': ['sharix_admin', 'tickets', 'Чат техподдержки'],
|
|
|
'job_request_metaservice': ['sharix_admin', 'credit-card', 'Вакансии'],
|
|
|
+ 'cooperate_request': ['sharix_admin', 'credit-card', 'Стать партнером'],
|
|
|
}
|
|
|
|
|
|
|
|
|
def gen_avaliable_pages(roles):
|
|
|
#any(x in role for x in STAFF_METASERVICE_ROLES):
|
|
|
- global visible_pages
|
|
|
+ #global visible_pages
|
|
|
global MENU_SCHEME_LIST
|
|
|
- if any(x in roles for x in STAFF_METASERVICE_ROLES):
|
|
|
|
|
|
+ visible_pages = []
|
|
|
+
|
|
|
+ if MENU_ALG == 'PURE':
|
|
|
+ visible_pages.extend(MENU_GLOBAL)
|
|
|
+ visible_pages.extend(MENU_OPEN)
|
|
|
+
|
|
|
+ if MENU_ALG == 'REPLACE':
|
|
|
+ visible_pages.extend(MENU_GLOBAL)
|
|
|
+ visible_pages.extend(MENU_GLOBAL_CUSTOMIZABLE)
|
|
|
+
|
|
|
+ if MENU_ALG == 'APPEND':
|
|
|
+ visible_pages.extend(MENU_GLOBAL)
|
|
|
+ visible_pages.extend(MENU_GLOBAL_CUSTOMIZABLE)
|
|
|
+ visible_pages.extend(MENU_OPEN)
|
|
|
+
|
|
|
+
|
|
|
+ if any(x in roles for x in STAFF_METASERVICE_ROLES):
|
|
|
if MENU_ALG == 'PURE':
|
|
|
visible_pages.extend(STAFF_METASERVICE_MENU_GLOBAL)
|
|
|
visible_pages.extend(STAFF_METASERVICE_MENU_OPEN)
|
|
@@ -121,7 +188,6 @@ def gen_avaliable_pages(roles):
|
|
|
|
|
|
if any(x in roles for x in STAFF_PARTNER_ROLES):
|
|
|
#if role in STAFF_PARTNER_ROLES:
|
|
|
-
|
|
|
if MENU_ALG == 'PURE':
|
|
|
visible_pages.extend(STAFF_MY_PARTNER_MENU_GLOBAL)
|
|
|
visible_pages.extend(STAFF_MY_PARTNER_MENU_OPEN)
|
|
@@ -157,6 +223,7 @@ def gen_avaliable_pages(roles):
|
|
|
visible_pages.extend(CLIENT_MY_MENU_OPEN)
|
|
|
visible_pages.extend(WSR_EXTENDED)
|
|
|
visible_pages.extend(WSR_EXTENDED_MY)
|
|
|
+
|
|
|
|
|
|
#MAYBE REMOVE DUPLICATES?
|
|
|
visible_pages = list(dict.fromkeys(visible_pages))
|
|
@@ -164,7 +231,7 @@ def gen_avaliable_pages(roles):
|
|
|
menu_result = []
|
|
|
if not MENU_SCHEME:
|
|
|
MENU_SCHEME_LIST=MENU_SCHEME_LIST_OPEN
|
|
|
-
|
|
|
+
|
|
|
for key, value in MENU_SCHEME_LIST.items():
|
|
|
if key in visible_pages:
|
|
|
menu_item=[]
|
|
@@ -172,7 +239,14 @@ def gen_avaliable_pages(roles):
|
|
|
menu_item=menu_item+value
|
|
|
menu_result.append(menu_item)
|
|
|
|
|
|
- print (menu_result)
|
|
|
+ #print (roles, menu_result)
|
|
|
return menu_result
|
|
|
|
|
|
-gen_avaliable_pages('METASERVICE-ADMIN')
|
|
|
+#gen_avaliable_pages('METASERVICE-ADMIN')
|
|
|
+#gen_avaliable_pages('METASERVICE-SUPERVISOR')
|
|
|
+#gen_avaliable_pages('METASERVICE-SUPPORT')
|
|
|
+#gen_avaliable_pages('PARTNER-ADMIN')
|
|
|
+#gen_avaliable_pages('PARTNER-SUPERVISOR')
|
|
|
+#gen_avaliable_pages('PARTNER-SUPPORT')
|
|
|
+#gen_avaliable_pages('PROVIDER')
|
|
|
+#gen_avaliable_pages('CLIENT')
|