feat(config): Split mod and admin config.

This commit is contained in:
2023-10-16 21:43:54 +03:00
parent d9c58806cf
commit ab39ceee71
44 changed files with 227 additions and 102 deletions

View File

@@ -12,7 +12,7 @@ from core.lion_guild import VoiceMode
from utils.lib import error_embed
from utils.ui import LeoUI, AButton, utc_now
from gui.base import CardMode
from wards import low_management_ward
from wards import high_management_ward
from . import babel
from .data import StatsData
@@ -41,7 +41,7 @@ class StatsCog(LionCog):
self.bot.core.guild_config.register_setting(self.settings.UnrankedRoles)
configcog = self.bot.get_cog('ConfigCog')
self.crossload_group(self.configure_group, configcog.configure_group)
self.crossload_group(self.configure_group, configcog.admin_config_group)
@cmds.hybrid_command(
name=_p('cmd:me', "me"),
@@ -204,8 +204,7 @@ class StatsCog(LionCog):
"Time from which to start counting activity for rank badges and season leaderboards. (YYYY-MM-DD)"
)
)
@appcmds.default_permissions(manage_guild=True)
@low_management_ward
@high_management_ward
async def configure_statistics_cmd(self, ctx: LionContext,
season_start: Optional[str] = None):
t = self.bot.translator.t

View File

@@ -21,6 +21,7 @@ from utils.lib import MessageArgs
from core.data import CoreData
from core.lion_guild import VoiceMode
from babel.translator import ctx_translator
from wards import low_management_iward, high_management_iward
from . import babel
from .data import StatsData, StatisticType
@@ -83,7 +84,8 @@ class StatisticsSettings(SettingGroup):
Time is assumed to be in set guild timezone (although supports +00 syntax)
"""
setting_id = 'season_start'
_set_cmd = 'configure statistics'
_set_cmd = 'admin config statistics'
_write_ward = high_management_iward
_display_name = _p('guildset:season_start', "season_start")
_desc = _p(
@@ -155,6 +157,7 @@ class StatisticsSettings(SettingGroup):
List of roles not displayed on the leaderboard
"""
setting_id = 'unranked_roles'
_write_ward = high_management_iward
_display_name = _p('guildset:unranked_roles', "unranked_roles")
_desc = _p(
@@ -211,6 +214,7 @@ class StatisticsSettings(SettingGroup):
Default is determined by current guild mode
"""
setting_id = 'visible_stats'
_write_ward = high_management_iward
_setting = StatTypeSetting
@@ -263,6 +267,7 @@ class StatisticsSettings(SettingGroup):
Which of the three stats to display by default
"""
setting_id = 'default_stat'
_write_ward = high_management_iward
_display_name = _p('guildset:default_stat', "default_stat")
_desc = _p(
@@ -294,6 +299,7 @@ class StatisticsConfigUI(ConfigUI):
"""
await selection.response.defer(thinking=True)
setting = self.instances[1]
await setting.interaction_check(setting.parent_id, selection)
setting.value = selected.values
await setting.write()
# Don't need to refresh due to instance hooks
@@ -314,6 +320,7 @@ class StatisticsConfigUI(ConfigUI):
"""
await selection.response.defer(thinking=True)
setting = self.instances[2]
await setting.interaction_check(setting.parent_id, selection)
data = [StatisticType((value,)) for value in selected.values]
setting.data = data
await setting.write()
@@ -405,7 +412,7 @@ class StatisticsConfigUI(ConfigUI):
class StatisticsDashboard(DashboardSection):
section_name = _p(
'dash:stats|title',
"Activity Statistics Configuration ({commands[configure statistics]})"
"Activity Statistics Configuration ({commands[admin config statistics]})"
)
_option_name = _p(
"dash:stats|dropdown|placeholder",