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.Attachmentdef 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.Taskdef 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