mirror of
https://github.com/spalencsar/bearhub.git
synced 2026-07-07 02:24:16 +02:00
[web] refactoring: creating custom actions on demand
This commit is contained in:
@@ -9,7 +9,7 @@ import traceback
|
|||||||
from math import floor
|
from math import floor
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from threading import Thread
|
from threading import Thread
|
||||||
from typing import List, Type, Set, Tuple, Optional, Dict, Generator
|
from typing import List, Type, Set, Tuple, Optional, Dict, Generator, Iterable
|
||||||
|
|
||||||
import requests
|
import requests
|
||||||
import yaml
|
import yaml
|
||||||
@@ -74,23 +74,8 @@ class WebApplicationManager(SoftwareManager):
|
|||||||
self.suggestions = {}
|
self.suggestions = {}
|
||||||
self.configman = WebConfigManager()
|
self.configman = WebConfigManager()
|
||||||
self.idxman = SearchIndexManager(logger=context.logger)
|
self.idxman = SearchIndexManager(logger=context.logger)
|
||||||
self.custom_actions = (
|
self._custom_actions: Optional[Iterable[CustomSoftwareAction]] = None
|
||||||
CustomSoftwareAction(i18n_label_key='web.custom_action.install_app',
|
|
||||||
i18n_status_key='web.custom_action.install_app.status',
|
|
||||||
manager=self,
|
|
||||||
manager_method='install_app',
|
|
||||||
icon_path=resource.get_path('img/web.svg', ROOT_DIR),
|
|
||||||
requires_root=False,
|
|
||||||
refresh=True),
|
|
||||||
CustomSoftwareAction(i18n_label_key='web.custom_action.clean_env',
|
|
||||||
i18n_status_key='web.custom_action.clean_env.status',
|
|
||||||
manager=self,
|
|
||||||
manager_method='clean_environment',
|
|
||||||
icon_path=resource.get_path('img/web.svg', ROOT_DIR),
|
|
||||||
requires_root=False,
|
|
||||||
refresh=False)
|
|
||||||
)
|
|
||||||
|
|
||||||
def _get_lang_header(self) -> str:
|
def _get_lang_header(self) -> str:
|
||||||
try:
|
try:
|
||||||
system_locale = locale.getdefaultlocale()
|
system_locale = locale.getdefaultlocale()
|
||||||
@@ -1171,5 +1156,22 @@ class WebApplicationManager(SoftwareManager):
|
|||||||
return False, [traceback.format_exc()]
|
return False, [traceback.format_exc()]
|
||||||
|
|
||||||
def gen_custom_actions(self) -> Generator[CustomSoftwareAction, None, None]:
|
def gen_custom_actions(self) -> Generator[CustomSoftwareAction, None, None]:
|
||||||
for action in self.custom_actions:
|
if self._custom_actions is None:
|
||||||
yield action
|
self._custom_actions = (
|
||||||
|
CustomSoftwareAction(i18n_label_key='web.custom_action.install_app',
|
||||||
|
i18n_status_key='web.custom_action.install_app.status',
|
||||||
|
manager=self,
|
||||||
|
manager_method='install_app',
|
||||||
|
icon_path=resource.get_path('img/web.svg', ROOT_DIR),
|
||||||
|
requires_root=False,
|
||||||
|
refresh=True),
|
||||||
|
CustomSoftwareAction(i18n_label_key='web.custom_action.clean_env',
|
||||||
|
i18n_status_key='web.custom_action.clean_env.status',
|
||||||
|
manager=self,
|
||||||
|
manager_method='clean_environment',
|
||||||
|
icon_path=resource.get_path('img/web.svg', ROOT_DIR),
|
||||||
|
requires_root=False,
|
||||||
|
refresh=False)
|
||||||
|
)
|
||||||
|
|
||||||
|
yield from self._custom_actions
|
||||||
|
|||||||
Reference in New Issue
Block a user