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,)