10.4. Модуль core¶
Модуль cerebro.core для доступа к данным в приложении и к управляющим функциям.
Функции
activities()
application_dir()
current_attachment()
current_message()
current_task()
has_flag()
has_perm_global()
has_perm_message()
has_perm_task()
is_logon()
message()
notify_user()
print_debug()
print_error()
print_info()
print_warning()
python_api_dir()
refresh_all()
refresh_tasks()
root_tasks()
selected_attachments()
selected_messages()
selected_tasks()
set_current_task()
start_timer()
statuses()
stop_timer()
task()
task_children()
to_do_task_list()
user_profile()
users()
version_app()
version_python_api()
-
cerebro.core.
activities
()[исходный код]¶ Результат: виды деятельности. Тип результата: cerebro.aclasses.Activities
-
cerebro.core.
application_dir
()[исходный код]¶ Результат: путь до директории приложения Cerebro. Тип результата: string Предупреждение
Под операционной системой Mac OS X директорией приложения считается директория расположенная внутри пакета приложения - «Cerebro.app/Contents/MacOs/»
См.также
-
cerebro.core.
current_attachment
()[исходный код]¶ Результат: вложение на котором активирован пользовательский пункт меню. Тип результата: cerebro.aclasses.Attachment
def example_attachment_menu(): # Скачивание вложения attach = cerebro.core.current_attachment() # получаем текущее вложение, на котором было вызвано контекстное меню file_name = cerebro.cargador.file_name_form_hash(attach.file_hash()) # пробуем получить имя файла по хешу if file_name == '' or file_name == None: # если файла нет, пробуем его скачать cerebro.cargador.download_file(attach.file_hash())
См.также
-
cerebro.core.
current_message
()[исходный код]¶ Результат: сообщение на котором активирован пользовательский пункт меню. Тип результата: cerebro.aclasses.Message
Текущее сообщение может быть равно None, если пользователь активировал пункт меню не на конкретном сообщении. Однако, при этом могут быть выделенные пользователем сообщения, которые возвращаются в функции
selected_messages()
.def example_message_menu(): print('Вызов example_message_menu по клику пункта меню "Мой пункт меню в форуме"') # Получаем текущее сообщение message = cerebro.core.current_message() if message: print('Текущее сообщение', message.text_as_plain())
См.также
-
cerebro.core.
current_task
()[исходный код]¶ Результат: текущая задача в графическом интерфейсе Cerebro. Тип результата: cerebro.aclasses.Task
def example_task_menu(): print('Вызов example_task_menu по клику пункта меню "Мой пункт меню"') # Получаем текущую задачу task = cerebro.core.current_task() print('Текущая задача', task.name())
См.также
-
cerebro.core.
has_flag
(flags, flag)[исходный код]¶ Параметры: Результат: наличие выставленного флага flag в значении flags.
Тип результата: Проверяет, выставлен ли флаг flag в передаваемом значении флагов flags.
res = cerebro.core.has_flag(task.flags(), task.FLAG_HAS_CHILD) print('Наличие подзадач у задачи task', res)
-
cerebro.core.
has_perm_global
(perm_type)[исходный код]¶ Параметры: perm_type (int) – тип глобального действия
, требующей разрешения.Результат: True, если текущий пользователь имеет разрешение на глобальную операцию. Тип результата: bool Функция позволяет проверить имеет ли право пользователь выполнять те или иные глобальные действия, например, создавать пользователей.
-
cerebro.core.
has_perm_message
(message_id, perm_type)[исходный код]¶ Параметры: - message_id (int) – идентификатор сообщения.
- perm_type (int) –
тип действия с сообщением
, требующей разрешения.
Результат: True, если текущий пользователь имеет разрешение на операцию с сообщением.
Тип результата: Функция позволяет проверить имеет ли право пользователь выполнять те или иные действия с сообщением, например, переключить видимость для клиента.
-
cerebro.core.
has_perm_task
(task_id, perm_type)[исходный код]¶ Параметры: - task_id (int) – идентификатор задачи.
- perm_type (int) –
тип действия с задачей
, требующей разрешения.
Результат: True, если текущий пользователь имеет разрешение на операцию с задачей.
Тип результата: Функция позволяет проверить имеет ли право пользователь выполнять те или иные действия с задачей, например, редактировать теги ли создавать к этой задаче подзадачи.
task = cerebro.core.current_task() if cerebro.core.has_perm_task(task.id(), cerebro.aclasses.Perm.PERM_TASK_BUDGET): task.set_budget(100)
-
cerebro.core.
is_logon
()[исходный код]¶ Результат: True, если Cerebro в онлайне.
-
cerebro.core.
message
(message_id)[исходный код]¶ Параметры: message_id (int) – идентификатор сообщения. Результат: сообщение по его идентификатору. Тип результата: cerebro.aclasses.Message
-
cerebro.core.
notify_user
(message, task_id=None, is_show_box=True)[исходный код]¶ Параметры: Уведомляет пользователя приложения. Если is_show_box = True, при активации пользователем уведомления будет показано окно с сообщением уведомления. Если задан идентификатор задачи, то при активации пользователем уведомления произойдет переход на неё.
cerebro.core.notify_user('Эта задача начнется через 5 минут', task.id())
-
cerebro.core.
print_debug
(level, text)[исходный код]¶ Параметры: level (int) – уровень отладочной информации. Печатает отладочную информацию в консоль Cerebro.
Отладочная информация не выводится в консоль Cerebro, если level больше, чем настроен в Cerebro (Главное меню/Cerebro Serpens/Настройки).
См.также
-
cerebro.core.
print_error
(text)[исходный код]¶ Печатает ошибку в консоль Cerebro.
См.также
-
cerebro.core.
print_info
(text)[исходный код]¶ Печатает информацию в консоль Cerebro.
См.также
-
cerebro.core.
print_warning
(text)[исходный код]¶ Печатает предупреждение в консоль Cerebro.
См.также
-
cerebro.core.
python_api_dir
()[исходный код]¶ Результат: путь до директории py-frontend, в которой лежат модули программного интерфейса. Тип результата: string См.также
-
cerebro.core.
refresh_all
()[исходный код]¶ Обновляет все данные в Cerebro.
Если вы производите масштабные изменения данных, не забывайте вызывать эту функцию для обновления всех закешированных данных в приложении Cerebro.
См.также
-
cerebro.core.
refresh_tasks
()[исходный код]¶ Обновляет дерево задач в Cerebro.
Если вы производите добавление задач или изменение их свойств, добавление/изменение сообщений, не забывайте вызывать эту функцию для обновления дерева задач в интерфейсе. Исключением являются функции обработки событий. Изменения, которые были произведены в этих функцях, обновляются автоматически.
tasks = cerebro.core.selected_tasks() for task in tasks: task.set_progress(100) cerebro.core.refresh_tasks()
См.также
-
cerebro.core.
root_tasks
()[исходный код]¶ Результат: список корневых задач. Тип результата: list( cerebro.aclasses.Task
,)См.также
-
cerebro.core.
selected_attachments
()[исходный код]¶ Результат: список выделенных вложений в окнах вложений (Поиск, Форум), на которых вызван пользовательский пункт меню. Тип результата: list( cerebro.aclasses.Attachment
,)См.также
-
cerebro.core.
selected_messages
()[исходный код]¶ Результат: выделенные пользователем сообщения при активации a user’s menu item is activated. Тип результата: list( cerebro.aclasses.Message
,)Список выделенных сообщений включает текущее сообщение.
def example_message_menu(): print('Calling example_message_menu by click on "My Forum menu item"') # Получаем выделенные сообщения messages = cerebro.core.selected_messages() if messages: for message in messages: print('Current message:', message.text_as_plain())
См.также
-
cerebro.core.
selected_tasks
()[исходный код]¶ Результат: список выбранных(выделенных) задач в графическом интерфейсе Cerebro. Тип результата: list( cerebro.aclasses.Task
,)def example_task_menu(): print('Вызов example_task_menu по клику пункта меню "Мой пункт меню"') # Получаем выделенные задачи tasks = cerebro.core.selected_tasks() print('Выделенные задачи', len(tasks))
См.также
-
cerebro.core.
set_current_task
(task_id)[исходный код]¶ Параметры: task_id (int) – идентификатор задачи. Устанавливает в графическом интерфейсе Cerebro текущую задачу по её идентификатору.
current_task = cerebro.core.current_task() tasks = cerebro.core.task_children(current_task.id()) if len(tasks) > 0: cerebro.core.set_current_task(tasks[0].id()) # устанавливаем новой текущей задачей первую подзадачу текущей задачи
См.также
-
cerebro.core.
start_timer
(function, interval)[исходный код]¶ Запускает таймер, который каждый раз по прошествии интервала времени будет запускать функцию function.
Параметры: Формат аргумента function:
'имя_модуля.имя_функции'
Если ваш модуль лежит в пакете, то формат будет:
'имя_пакета.имя_модуля.имя_функции'
Предупреждение
sys.path должен содержать путь поиска вашего модуля/пакета.
# файл logon.py # модуль logon import cerebro import examples # Функция, в которой происходит обработка входа в Cerebro def logon(): examples.logon.logon() # вызываем пример обработки входа
# файл examples/logon.py # пакет examples # модуль logon import cerebro def logon(): # Запуск таймера на вызов функции example_timer cerebro.core.start_timer('examples.logon.example_timer', 1000) # запуск таймера каждую секунду def example_timer(): print('Вызов example_timer по таймеру')
Для остановки таймера вызовите
cerebro.core.stop_timer()
.См.также
-
cerebro.core.
statuses
()[исходный код]¶ Результат: статусы. Тип результата: cerebro.aclasses.Statuses
-
cerebro.core.
stop_timer
(function)[исходный код]¶ Останавливает таймер, который запускает функцию function.
Параметры: function (string) – функция, которая была передана в cerebro.core.start_timer()
при запуске таймера.# файл logoff.py # модуль logoff import cerebro import examples # Функция, в которой происходит обработка завершения сеанса Cerebro def logoff(): examples.logoff.logoff() # вызываем пример обработки завершения сеанса Cerebro return True
# файл examples/logoff.py # пакет examples # модуль logoff import cerebro def logoff(): # Останавливаем таймер на вызов функции example_timer, запущенный при входе в Cerebro cerebro.core.stop_timer('examples.logon.example_timer') print('Таймер на вызов example_timer остановлен')
См.также
-
cerebro.core.
task
(task_id)[исходный код]¶ Параметры: task_id (int) – идентификатор задачи. Результат: задача по её идентификатору. Тип результата: cerebro.aclasses.Task
-
cerebro.core.
task_children
(task_id, with_references=False)[исходный код]¶ Параметры: Результат: список подзадач задачи с идентификатором task_id.
Тип результата: list(
cerebro.aclasses.Task
,)Если with_references = True, то возвратится список вместе с ссылками на задачи, иначе без них. Если подзадач нет, возвратится None.
if cerebro.core.has_flag(task.flags(), task.FLAG_HAS_CHILD): # проверка на наличие подзадач children = cerebro.core.task_children(task.id())
См.также
-
cerebro.core.
to_do_task_list
(user_id, with_done_task)[исходный код]¶ Параметры: Результат: список задач на которых пользователь назначен исполнителем.
Тип результата: list(
cerebro.aclasses.Task
,)Если with_done_task = True, то возвратится список вместе с выполненными(у которых прогресс 100%) задачами, иначе без них.
# Получаем все невыполненные задачи текущего пользователя current_user = cerebro.core.user_profile() tasks = cerebro.core.to_do_task_list(current_user[cerebro.aclasses.Users.DATA_ID], False)
-
cerebro.core.
user_profile
()[исходный код]¶ Результат: профиль пользователя. Тип результата: tuple. Данные кортежа
описаны в классеcerebro.aclasses.Users
.profile = cerebro.core.user_profile() print('e-mail пользователя', profile[cerebro.aclasses.Users.DATA_EMAIL])
-
cerebro.core.
users
()[исходный код]¶ Результат: пользователи. Тип результата: cerebro.aclasses.Users
-
cerebro.core.
version_app
()[исходный код]¶ Результат: версии сборки приложения. Тип результата: string
-
cerebro.core.
version_python_api
()[исходный код]¶ Результат: версия программного интерфейса. Тип результата: string