Модуль cerebro.aclasses содержит описание типов (классов) данных, используемых при работе с программным интерфейсом.
classcerebro.aclasses.AbstractAttachment(event_id, message_id, attach_id)
Базовый класс вложения. Имеет основной функционал для доступа к свойствам вложения.
DATA_= ''
DATA_COMMENT= 7 | Текстовый комментарий. Тип string. |
DATA_EVENT_ID= 1 | Идентификатор сообщения. Тип int. |
DATA_FILE_HASH= 10 | Хеш файла. Тип string. |
DATA_FILE_PATH= 8 | Путь до файла. Тип string. |
DATA_FILE_SIZE= 5 | Размер вложения в байтах. Тип int. |
DATA_GROUP_ID= 2 | Идентификатор вложения. Тип int. |
DATA_HAS_REVIEW= 4 | Наличие рецензии. 0 - нет, 1 - есть. |
DATA_IS_LINK= 3 | Тип вложения: 0 - файл, 1 - ссылка. |
DATA_MTM= 0 | Время модификации данных. Тип datetime. |
DATA_NAME= 6 | Имя вложения. Тип string. |
DATA_REVIEW_HASH= 11 | Хеш файла рецензии. Тип string. |
DATA_REVIEW_PATH= 9 | Путь до файла рецензии. Тип string. |
DATA_THUMB1_HASH= 12 | Хеш первого эскиза. Тип string. |
DATA_THUMB2_HASH= 13 | Хеш второго эскиза. Тип string. |
DATA_THUMB3_HASH= 14 | Хеш третьего эскиза. Тип string. |
comment()
Результат: | текстовый комментарий к вложению. |
Тип результата: | string |
file_path()
Результат: | путь до файла. Может отсутствовать, если файла нет в файловом хранилище. В этом случае возвратится пустая строка. |
Тип результата: | string |
file_size()
Результат: | размер файла в байтах. В случае ссылки возвращает 0. |
Тип результата: | int |
has_review()
Результат: | True, если вложение имеет рецензию (аудио-визуальные комментарии). |
Тип результата: | bool |
hashtags(hashtags)
Результат: | Возвращает список хэштегов. |
Тип результата: | list(string, ) |
is_link()
Результат: | True, если вложение является ссылкой. |
Тип результата: | bool |
name()
Результат: | имя вложения. В случае ссылки возвращает полный путь до файла. |
Тип результата: | string |
review_path()
Результат: | путь до файла рецензии (аудио-визуальных комментариев). Может отсутствовать, если файла нет в файловом хранилище. В этом случае возвратится пустая строка. |
Тип результата: | string |
classcerebro.aclasses.AbstractMessage(event_id, message_id)
Базовый класс сообщения. Имеет основной функционал для доступа к свойствам сообщения.
DATA_= ''
DATA_APPROVED_TIME= 8 | Принятое время в минутах. |
DATA_CREATED= 5 | Время создания сообщения. Тип datetime. |
DATA_CREATOR_ID= 13 | Идентификатор автора сообщения. |
DATA_CREATOR_NAME= 4 | Имя автора сообщения. |
DATA_FLAGS= 9 | Флаги сообщения. |
DATA_ID= 1 | Идентификатор сообщения. |
DATA_MODERATOR_ID= 14 | Идентификатор пользователя, изменившего сообщение. |
DATA_MODERATOR_NAME= 10 | Имя пользователя, изменившего сообщение. |
DATA_MTM= 0 | Время модификации данных. Тип datetime. |
DATA_PID= 2 | Идентификатор родительского сообщения. |
DATA_TEXT= 7 | Текст сообщения в формате html. |
DATA_TID= 11 | Идентификатор задачи, к которой относится сообщение. |
DATA_TYPE= 3 | Тип сообщения. |
DATA_WORK_TIME= 6 | Рабочее время в минутах. |
DATA_XMTM= 12 | Реальное время модификации данных. Тип datetime. |
FLAG_= ''
FLAG_APPROVED= 1 | Сообщение принято (Отчет принят). |
FLAG_CLIENT_VISIBLE= 0 | Сообщение видимо для клиентов. |
TYPE_= ''
TYPE_CLIENT_REVIEW= 4 | Рецензия клиента. |
TYPE_DEFINITION= 0 | Постановка задачи. |
TYPE_NOTE= 3 | Заметка. |
TYPE_REPORT= 2 | Отчет. |
TYPE_RESOURCE_REPORT= 5 | Отчет за ресурс. |
TYPE_REVIEW= 1 | Рецензия. |
TYPE_STATUS_CHANGES= 6 | Сообщение об изменении статуса задачи. |
approved_time()
Результат: | принятое время сообщения в минутах. Если сообщение типа Отчет или Отчет за ресурс, то это принятое время отчета. Для остальных типов это значение равно 0. |
Тип результата: | int |
hashtags(hashtags)
Результат: | Возвращает список хештегов. |
Тип результата: | list(string, ) |
is_approved()
Результат: | True, если тип сообщения Отчет или Отчет за ресурс и он помечен как принятый. У такого отчета заявленное время равно принятому. |
Тип результата: | bool |
if message.is_approved() == True:
print('work_time == approved_time', message.work_time() == message.approved_time())
is_client_visible()
Результат: | True, если сообщение помечено как видимое для клиентов. |
Тип результата: | bool |
parent_message_id()
Результат: | идентификатор родительского сообщения указывает на сообщение, на которое оно отвечает. В случае сообщений типа Постановка задачи обычно идентификатор родительского сообщения равен 0, что означает отсутствие родительского сообщения у постановки задачи. |
Тип результата: | int |
if message.type() != message.TYPE_DEFINITION:
parent_id = message.parent_message_id()
print('Родительское сообщение', cerebro.core.message(parent_id).text_as_plain())
posted_time()
Результат: | время создания сообщения. |
Тип результата: | datetime |
task_id()
Результат: | идентификатор задачи, к которой относится сообщение. |
Тип результата: | int |
text_as_html()
Результат: | текст сообщения в формате html. |
Тип результата: | string |
text_as_plain()
Результат: | текст сообщения в формате простого текста. |
Тип результата: | string |
type()
Результат: | тип сообщения. |
Тип результата: | int |
if message.type() == message.TYPE_REPORT:
print('Рабочее время отчета', message.work_time())
work_time()
Результат: | рабочее время сообщения в минутах. Если сообщение типа Отчет или Отчет за ресурс, то это заявленное время отчета. Если тип сообщения Рецензия, то это принятое время за предыдущий отчет. Для остальных типов это значение равно 0. |
Тип результата: | int |
classcerebro.aclasses.Activities
Класс видов деятельности.
activities = cerebro.core.activities()
DATA_= ''
DATA_COLOR= 2 | Цвет вида деятельности. Формат RGB представлен целым числом. |
DATA_ID= 0 | Идентификатор вида деятельности. |
DATA_NAME= 1 | Имя вида деятельности. |
data()
Результат: | список кортежей данных по видам деятельности. |
Тип результата: | list(tuple,) |
classcerebro.aclasses.AbstractTag(tag_id)
Базовый класс тега задачи.
Примечание
Теги используются в Cerebro как дополнительные свойства задач. При назначении тега на проект он автоматически становится свойством задачи. В процесссе работы с задачами теги заполняются значениями.
TYPE_= ''
TYPE_ENUM= 1 | Перечисление. |
TYPE_INTEGER= 0 | Целочисленный тип. |
TYPE_MULTI_ENUM= 4 | Множественное перечисление. |
TYPE_REAL= 2 | Вещественное число. |
TYPE_STRING= 3 | Строка. |
elements()
Результат: | список возможных элементов перечесления. Если тип тега не перечисление либо множественное перечисление, возвращается None. |
Тип результата: | [(element_id, element_name),] - список кортежей из двух полей: идентификатор элемента перечисления, имя перечисления |
id()
Результат: | идентификатор тега. |
Тип результата: | int |
name()
Результат: | имя тега. |
Тип результата: | string |
type()
Результат: | тип тега. |
Тип результата: | int |
classcerebro.aclasses.Attachment(message_id, attach_id)
Базовые классы: cerebro.aclasses.AbstractAttachment
Класс вложения.
attach = cerebro.core.current_attachment()
attachs = message.attachments()
add_hashtags(hashtags)
Параметры: | hashtags (string, set(string, ) или list(string, )) – хэштег или массив хэштегов (каждый хэштег должен быть одним словом без пробелов). |
См.также
data()
Результат: | кортеж данных по вложению. |
Тип результата: | tuple |
attach.file_hash() == attach.data()[attach.DATA_FILE_HASH]
attach.is_link() == (attach.data()[attach.DATA_IS_LINK] != 0)
# и так далее
file_hash()
Результат: | хеш файла. |
Тип результата: | string |
if attach.is_link() != True: # проверяем, что вложение не является линком
# Скачивание вложения
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())
Если вложение является линком, у него нет хеша, поскольку вложения добавленные как линки не добавляются в файловое хранилище Cargador.
id()
Результат: | идентификатор вложения. |
Тип результата: | int |
message_id()
Результат: | идентификатор сообщения, к которому принодлежит вложение. |
Тип результата: | int |
remove_hashtags(hashtags)
Параметры: | hashtags (string, set(string, ) или list(string, )) – хэштег или массив хэштегов (каждый хэштег должен быть одним словом без пробелов). |
См.также
review_hash()
Результат: | хеш рецензии файла (аудио-визуальных комментариев). |
Тип результата: | string |
set_comment(comment)
Параметры: | comment (string) – комментарий к вложению. |
new_attachs = event.new_attachments()
for attach in new_attachs:
if attach.is_link() == True: # если новое вложение добавлено как линк
attach.set_comment(i.comment() + '. Это линк') # добавим комментарий
thumbnail_hashs()
Результат: | список хешей уменшеных эскизов файла. |
Тип результата: | list(string,) |
classcerebro.aclasses.NewAttachment(event_id, message_id, attach_id)
Базовые классы: cerebro.aclasses.AbstractAttachment
Класс нового вложения.
Объекты данного класса используются в событии cerebro.events.BeforeEventMessage в методе new_attachments().
def before_event(event):
evtype = event.event_type()
if evtype == event.EVENT_CREATION_OF_MESSAGE or evtype == event.EVENT_CHANGING_OF_MESSAGE:
new_attachs = event.new_attachments()
for attach in new_attachs:
print(attach.name())
add_hashtags(hashtags)
Параметры: | hashtags (string, set(string, ) или list(string, )) – хэштег или массив хэштегов (каждый хэштег должен быть одним словом без пробелов). |
См.также
remove_hashtags(hashtags)
Параметры: | hashtags (string, set(string, ) или list(string, )) – хэштег или массив хэштегов (каждый хэштег должен быть одним словом без пробелов). |
Удаляет хэштеги из вложения.
См.также
set_comment(comment)
Параметры: | comment (string) – комментарий к вложению. |
new_attachs = event.new_attachments()
for attach in new_attachs:
if attach.is_link() == True: # если новое вложение добавлено как линк
attach.set_comment(i.comment() + '. Это линк') # добавим комментарий
set_name(name)
Параметры: | name (string) – имя вложения. |
new_attachs = event.new_attachments()
for attach in new_attachs:
if attach.is_link() != True: # если новое вложение добавлено как файл
attach.set_name('Вложение - ' + i.name()) # изменим имя
classcerebro.aclasses.Message(message_id)
Базовые классы: cerebro.aclasses.AbstractMessage
Класс сообщения.
message = cerebro.core.current_message()
message = cerebro.core.message(message_id)
add_hashtags(hashtags)
Параметры: | hashtags (string, set(string, ) или list(string, )) – хештег или массив хештегов (каждый хештег должен быть одним словом без пробелов). |
См.также
attachments()
Результат: | список вложений в сообщение. |
Тип результата: | list( cerebro.aclasses.Attachment ) |
creator_id()
Результат: | идентификатор автора сообщения. |
Тип результата: | int |
data()
Результат: | кортеж данных по сообщению. |
Тип результата: | tuple |
По сути, большинство методов данного класса являются обёртками к этому кортежу. Поэтому вы можете пользоваться напрямую данными из него.
message.creator_id() == message.data()[message.DATA_CREATOR_ID]
message.is_client_visible() == cerebro.core.has_flag(message.data()[message.DATA_FLAGS], message.FLAG_CLIENT_VISIBLE)
# и так далее
id()
Результат: | идентификатор сообщения. |
Тип результата: | int |
moderator_id()
Результат: | идентификатор пользователя, изменившего сообщение. |
Тип результата: | int |
modification_time()
Результат: | время изменения сообщения. |
Тип результата: | datetime |
remove_hashtags(hashtags)
Параметры: | hashtags (string, set(string, ) или list(string, )) – хештег или массив хештегов (каждый хештег должен быть одним словом без пробелов). |
См.также
classcerebro.aclasses.Perm
Класс прав доступа.
Для тех или иных операций с объектами в системе Cerebro, будь то создание, редактирование свойств задачи или сообщения, создание проектов или пользователей, требуются права доступа.
Здесь описаны типы операций требующие разрешения.
Для проверки разрешений воспользуйтесь функциями модуля cerebro.core:
PERM_GLOBAL_= ''
PERM_GLOBAL_FILE_STORAGES= 60 | Управление файловыми хранилищами. Позволяет задавать возможные файловые хранилища. |
PERM_GLOBAL_MATERIAL_RESOURCES= 56 | Управление материальными ресурсами. Позволяет создавать и удалять материальные ресурсы. |
PERM_GLOBAL_SALARIES_AND_WORKING_SCHEDULES= 59 | Управление зарплатой и рабочими расписаниями. Позволяет задавать пользователям ставку и рабочие расписания. |
PERM_GLOBAL_TAGS_AND_ACTIVITIES= 61 | Управление тегами и видами деятельности. Позволяет создавать и удалять теги и виды деятельности. |
PERM_GLOBAL_USERS= 62 | Управление пользователями. Позволяет создавать пользователей, группы, роли и настраивать видимость людей друг друга. |
PERM_MESSAGE_= ''
PERM_MESSAGE_EDITABLE= 3 | Позволяет редактировать текст и вложения сообщения. А также удалить сообщение. |
PERM_MESSAGE_PROPERTIES= 16 | Позволяет редактировать такие свойства сообщения, как Видимость для клиента и Подтверждение отчета. |
PERM_TASK_= ''
PERM_TASK_ANY_MESSAGE= 10 | Редактирование любого сообщения. Позволяет редактировать сообщения других пользователей, даже если на них уже есть ответ. |
PERM_TASK_BUDGET= 30 | Редактирование бюджета задачи. Позволяет редактировать бюджет задачи. |
PERM_TASK_CREATE_CLIENT_REVIEW= 26 | Создание рецензии клиента. Позволяет создавать сообщения типа Рецензия клиента. |
PERM_TASK_CREATE_DEFINITION= 18 | Создание постановки задачи. Позволяет создавать сообщения типа Постановка задачи. |
PERM_TASK_CREATE_NOTE= 24 | Создание заметки. Позволяет создавать сообщения типа Заметка. |
PERM_TASK_CREATE_REPORT= 20 | Создание отчета. Позволяет создавать сообщения типа Отчет и Отчет за ресурс. |
PERM_TASK_CREATE_REVIEW= 22 | Создание рецензии. Позволяет создавать сообщения типа Рецензия. |
PERM_TASK_LAST_MESSAGE= 34 | Редактирование последнего сообщения. Позволяет редактировать сообщения других пользователей, если на них еще нет ответа. |
PERM_TASK_MANAGMENT= 6 | Управление задачами. Позволяет удалять и создавать задачи. |
PERM_TASK_MESSAGES_PROPERTIES= 16 | Редактирование свойств сообщения. Позволяет редактировать такие свойства сообщений, как Видимость для клиента и Подтверждение отчета. |
PERM_TASK_PROGRESS= 32 | Редактирование прогресса задачи. Позволяет редактировать прогресс задачи, но не позволяет его выставить в 100%. |
PERM_TASK_PROPERTIES= 8 | Редактирование свойств задачи. Позволяет редактировать почти все свойства задачи, кроме тегов и бюджета. |
PERM_TASK_TAG= 14 | Редактирование тегов задачи. Позволяет редактировать теги задачи. |
classcerebro.aclasses.Statuses
Класс статусов.
statuses = cerebro.core.statuses()
DATA_= ''
DATA_COLOR= 6 | Цвет статуса. Формат RGB представлен целым числом. |
DATA_DESCRIPTION= 4 | Описание статуса. |
DATA_FLAGS= 2 | Флаги статуса. |
DATA_ICON= 5 | Иконка статуса. Формат иконки XPM. |
DATA_ID= 0 | Идентификатор статуса. |
DATA_NAME= 1 | Имя статуса. |
DATA_ORDER= 3 | Порядковый номер статуса. |
FLAG_= ''
FLAG_INHERITABLE= 1 | Является наследуемым. |
TYPE_= ''
TYPE_IS_IN_PROGRESS= 1 | Задача выполняется. |
TYPE_IS_STOPPED= 2 | Задача остановлена. |
TYPE_IS_SUSPENDED= 0 | Задача приостановлена. |
data()
Результат: | список кортежей данных по всем статусам. |
Тип результата: | list(tuple,) |
См. также:
inheritable(status_flags)
Параметры: | status_flags (int) – значение флагов статуса. |
Результат: | True, если флаг установлен как наследуемый. |
Тип результата: | bool |
Пример выборки статусов, которые можно установить задачам-контейнерам:
inherit_statuses = list()
statuses = cerebro.core.statuses()
for status in statuses.data():
if cerebro.aclasses.Statuses.inheritable(status[statuses.DATA_FLAGS]) == True:
inherit_statuses.append(status)
type(status_flags)
Параметры: | status_flags (int) – значение флагов статуса. |
Результат: | тип статуса. |
Тип результата: | int |
classcerebro.aclasses.Tag(task_id, tag_id)
Базовые классы: cerebro.aclasses.AbstractTag
Класс тега задачи.
Примечание
Теги используются в Cerebro, как дополнительные свойства задач. При назначении тега на проект, он автоматически становится свойством задачи. В процессе работы с задачами теги заполняются значениями.
tags = task.tags()
for tag in tags:
print('Тег задачи', tag.name(), tag.value())
set_value(val)
Устанавливает значение тега. Значение None переводит значение тега в не задано.
В зависимости от типа тега устанавливаются значения различных типов:
if tag.type() == tag.TYPE_INTEGER: # целочисленный тип
tag.set_value(int)
elif tag.type() == tag.TYPE_ENUM: # тип перечисление
tag.set_value(element_id) # идентификатор элемента перечисления
elif tag.type() == tag.TYPE_REAL: # вещественное число
tag.set_value(float)
elif tag.type() == tag.TYPE_STRING: # строка
tag.set_value(string)
elif tag.type() == tag.TYPE_MULTI_ENUM: # тип множественное перечисление
tag.set_value([element_id,]) # список идентификаторов элементов перечисления
Сбрасывание значения тега:
if tag.value() != None:
tag.set_value(None)
При работе с тегами типов перечисление и множественное перечисление, идентификаторы для установки значения берутся из списка элементов elements() .
elems = tag.elements()
if len(elems) > 0: # для типа перечисление
tag.set_value(elems[0][0])
if len(elems) > 1: # для типа множественное перечисление.
# Устанавливается два элемента
elems_to_set = [ elems[0][0], elems[1][0] ]
tag.set_value(elems_to_set)
См.также
task_id()
Результат: | идентификатор задачи. |
Тип результата: | int |
value()
Результат: | значение тега. Если значение тега не задано, возвращается None. |
if tag.type() == tag.TYPE_INTEGER: # целочисленный тип
return int
elif tag.type() == tag.TYPE_ENUM: # тип перечисление
return (element_id, element_name) # кортеж из двух полей: идентификатор элемента перечисления, имя перечисления
elif tag.type() == tag.TYPE_REAL: # вещественное число
return float
elif tag.type() == tag.TYPE_STRING: # строка
return string
elif tag.type() == tag.TYPE_MULTI_ENUM: # тип множественное перечисление
return [(element_id, element_name),] # список кортежей из двух полей: идентификатор элемента перечисления, имя перечисления
См.также
classcerebro.aclasses.Task(task_id)
Класс задачи.
task = cerebro.core.current_task()
task = cerebro.core.task(task_id)
tasks = cerebro.core.selected_tasks(task_id)
ALLOCATED_= ''
ALLOCATED_FLAGS= 2 | Флаги пользователя. Флаги пользователя описаны в классе cerebro.aclasses.Users. |
ALLOCATED_ID= 0 | Идентификатор пользователя. |
ALLOCATED_NAME= 1 | Полное имя пользователя. |
DATA_= ''
DATA_ACTIVITY_ID= 6 | Идентификатор вида деятельности. |
DATA_ACTIVITY_NAME= 5 | Имя вида деятельности. |
DATA_ALLOCATED= 20 | Назначенные пользователи (исполнители) на задачу. Тип string. Разделитель „;“. |
DATA_BUDGET= 29 | Бюджет задачи с её подзадачами. |
DATA_CREATED= 9 | Время создания задачи. Тип datetime. |
DATA_CREATOR_ID= 18 | Идентификатор автора задачи. |
DATA_DURATION= 22 | Рассчитанная длительность задачи в календарных днях. Тип float. |
DATA_FLAGS= 16 | Флаги задачи. |
DATA_HUMAN_FINISH= 26 | Заданное время окончания задачи в днях от 01.01.2000. Тип float. |
DATA_HUMAN_START= 25 | Заданное время начала задачи в днях от 01.01.2000. Тип float. |
DATA_ID= 1 | Идентификатор задачи. |
DATA_MODERATOR_ID= 17 | Идентификатор пользователя, изменившего задачу. |
DATA_MODIFIED= 19 | Время изменения задачи. Тип datetime. |
DATA_MTM= 0 | Время модификации данных. Тип datetime. |
DATA_NAME= 3 | Имя задачи. |
DATA_OFFSET= 21 | Рассчитанное время начала задачи в днях от 01.01.2000. Тип float. |
DATA_PARENT_ID= 2 | Идентификатор родительской задачи. |
DATA_PARENT_URL= 4 | Полный путь до родителькой задачи. Пример: /Test project/Scene 1/. |
DATA_PLANNED= 12 | Запланированное время на задачу в часах. Тип float. |
DATA_PRIORITY= 10 | Приоритет. |
DATA_PRIVILEGE= 24 | Права доступа текущего пользователя к задаче. Тип int. |
DATA_PROGRESS= 11 | Прогресс. Тип float от 0.0 до 100.0. |
DATA_PROJECT_ID= 23 | Идентификатор проекта задачи. |
DATA_RESOURCE_APPROVED= 34 | Принятое время материальных ресурсов по задаче с её подзадачами в часах. Тип float. |
DATA_RESOURCE_DECLARED= 33 | Заявленное время материальных ресурсов по задаче с её подзадачами в часах. Тип float. |
DATA_RESOURCE_SELF_APPROVED= 32 | Принятое время материальных ресурсов по задаче в минутах. Тип float. |
DATA_RESOURCE_SELF_DECLARED= 31 | Заявленное время материальных ресурсов по задаче в минутах. Тип float. |
DATA_SELF_BUDGET= 27 | Бюджет задачи. |
DATA_SELF_SPENT= 28 | Затраты (сумма платежи) по задаче. |
DATA_SELF_USERS_APPROVED= 8 | Принятое время пользователей по задаче в минутах. Тип float. |
DATA_SELF_USERS_DECLARED= 7 | Заявленное время пользователей по задаче в минутах. Тип float. |
DATA_SPENT= 30 | Затраты (сумма платежей) по задаче с её подзадачами. |
DATA_STATUS_ID= 35 | Идентификатор статуса. |
DATA_THUMBS= 15 | Хеши эскизов. Тип string. Разделитель „;“. |
DATA_USERS_APPROVED= 14 | Принятое время пользователей по задаче и её подзадачам в часах. Тип float. |
DATA_USERS_DECLARED= 13 | Заявленное время пользователей по задаче и её подзадачам в часах. Тип float. |
FLAG_= ''
FLAG_ASSIGNED= 38 | Текуший пользователь является исполнителем на задаче. |
FLAG_CLOSED= 2 | Задача закрыта. |
FLAG_CLOSED_EFFECTIVE= 30 | Задача закрыта, поскольку закрыта задача более верхнего уровня. |
FLAG_DELETED= 0 | Задача удалена. |
FLAG_FORUM_LOCKED= 5 | Форум задачи только для чтения. |
FLAG_HAS_CHILD= 32 | Задача имеет подзадачи. |
FLAG_HAS_MESSAGES= 33 | Задача имеет сообщения в форуме. |
FLAG_HAS_PLANNED= 56 | Задача имеет собственное запланированное время. |
FLAG_HAS_PROGRESS= 59 | Задача имеет собственный прогресс. |
FLAG_HAS_REFERENCE= 62 | На задачу имеется одна или несколько ссылок. |
FLAG_HAS_SUB_PERMS= 35 | На задаче установленны собственные права доступа |
FLAG_INTEREST= 39 | Текуший пользователь следит за задачей. |
FLAG_IS_REFERENCE= 61 | Задача является ссылкой. |
FLAG_LAST_EV_APPROVED= 45 | Последнее сообщение в задаче принято. |
FLAG_LAST_EV_CLIENT_VIS= 44 | Последнее сообщение в задаче видимо для клиентов. |
FLAG_NEED_ANSWER= 34 | Задача требует ответа (в соответствии с правами доступа текущего пользователя). |
FLAG_PERM_INHERIT_BLOCK= 1 | У задачи сброшено наследование прав доступа. |
FLAG_SUSPENED= 4 | Задача остановлена (на паузе). |
FLAG_SUSPENED_EFFECTIVE= 31 | Задача остановлена, поскольку остановлена задача более верхнего уровня. |
FLAG_TASK_AS_EVENT= 3 | Задача помечена как событие. |
PAYMENT_= ''
PAYMENT_COMMENT= 7 | Текстовый комментарий к платежу. |
PAYMENT_FLAGS= 4 | Флаги платежа. |
PAYMENT_ID= 2 | Идентификатор платежа. |
PAYMENT_MONEY= 5 | Сумма платежа в условных единицах. |
PAYMENT_MTM= 0 | Время модификации данных. Тип datetime. |
PAYMENT_RECORD_TIME= 6 | Время записи о платеже. Тип datetime. |
PAYMENT_TASK_ID= 3 | Идентификатор задачи. |
PAYMENT_USER_ID= 1 | Идентификатор пользователя, совершившего платеж. |
PAYMENT_FLAG_= ''
PAYMENT__FLAG_CANCEL= 1 | Платеж отменен. |
PRIORITY_= ''
PRIORITY_ABOVE_NORMAL= 1 | Выше нормального. |
PRIORITY_BELOW_NORMAL= -1 | Ниже нормального. |
PRIORITY_CRITICAL= 3 | Критичный. |
PRIORITY_HIGH= 2 | Высокий. |
PRIORITY_LOW= -2 | Низкий. |
PRIORITY_NORMAL= 0 | Нормальный. |
activity()
Результат: | вид деятельности задачи. „(0,“„)“ означает, что вид деятельности задачи не задан. |
Тип результата: | tuple(activity_id, activity_name) - кортеж из двух полей: идентификатор вида деятельности, имя вида деятельности. |
См.также
add_hashtags(hashtags)
Параметры: | hashtags (string, set(string, ) или list(string, )) – хэштег или массив хэштегов (каждый хэштег должен быть одним словом без пробелов). |
См.также
allocated()
Результат: | список кортежей данных по аллоцированным пользователям (исполнителям) на задачу. |
Тип результата: | list(tuple,) |
for user in task.allocated():
if cerebro.aclasses.Users.is_resource(user[task.ALLOCATED_FLAGS]) == True:
print('На задачу назначен ресурс', user[task.ALLOCATED_NAME])
См.также
budget()
Результат: | бюджет задачи в условных единицах. . |
Тип результата: | float |
См.также
creation_time()
Результат: | время создания задачи. |
Тип результата: | datetime |
creator_id()
Результат: | идентификатор автора задачи. |
Тип результата: | int |
data()
Результат: | кортеж данных по задаче. |
Тип результата: | tuple |
task.creator_id() == task.data()[task.DATA_CREATOR_ID]
task.priority() == task.data()[task.DATA_PRIORITY]
# и так далее
finish()
Результат: | время окончания задачи. |
Тип результата: | datetime |
См.также
flags()
Результат: | флаги задачи. |
Тип результата: | int |
if cerebro.core.has_flag(task.flags(), task.FLAG_FORUM_LOCKED): # проверка на залоченый форум задачи
return
См.также
hashtags()
Результат: | список хэштегов задачи. |
Тип результата: | list(string,) |
for ht in task.hashtags():
print('Hashtag:', ht)
См.также
id()
Результат: | идентификатор задачи. |
Тип результата: | int |
moderator_id()
Результат: | идентификатор пользователя, изменившего задачу. |
Тип результата: | int |
modification_time()
Результат: | время изменения задачи. |
Тип результата: | datetime |
name()
Результат: | имя задачи. |
Тип результата: | string |
См.также
parent_id()
Результат: | идентификатор родительской задачи. |
Тип результата: | int |
parent_url()
Результат: | полный путь до родителькой задачи. Пример: „/Test project/Scene 1/“. |
Тип результата: | string |
payments()
Результат: | список кортежей данных по платежам задачи. |
Тип результата: | list(tuple,) |
for pay in task.payments():
if pay[task.PAYMENT_MONEY] > 1000 and cerebro.core.has_flag(pay[task.PAYMENT_FLAGS], task.PAYMENT__FLAG_CANCEL)==True:
cerebro.core.print_warning('Платеж по задаче больше 1000 бфл отменен', task.name())
planned_time()
Результат: | запланированное время на задачу в часах. |
Тип результата: | float |
См.также
possible_statuses()
Результат: | список кортежей данных по статусам, которые можно установить задаче. |
Тип результата: | list(tuple,) |
В системе Cerebro для каждого статуса настраиваются разрешения на переключение для каждого статуса. Кроме того, у каждого статуса есть флаг наследственности. На задачи-контейнеры можно устанавливать только те статусы, у которых включен этот флаг. Поэтому список возможных статусов зависит от прав пользователя, текущего статуса, а так же наличия/отсутсвия подзадач у задачи.
Пример определения возможности установить задаче статус completed:
possible_statuses = task.possible_statuses()
for status in possible_statuses:
if status[cerebro.aclasses.Statuses.DATA_NAME] == 'completed':
task.set_status(status[cerebro.aclasses.Statuses.DATA_ID])
break
См.также
priority()
Результат: | приоритет задачи. |
Тип результата: | int |
if task.priority() == task.PRIORITY_CRITICAL:
cerebro.core.print_warning('Задача критичного приоритета', task.name())
См.также
progress()
Результат: | прогресс задачи от 0.0 до 100.0. |
Тип результата: | float |
См.также
project_id()
Результат: | идентификатор проекта задачи. |
Тип результата: | int |
remove_allocated(user_id)
Параметры: | user_id (int) – идентификатор пользователя. |
Пример удаления материальных ресурсов с задачи:
allocated = task.allocated()
for user in allocated:
if cerebro.aclasses.Users.is_resource(user[task.ALLOCATED_FLAGS]) == True:
task.remove_allocated(user[task.ALLOCATED_ID])
См.также
remove_hashtags(hashtags)
Параметры: | hashtags (string, set(string, ) или list(string, )) – хэштег или массив хэштегов (каждый хэштег должен быть одним словом без пробелов). |
См.также
set_activity(activity_id)
Параметры: | activity_id (int) – идентификатор вида деятельности. |
Пример установки вида деятельности „animation“:
activities = cerebro.core.activities()
for activity in activities.data():
if activity[activities.DATA_NAME] == 'animation':
task.set_activity(activity[activities.DATA_ID])
break
См.также
set_allocated(user_id)
Параметры: | user_id (int) – идентификатор пользователя. |
Пример назначения на задачу всех пользователей, кроме материальных ресурсов:
users = cerebro.core.users()
for user in users.data():
if cerebro.aclasses.Users.is_resource(user[users.DATA_FLAGS]) != True:
task.set_allocated(user[users.DATA_ID])
См.также
set_budget(budget)
Параметры: | budget (float) – в условных единицах. |
Значение None сбрасывает собственный бюджет задачи. После сброса бюджет расчитывается из подзадач.
См.также
set_finish(time)
Параметры: | time (float) – время в днях от 01.01.2000. |
task.set_finish(4506.75) # время окончания 03.05.2012 18:00 UTC
Значение None сбрасывает установленное время окончания задачи. После сброса время окончания расчитывается исходя из запланированного времени на задачу и расписания.
Пример установки времени окончания задачи через 3 дня от текущего:
import datetime
datetime_now = datetime.datetime.utcnow()
datetime_2000 = datetime.datetime(2000, 1, 1)
timedelta = datetime_now - datetime_2000
days = timedelta.total_seconds()/(24*60*60) + 3
task.set_finish(days)
См.также
set_flag(flag, is_set)
Параметры: | |
# Установка задачи в статус Закрыта
task.set_flag(task.FLAG_CLOSED, True)
См.также
set_name(name)
Параметры: | name (string) – имя задачи. |
Предупреждение
Задача не может содержать в имени следующие символы / # : ? & „ » , + |
См.также
set_planned_time(hours)
Параметры: | hours (float) – запланированные на задачу часы. |
Значение None сбрасывает запланированное время задачи. После сброса запланированное время расчитывается исходя из календарных сроков задачи и расписания.
См.также
set_priority(prior)
Параметры: | prior (int) – приоритет задачи. |
Устанавливает приоритет задачи.
task.set_priority(task.PRIORITY_HIGHT)
См.также
set_progress(progress)
Параметры: | progress (float) – прогресс задачи от 0.0 до 100.0. |
Значение None сбрасывает собственный прогресс задачи. После сброса прогресс расчитывается из подзадач.
См.также
set_start(time)
Параметры: | time (float) – время в днях от 01.01.2000. |
task.set_start(4506.375) # время старта 03.05.2012 9:00 UTC
Значение None сбрасывает установленное время начала задачи. После сброса время начала расчитывается исходя из связей задачи и расписания.
Пример установки времени начала задачи в текущее:
import datetime
datetime_now = datetime.datetime.utcnow()
datetime_2000 = datetime.datetime(2000, 1, 1)
timedelta = datetime_now - datetime_2000
days = timedelta.total_seconds()/(24*60*60)
task.set_start(days)
См.также
set_status(status_id)
Параметры: | status_id (int) – идентификатор статуса. |
Пример установки статуса closed:
statuses = cerebro.core.statuses()
for status in statuses.data():
if status[statuses.DATA_NAME] == 'closed':
task.set_status(status[statuses.DATA_ID])
break
См.также
spent()
Результат: | сумму расходов (платежей) на задачу. |
Тип результата: | float |
start()
Результат: | время начала задачи. |
Тип результата: | datetime |
См.также
status()
Результат: | статус задачи. „(0,“„)“ означает, что статус задачи не задан. |
Тип результата: | tuple(status_id, status_name) - кортеж из двух полей: идентификатор статуса, имя статуса. |
См.также
tags()
Результат: | список тегов задачи. |
Тип результата: | list(cerebro.aclasses.Tag,) |
classcerebro.aclasses.Users
Класс пользователей.
Список пользователей состоит из пользователей с аккаунтами в системе Cerebro и материальных ресурсов, которые не имеют аккаунтов, но при этом учавствуют в производстве. Примером материального ресурса может служить монтажная комната или видеокамера.
users = cerebro.core.users()
DATA_= ''
DATA_EMAIL= 6 | E-mail пользователя. |
DATA_FIRST_NAME= 4 | Имя пользователя. |
DATA_FLAGS= 2 | Флаги пользователя. |
DATA_FULL_NAME= 1 | Полное имя пользователя. |
DATA_ICQ= 8 | ICQ/Skype пользователя. |
DATA_ID= 0 | Идентификатор пользователя. |
DATA_LAST_NAME= 5 | Фамилия пользователя. |
DATA_LOGIN= 3 | Логин пользователя. |
DATA_PHONE= 7 | Телефон пользователя. |
FLAG_= ''
FLAG_IS_RESOURCE= 1 | Является материльным ресурсом. |
data()
Результат: | список кортежей данных по пользователям. |
Тип результата: | list(tuple,) |
is_resource(user_flags)
Параметры: | user_flags (int) – значение флагов пользователя. |
Результат: | True, если флаг установлен как материальный ресурс. |
Тип результата: | bool |
resources = list()
users = cerebro.core.users()
for user in users.data():
if cerebro.aclasses.Users.is_resource(user[users.DATA_FLAGS]) == True:
resources.append(user)