10.1.11. Класс cerebro.aclasses.Task¶
-
class
cerebro.aclasses.
Task
(task_id)[исходный код]¶ Класс задачи.
Методы
activity()
add_hashtags()
allocated()
budget()
creation_time()
creator_id()
data()
finish()
flags()
hashtags()
id()
moderator_id()
modification_time()
name()
parent_id()
parent_url()
payments()
planned_time()
possible_statuses()
priority()
progress()
project_id()
remove_allocated()
remove_hashtags()
set_activity()
set_allocated()
set_budget()
set_finish()
set_flag()
set_name()
set_planned_time()
set_priority()
set_progress()
set_start()
set_status()
spent()
start()
status()
tags()
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_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) - кортеж из двух полей: идентификатор вида деятельности, имя вида деятельности. См.также
Параметры: 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
См.также
Результат: список хэштегов задачи. Тип результата: list(string,) Пример: вывод хэштегов
for ht in task.hashtags(): print('Hashtag:', ht)
См.также
-
id
()[исходный код]¶ Результат: идентификатор задачи. Тип результата: int (parameter_1, parameter_2)
-
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])
См.также
Параметры: hashtags (string, set(string, ) или list(string, )) – хэштег или массив хэштегов (каждый хэштег должен быть одним словом без пробелов). Удаляет хэштеги из задачи.
См.также
-
set_activity
(activity_id)[исходный код]¶ Параметры: activity_id (int) – идентификатор вида деятельности. Устанавливает вид деятельности задачи. „0“ переводит вид деятельности задачи в „Нет вида деятельности“.
Пример установки вида деятельности „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. Устанавливает время окончания задачи в днях от 01.01.2000 в UTC.
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)[исходный код]¶ Параметры: Устанавливает
флаг
у задачи. Если аргумент is_set равен True флаг устанавливается, иначе сбрасывается.# Установка задачи в статус Закрыта 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. Устанавливает прогресс задачи. При установке прогреса в 100, задача считается Выполненой(Done).
Значение None сбрасывает собственный прогресс задачи. После сброса прогресс расчитывается из подзадач.
См.также
-
set_start
(time)[исходный код]¶ Параметры: time (float) – время в днях от 01.01.2000. Устанавливает время начала задачи в днях от 01.01.2000 в UTC.
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) – идентификатор статуса. Устанавливает статус задачи. „0“ переводит статус задачи в „Нет статуса“.
Пример установки статуса 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) - кортеж из двух полей: идентификатор статуса, имя статуса. См.также
Результат: список тегов задачи. Тип результата: list( cerebro.aclasses.Tag
,)