Skip to content

Commit 66c7685

Browse files
author
KirillMysnik
committed
Set constant order of the entries in the main menu
1 parent 1f83d98 commit 66c7685

File tree

7 files changed

+23
-7
lines changed

7 files changed

+23
-7
lines changed

srcds/addons/source-python/plugins/admin/core/frontends/menus.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
# Source.Python Admin
1010
from ..clients import clients
11+
from ..config import config
1112
from ..helpers import format_player_name
1213
from ..strings import strings_common
1314

@@ -144,8 +145,10 @@ def select(self, client):
144145

145146
client.send_popup(self.popup)
146147

147-
# Main section
148-
main_menu = MenuSection(None, strings_common['title main'], 'admin')
148+
def load_order(self, order):
149+
self.order = order[:]
150+
self.sort(key=lambda entry_: (self.order.index(entry_.id)
151+
if entry_.id in self.order else -1))
149152

150153

151154
class MenuCommand(MenuEntry):
@@ -542,3 +545,12 @@ def _get_player_id(self, player):
542545

543546
def _iter(self):
544547
yield from PlayerIter(self.base_filter)
548+
549+
550+
# =============================================================================
551+
# >> MAIN MENU
552+
# =============================================================================
553+
main_menu = MenuSection(None, strings_common['title main'], 'admin')
554+
main_menu.load_order(list(map(
555+
lambda x: x.strip(), config['menus']['order'].split(',')
556+
)))

srcds/addons/source-python/plugins/admin/plugins/included/admin_comm_management/admin_comm_management.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
# >> MENU ENTRIES
2222
# =============================================================================
2323
menu_section = main_menu.add_entry(MenuSection(
24-
main_menu, plugin_strings['section_title main']))
24+
main_menu, plugin_strings['section_title main'], 'comm_management'))
2525

2626
menu_section_chat = menu_section.add_entry(MenuSection(
2727
menu_section, plugin_strings['section_title chat']))
@@ -59,6 +59,7 @@
5959
menu_section_voice,
6060
plugin_strings['popup_title unblock_voice']))
6161

62+
6263
# =============================================================================
6364
# >> SYNCHRONOUS DATABASE OPERATIONS
6465
# =============================================================================

srcds/addons/source-python/plugins/admin/plugins/included/admin_kick_ban/admin_kick_ban.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ class _KickPage(PlayerBasedFeaturePage):
7070
# >> MENU ENTRIES
7171
# =============================================================================
7272
menu_section = main_menu.add_entry(MenuSection(
73-
main_menu, plugin_strings['section_title main']))
73+
main_menu, plugin_strings['section_title main'], 'kick_ban'))
7474

7575
menu_section_steamid = menu_section.add_entry(MenuSection(
7676
menu_section, plugin_strings['section_title steamid_bans']))

srcds/addons/source-python/plugins/admin/plugins/included/admin_life_management/admin_life_management.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ def on_error(self, error):
112112
# >> MENU ENTRIES
113113
# =============================================================================
114114
menu_section = main_menu.add_entry(MenuSection(
115-
main_menu, plugin_strings['section_title']))
115+
main_menu, plugin_strings['section_title'], 'life_management'))
116116

117117
slay_menu_command = menu_section.add_entry(PlayerBasedMenuCommand(
118118
slay_feature,

srcds/addons/source-python/plugins/admin/plugins/included/admin_team_management/admin_team_management.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ class _DelayedMoveToCTFeature(_DelayedMoveToTeamFeature):
100100
# >> MENU ENTRIES
101101
# =============================================================================
102102
menu_section = main_menu.add_entry(MenuSection(
103-
main_menu, plugin_strings['section_title']))
103+
main_menu, plugin_strings['section_title'], 'team_management'))
104104

105105
move_to_spec_menu_command = menu_section.add_entry(PlayerBasedMenuCommand(
106106
move_to_spec_feature,

srcds/addons/source-python/plugins/admin/plugins/included/admin_tracking/admin_tracking.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -720,7 +720,7 @@ def message_func(message):
720720
# >> MENU ENTRIES
721721
# =============================================================================
722722
menu_section = main_menu.add_entry(MenuSection(
723-
main_menu, plugin_strings['section_title']))
723+
main_menu, plugin_strings['section_title'], 'tracking'))
724724

725725
track_menu_command = menu_section.add_entry(_TrackPopupMenuCommand(
726726
track_popup_feature,
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
[database]
22
uri=sqlite:///{admin_data_path}/spa.db
33
prefix=spa_
4+
5+
[menus]
6+
order=kick_ban,tracking,life_management,comm_management,team_management

0 commit comments

Comments
 (0)