|
@@ -1,8 +1,4 @@
|
|
|
-#import from webservice_running.menu WEBSERVICE_RUNNING_MENU
|
|
|
-
|
|
|
-#TODO - user profile connected to platform
|
|
|
-#ALL_MY = ['tickets', 'main']
|
|
|
-ALL_ALL = ['service_categories', 'service_tariffs', 'support_chat', 'job_request_metaservice']
|
|
|
+from webservice_running.lib.menu import *
|
|
|
|
|
|
#Same idea as vvv, maybe some custom pages for example for reports later
|
|
|
METASERVICE_ADMIN_ALL = ['partners', 'orders', 'access_control', 'resources', 'providers']
|
|
@@ -36,57 +32,26 @@ CLIENT_MY = ['order', 'orders']
|
|
|
CLIENT_MY_OPERATIONS = ['order/edit', 'order/add']
|
|
|
#TODO should be something for transactions
|
|
|
|
|
|
-######################
|
|
|
-# WEBSERVICE_RUNNING #
|
|
|
-######################
|
|
|
-
|
|
|
-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']
|
|
|
-
|
|
|
-
|
|
|
+#READ MENU DESCRIPTION STARTS HERE!!! vvv
|
|
|
#Idea - Menu categories
|
|
|
|
|
|
#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:ticket_list_list', 'sharix_admin:service_categories', 'sharix_admin:support_chat', 'sharix_admin:job_request_metaservice']
|
|
|
-#MENU_GLOBAL = ['tickets', 'service_categories', 'support_chat', 'job_request_metaservice']
|
|
|
-MENU_OPEN = ['sharix_admin:main', 'sharix_admin:service_tariffs']
|
|
|
-#MENU_OPEN = ['main', 'service_tariffs']
|
|
|
+MENU_GLOBAL = ['tickets_list_list', 'service_categories', 'support_chat', 'job_request_metaservice']
|
|
|
+MENU_OPEN = ['main', 'service_tariffs']
|
|
|
|
|
|
#Thus menu points for all staff roles is the same
|
|
|
-STAFF_METASERVICE_MENU_GLOBAL = ['sharix_admin:access_control', 'sharix_admin:partners']
|
|
|
-#STAFF_METASERVICE_MENU_GLOBAL = ['access_control', 'partners']
|
|
|
-STAFF_METASERVICE_MENU_OPEN = ['sharix_admin:resources', 'sharix_admin:providers', 'sharix_admin:orders']
|
|
|
-#STAFF_METASERVICE_MENU_OPEN = ['resources', 'providers', 'orders']
|
|
|
+STAFF_METASERVICE_MENU_GLOBAL = ['access_control', '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 = ['sharix_admin:access_control', 'sharix_admin:partners']
|
|
|
-#STAFF_MY_PARTNER_MENU_GLOBAL = ['access_control', 'partners']
|
|
|
-STAFF_MY_PARTNER_MENU_OPEN = ['sharix_admin:resources', 'sharix_admin:providers', 'sharix_admin:orders']
|
|
|
-#STAFF_MY_PARTNER_MENU_OPEN = ['resources', 'providers', 'orders']
|
|
|
-
|
|
|
-STAFF_MY_PROVIDER_MENU_OPEN = ['sharix_admin:resources', 'sharix_admin:orders']
|
|
|
-#STAFF_MY_PROVIDER_MENU_OPEN = ['resources', 'orders']
|
|
|
-
|
|
|
-CLIENT_MY_MENU_GLOBAL = ['sharix_admin:transactions']
|
|
|
-#CLIENT_MY_MENU_GLOBAL = ['transactions']
|
|
|
-CLIENT_MY_MENU_OPEN = ['sharix_admin:orders']
|
|
|
-#CLIENT_MY_MENU_OPEN = ['orders']
|
|
|
-
|
|
|
-#WEBSERVICE_RUNNING_MENU
|
|
|
-MENU_GLOBAL_CUSTOMIZABLE = ['main_local', 'service_tariffs_local']
|
|
|
-STAFF_METASERVICE_MENU_CUSTOMIZABLE = ['resources_local', 'providers_local', 'orders_local' ]
|
|
|
-STAFF_MY_PARTNER_MENU_CUSTOMIZABLE = ['resources_local', 'providers_local', 'orders_local']
|
|
|
-STAFF_MY_PROVIDER_MENU_CUSTOMIZABLE = ['resources_local', 'orders_local']
|
|
|
-CLIENT_MY_MENU_CUSTOMIZABLE = ['order_local', 'orders_local']
|
|
|
-
|
|
|
-#CUSTOM PAGES
|
|
|
-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)
|
|
|
+STAFF_MY_PARTNER_MENU_GLOBAL = ['access_control', 'partners']
|
|
|
+STAFF_MY_PARTNER_MENU_OPEN = ['resources', 'providers', 'orders']
|
|
|
+
|
|
|
+STAFF_MY_PROVIDER_MENU_OPEN = ['resources', 'orders']
|
|
|
+
|
|
|
+CLIENT_MY_MENU_GLOBAL = ['transactions']
|
|
|
+CLIENT_MY_MENU_OPEN = ['orders']
|
|
|
+
|
|
|
|
|
|
#3 variants to show customizable pages, it depends on settings of a project ALL (PURE), ALL + CUSTOMIZABLE (REPLACE) replaced, ALL + CUSTOMIZABLE added (APPEND)
|
|
|
#function to check if menu should be visible:
|
|
@@ -99,114 +64,115 @@ 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 = 'PURE'
|
|
|
-global MENU_VISIBLE_PAGES
|
|
|
-MENU_VISIBLE_PAGES = []
|
|
|
+MENU_ALG = 'APPEND'
|
|
|
+global menu_visible_pages
|
|
|
+visible_pages = []
|
|
|
|
|
|
if MENU_ALG == 'PURE':
|
|
|
- MENU_VISIBLE_PAGES = []
|
|
|
- MENU_VISIBLE_PAGES.extend(MENU_GLOBAL)
|
|
|
- MENU_VISIBLE_PAGES.extend(MENU_OPEN)
|
|
|
+ visible_pages.extend(MENU_GLOBAL)
|
|
|
+ visible_pages.extend(MENU_OPEN)
|
|
|
|
|
|
if MENU_ALG == 'REPLACE':
|
|
|
- MENU_VISIBLE_PAGES = []
|
|
|
- MENU_VISIBLE_PAGES.extend(MENU_GLOBAL)
|
|
|
- MENU_VISIBLE_PAGES.extend(MENU_GLOBAL_CUSTOMIZABLE)
|
|
|
+ visible_pages.extend(MENU_GLOBAL)
|
|
|
+ visible_pages.extend(MENU_GLOBAL_CUSTOMIZABLE)
|
|
|
|
|
|
if MENU_ALG == 'APPEND':
|
|
|
- MENU_VISIBLE_PAGES = []
|
|
|
- MENU_VISIBLE_PAGES.extend(MENU_GLOBAL)
|
|
|
- MENU_VISIBLE_PAGES.extend(MENU_GLOBAL_CUSTOMIZABLE)
|
|
|
- MENU_VISIBLE_PAGES.extend(MENU_OPEN)
|
|
|
+ visible_pages.extend(MENU_GLOBAL)
|
|
|
+ visible_pages.extend(MENU_GLOBAL_CUSTOMIZABLE)
|
|
|
+ visible_pages.extend(MENU_OPEN)
|
|
|
|
|
|
#TODO - change menu template to FOR loop with parameters - name, link, icon
|
|
|
# menu structure should base on config file with menu structure as settings
|
|
|
|
|
|
-#MENU_SCHEME_OPEN = [
|
|
|
-# 'main',
|
|
|
-# 'service_categories',
|
|
|
-# 'service_tariffs',
|
|
|
-# 'partners',
|
|
|
-# 'resources',
|
|
|
-# 'providers',
|
|
|
-# 'orders',
|
|
|
-# 'access_control',
|
|
|
-# 'tickets',
|
|
|
-# 'support_chat',
|
|
|
-# 'job_request_metaservice',
|
|
|
-# ]
|
|
|
-
|
|
|
-#TODO - move to WSR! And add MENU_ALG setting to project settings!
|
|
|
-#MENU_SCHEME_WSR = [
|
|
|
-# 'main_local',
|
|
|
-# 'service_categories',
|
|
|
-# 'partners',
|
|
|
-# 'resources_local',
|
|
|
-# 'providers_local',
|
|
|
-# 'orders_local',
|
|
|
-# 'access_control',
|
|
|
-# 'tickets',
|
|
|
-# 'support_chat',
|
|
|
-# 'job_request_metaservice',
|
|
|
-# ]
|
|
|
+MENU_SCHEME = True
|
|
|
+
|
|
|
+MENU_SCHEME_LIST_OPEN = {
|
|
|
+ 'main': ['sharix_admin', 'house', 'Главная'],
|
|
|
+ 'service_categories': ['sharix_admin', 'briefcase', 'Категории услуг'],
|
|
|
+ 'service_tariffs': ['sharix_admin', 'briefcase', 'Тарифы'],
|
|
|
+ 'partners': ['sharix_admin', 'handshake', 'Партнеры'],
|
|
|
+ 'resources': ['sharix_admin', 'hdd-network', 'Ресурсы'],
|
|
|
+ 'providers': ['sharix_admin', 'person', 'Исполнители'],
|
|
|
+ 'orders': ['sharix_admin', 'clock-history', 'Заказы'],
|
|
|
+ 'access_control': ['sharix_admin', 'hdd-network', 'Права доступа'],
|
|
|
+ 'tickets': ['tickets_list_list', 'tickets', 'Заявки'],
|
|
|
+ 'support_chat': ['sharix_admin', 'tickets', 'Чат техподдержки'],
|
|
|
+ 'job_request_metaservice': ['sharix_admin', 'credit-card', 'Вакансии'],
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
def gen_avaliable_pages(roles):
|
|
|
#any(x in role for x in STAFF_METASERVICE_ROLES):
|
|
|
- global MENU_VISIBLE_PAGES
|
|
|
+ global visible_pages
|
|
|
+ global MENU_SCHEME_LIST
|
|
|
if any(x in roles for x in STAFF_METASERVICE_ROLES):
|
|
|
|
|
|
if MENU_ALG == 'PURE':
|
|
|
- MENU_VISIBLE_PAGES.extend(STAFF_METASERVICE_MENU_GLOBAL)
|
|
|
- MENU_VISIBLE_PAGES.extend(STAFF_METASERVICE_MENU_OPEN)
|
|
|
+ visible_pages.extend(STAFF_METASERVICE_MENU_GLOBAL)
|
|
|
+ visible_pages.extend(STAFF_METASERVICE_MENU_OPEN)
|
|
|
|
|
|
if MENU_ALG == 'REPLACE':
|
|
|
- MENU_VISIBLE_PAGES.extend(STAFF_METASERVICE_MENU_GLOBAL)
|
|
|
- MENU_VISIBLE_PAGES.extend(STAFF_METASERVICE_MENU_CUSTOMIZABLE)
|
|
|
+ visible_pages.extend(STAFF_METASERVICE_MENU_GLOBAL)
|
|
|
+ visible_pages.extend(STAFF_METASERVICE_MENU_CUSTOMIZABLE)
|
|
|
if MENU_ALG == 'APPEND':
|
|
|
- MENU_VISIBLE_PAGES.extend(STAFF_METASERVICE_MENU_GLOBAL)
|
|
|
- MENU_VISIBLE_PAGES.extend(STAFF_METASERVICE_MENU_CUSTOMIZABLE)
|
|
|
- MENU_VISIBLE_PAGES.extend(STAFF_METASERVICE_MENU_OPEN)
|
|
|
+ visible_pages.extend(STAFF_METASERVICE_MENU_GLOBAL)
|
|
|
+ visible_pages.extend(STAFF_METASERVICE_MENU_CUSTOMIZABLE)
|
|
|
+ visible_pages.extend(STAFF_METASERVICE_MENU_OPEN)
|
|
|
|
|
|
if any(x in roles for x in STAFF_PARTNER_ROLES):
|
|
|
#if role in STAFF_PARTNER_ROLES:
|
|
|
|
|
|
if MENU_ALG == 'PURE':
|
|
|
- MENU_VISIBLE_PAGES.extend(STAFF_MY_PARTNER_MENU_GLOBAL)
|
|
|
- MENU_VISIBLE_PAGES.extend(STAFF_MY_PARTNER_MENU_OPEN)
|
|
|
- MENU_VISIBLE_PAGES.extend(STAFF_MY_PROVIDER_MENU_OPEN)
|
|
|
+ visible_pages.extend(STAFF_MY_PARTNER_MENU_GLOBAL)
|
|
|
+ visible_pages.extend(STAFF_MY_PARTNER_MENU_OPEN)
|
|
|
+ visible_pages.extend(STAFF_MY_PROVIDER_MENU_OPEN)
|
|
|
|
|
|
if MENU_ALG == 'REPLACE':
|
|
|
- MENU_VISIBLE_PAGES.extend(STAFF_MY_PARTNER_MENU_GLOBAL)
|
|
|
- MENU_VISIBLE_PAGES.extend(STAFF_MY_PARTNER_MENU_CUSTOMIZABLE)
|
|
|
- MENU_VISIBLE_PAGES.extend(STAFF_MY_PROVIDER_MENU_CUSTOMIZABLE)
|
|
|
+ visible_pages.extend(STAFF_MY_PARTNER_MENU_GLOBAL)
|
|
|
+ visible_pages.extend(STAFF_MY_PARTNER_MENU_CUSTOMIZABLE)
|
|
|
+ visible_pages.extend(STAFF_MY_PROVIDER_MENU_CUSTOMIZABLE)
|
|
|
|
|
|
if MENU_ALG == 'APPEND':
|
|
|
- MENU_VISIBLE_PAGES.extend(STAFF_MY_PARTNER_MENU_GLOBAL)
|
|
|
- MENU_VISIBLE_PAGES.extend(STAFF_MY_PARTNER_MENU_CUSTOMIZABLE)
|
|
|
- MENU_VISIBLE_PAGES.extend(STAFF_MY_PARTNER_MENU_OPEN)
|
|
|
- MENU_VISIBLE_PAGES.extend(STAFF_MY_PROVIDER_MENU_CUSTOMIZABLE)
|
|
|
- MENU_VISIBLE_PAGES.extend(STAFF_MY_PROVIDER_MENU_OPEN)
|
|
|
+ visible_pages.extend(STAFF_MY_PARTNER_MENU_GLOBAL)
|
|
|
+ visible_pages.extend(STAFF_MY_PARTNER_MENU_CUSTOMIZABLE)
|
|
|
+ visible_pages.extend(STAFF_MY_PARTNER_MENU_OPEN)
|
|
|
+ visible_pages.extend(STAFF_MY_PROVIDER_MENU_CUSTOMIZABLE)
|
|
|
+ visible_pages.extend(STAFF_MY_PROVIDER_MENU_OPEN)
|
|
|
|
|
|
if any(x in roles for x in CLIENT_ROLES):
|
|
|
#if role in CLIENT_ROLES:
|
|
|
if MENU_ALG == 'PURE':
|
|
|
- MENU_VISIBLE_PAGES.extend(CLIENT_MY_MENU_GLOBAL)
|
|
|
- MENU_VISIBLE_PAGES.extend(CLIENT_MY_MENU_OPEN)
|
|
|
+ visible_pages.extend(CLIENT_MY_MENU_GLOBAL)
|
|
|
+ visible_pages.extend(CLIENT_MY_MENU_OPEN)
|
|
|
|
|
|
if MENU_ALG == 'REPLACE':
|
|
|
- MENU_VISIBLE_PAGES.extend(CLIENT_MY_MENU_GLOBAL)
|
|
|
- MENU_VISIBLE_PAGES.extend(CLIENT_MY_MENU_CUSTOMIZABLE)
|
|
|
- MENU_VISIBLE_PAGES.extend(WSR_EXTENDED)
|
|
|
- MENU_VISIBLE_PAGES.extend(WSR_EXTENDED_MY)
|
|
|
+ visible_pages.extend(CLIENT_MY_MENU_GLOBAL)
|
|
|
+ visible_pages.extend(CLIENT_MY_MENU_CUSTOMIZABLE)
|
|
|
+ visible_pages.extend(WSR_EXTENDED)
|
|
|
+ visible_pages.extend(WSR_EXTENDED_MY)
|
|
|
|
|
|
if MENU_ALG == 'APPEND':
|
|
|
- MENU_VISIBLE_PAGES.extend(CLIENT_MY_MENU_GLOBAL)
|
|
|
- MENU_VISIBLE_PAGES.extend(CLIENT_MY_MENU_CUSTOMIZABLE)
|
|
|
- MENU_VISIBLE_PAGES.extend(CLIENT_MY_MENU_OPEN)
|
|
|
- MENU_VISIBLE_PAGES.extend(WSR_EXTENDED)
|
|
|
- MENU_VISIBLE_PAGES.extend(WSR_EXTENDED_MY)
|
|
|
+ visible_pages.extend(CLIENT_MY_MENU_GLOBAL)
|
|
|
+ visible_pages.extend(CLIENT_MY_MENU_CUSTOMIZABLE)
|
|
|
+ visible_pages.extend(CLIENT_MY_MENU_OPEN)
|
|
|
+ visible_pages.extend(WSR_EXTENDED)
|
|
|
+ visible_pages.extend(WSR_EXTENDED_MY)
|
|
|
|
|
|
#MAYBE REMOVE DUPLICATES?
|
|
|
- MENU_VISIBLE_PAGES = list(dict.fromkeys(MENU_VISIBLE_PAGES))
|
|
|
- return MENU_VISIBLE_PAGES
|
|
|
-
|
|
|
+ visible_pages = list(dict.fromkeys(visible_pages))
|
|
|
+
|
|
|
+ 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=[]
|
|
|
+ menu_item.append(value[0]+':'+key)
|
|
|
+ menu_item=menu_item+value
|
|
|
+ menu_result.append(menu_item)
|
|
|
+
|
|
|
+ print (menu_result)
|
|
|
+ return menu_result
|
|
|
+
|
|
|
+gen_avaliable_pages('METASERVICE-ADMIN')
|