1.1. Модуль database

Модуль py_cerebro.database содержит описание классов, используемых для осуществления доступа к базе данных.

Классы

class py_cerebro.database.Database(db_host, db_port, db_timeout=5, db_reconn_count=3)[исходный код]
Параметры:
  • db_host (string) – имя хоста.
  • db_port (int) – порт.
  • db_timeout (int) – таймаут на отключение от базы данных (секунды).
  • db_reconn_count (int) – количество попыток пересоединения.

Класс Database предназначен для установления соединения с базой данных, содержит набор методов, выполненяющих стандартные запросы системы Cerebro, а также возможность выполнения произвольных SQL-запросов.

# Устанавливаем соединение с базой данных

if db.connect_from_cerebro_client() != 0: # Пробуем установить соединение с помощью запущенного клиента Cerebro.
        # Если не выходит, устанавливаем соединение с помощью логина и пароля
        db.connect('user', 'password')

Примечание

В классе существуют функции изменяющие свойства задач, которые могут принимать на вход массив идентификаторов. Если необходимо установить нескольким задачам одинаковое значение свойства, предпочитайте использовать передачу массива идентификаторов в качестве аргумента вместо использования циклов. Это значительно повысит производительность.

# Использование массивов идентификаторов

to_do_task_list = db.to_do_task_list(db.current_user_id(),  True) # получаем список задач текущего пользователя

tsks = set()

for task in to_do_task_list:
        tsks.add(task[dbtypes.TASK_DATA_ID])

db.task_set_priority(tsks, 
        dbtypes.TASK_PRIORITY_ABOVE_NORMAL) # установили сразу нескольким задачам приоритет выше обычного

Методы

activities()[исходный код]
Результат:таблица видов деятельности.

Поля таблицы описаны в модуле dbtypes: ACTIVITY_DATA_...

add_attachment(message_id, carga, filename, thumbnails, description, as_link)[исходный код]
Параметры:
  • message_id (int) – идентификатор сообщения.
  • carga (py_cerebro.cargador.Cargador) – объект класса cargador.Cargador, для импортирования файлов в файловое хранилище.
  • filename (string) – полный путь до файла.
  • thumbnails – список путей до файлов эскизов (не больше трех). Размер эскизов должен быть 512x512. Формат JPG или PNG.
  • description (string) – пояснения(комментарии) к вложению.
  • as_link (bool) – способ добавления файла к сообщению: True - файл добавляется как ссылка; False - файл добавляется как вложение, то есть импортируется в файловое хранилище(Cargador).

Добавление вложения к сообщению.

Использование для генерации эскизов.

Если файл является изображением или видео, то можно добавить для него уменьшенные эскизы. Можно добавить до 3-х эскизов (первый, средний, последний кадры). Для генерации эскизов можно использовать программу Mirada. Она поставляется вместе с дистрибутивом Cerebro.

#Пример генерации эскизов с помощью Mirada.

gen_path = os.path.dirname(filename) # В качестве директории для генерации эскизов возьмем директорию добавляемого файла
mirada_path = './mirada' # путь до исполняемого файла программы Mirada

# Запускаем мираду с необходимыми ключами
res_code = subprocess.call([mirada_path, filename, '-temp', gen_path, '-hide'])                         
#-temp - директория для генерации эскизов
#-hide - ключ запуска мирады в скрытом режиме (без загрузки графического интерфейса) для генерации табнейлов.

if res_code != 0:
        raise Exception("Mirada returned bad exit-status.\n" + mirada_path);

#Ищем сгенерированные мирадой эскизы.
#Имени эскиза формируется из имени файла, даты и времени генерации - filename_yyyymmdd_hhmmss_thumb[number].jpg
#Например: test.mov_20120305_112354_thumb1.jpg - первый эскиз видео-файла test.mov

thumbnails = list()
for f in os.listdir(gen_path):
        if fnmatch.fnmatch(f, os.path.basename(filename) + '_*_thumb?.jpg'):
                thumbnails.append(gen_path + '/' + f)

thumbnails.sort()

Можно использовать и другие программы для генерации, например, ffmpeg.

#Пример генерации эскизов с помощью ffmpeg.
#Для того, чтобы генерить эскизы с помощью ffmpeg, нужно заранее знать длительность видео,
#чтобы корректно получить средний и последний кадры.
#Возьмем к примеру ролик длительностью в 30 секунд.

thumbnails = list() # список файлов для эскизов
thumbnails.append(filename + '_thumb1.jpg')
thumbnails.append(filename + '_thumb2.jpg')
thumbnails.append(filename + '_thumb3.jpg')

subprocess.call(['ffmpeg', '-i', filename, '-s', '512x512', '-an', '-ss', '00:00:00', '-r', 1, '-vframes', 1, '-y', thumbnails[0]])
subprocess.call(['ffmpeg', '-i', filename, '-s', '512x512', '-an', '-ss', '15:00:00', '-r', 1, '-vframes', 1, '-y', thumbnails[1]])
subprocess.call(['ffmpeg', '-i', filename, '-s', '512x512', '-an', '-ss', '30:00:00', '-r', 1, '-vframes', 1, '-y', thumbnails[2]])
# Описание ключей вы можете посмотреть в документации к ffmpeg
add_client_review(task_id, message_id, html_text)[исходный код]
Параметры:
  • task_id (int) – идентификатор задачи.
  • message_id (int) – идентификатор сообщения, на которое пишется ответ.
  • html_text (string) – текст сообщения в формате html.
Результат:

идентификатор нового сообщения.

Тип результата:

int

Добавляет сообщение типа «Рецензия клиента».

add_definition(task_id, html_text)[исходный код]
Параметры:
  • task_id (int) – идентификатор задачи.
  • html_text (string) – текст сообщения в формате html.
Результат:

идентификатор нового сообщения.

Тип результата:

int

Добавляет сообщение типа «Постановка задачи».

add_note(task_id, message_id, html_text)[исходный код]
Параметры:
  • task_id (int) – идентификатор задачи.
  • message_id (int) – идентификатор сообщения, на которое пишется ответ.
  • html_text (string) – текст сообщения в формате html.
Результат:

идентификатор нового сообщения.

Тип результата:

int

Добавляет сообщение типа «Заметка».

add_report(task_id, message_id, html_text, minutes)[исходный код]
Параметры:
  • task_id (int) – идентификатор задачи.
  • message_id (int) – идентификатор сообщения, на которое пишется ответ.
  • html_text (string) – текст сообщения в формате html.
  • minutes (int) – заявленое время отчета в минутах.
Результат:

идентификатор нового сообщения.

Тип результата:

int

Очень важнп устанавливать время в отчетах. Если minutes имеет занчение 0 или None, отчет не попадет в статистику.

Добавляет сообщение типа «Отчет».

add_resource_report(task_id, message_id, resource_id, html_text, minutes)[исходный код]
Параметры:
  • task_id (int) – идентификатор задачи.
  • message_id (int) – идентификатор сообщения, на которое пишется ответ.
  • resource_id (int) – идентификатор материального ресурса, за который пишется отчет.
  • html_text (string) – текст сообщения в формате html.
  • minutes (int) – заявленое время отчета в минутах.
Результат:

идентификатор нового сообщения.

Тип результата:

int

Добавляет сообщение типа «Отчет за ресурс».

add_review(task_id, message_id, html_text, minutes=None)[исходный код]
Параметры:
  • task_id (int) – идентификатор задачи.
  • message_id (int) – идентификатор сообщения, на которое пишется ответ.
  • html_text (string) – текст сообщения в формате html.
  • minutes (int) – принятое время в минутах.
Результат:

идентификатор нового сообщения.

Тип результата:

int

Добавляет сообщение типа «Рецензия».

add_task(parent_id, name, activity_id=0)[исходный код]
Параметры:
  • parent_id (int) – идентификатор родительской задачи.
  • name (string) – имя новой задачи.
  • activity_id (int) – идентификатор вида деятельности. По умолчанию равен „0“ (Нет вида деятельности).
Результат:

идентификатор новой задачи.

Создание новой задачи. Имя задачи не может содержать символы: \ / # : ? & „ » , + |.

Примечание

Для отправки уведомления пользователю о новой задаче требуется создать в задаче сообщение типа "Постановка задачи".

attachment_hashtags(attachment_id)[исходный код]
Параметры:attachment_id (int, set(int, ) или list(int,)) – идентификатор вложения или массив идентификаторов вложений.

Получает хэштеги вложения.

Примечание

Рекомендуется для вложений со значением тега ATTACHMENT_DATA_TAG: ATTACHMENT_TAG_FILE или ATTACHMENT_TAG_LINK.

attachment_remove_hashtags(attachment_id, hashtags)[исходный код]
Параметры:
  • attachment_id (int, set(int, ) или list(int, )) – идентификатор вложения или массив идентификаторов вложений.
  • hashtags (string, set(string, ) или list(string, )) – список хэштегов(каждый хэштег должен быть одним словом без пробелов).

Удаляет хэштеги их вложений.

Примечание

Рекомендуется для вложений со значением тега ATTACHMENT_DATA_TAG: ATTACHMENT_TAG_FILE или ATTACHMENT_TAG_LINK.

attachment_set_hashtags(attachment_id, hashtags)[исходный код]
Параметры:
  • attachment_id (int, set(int, ) или list(int, )) – идентификатор вложения или массив идентификаторов вложений.
  • hashtags (string, set(string, ) или list(string, )) – список хэштегов(каждый хэштег должен быть одним словом без пробелов).

Устанавливает хэштеги на вложения.

Примечание

Рекомендуется для вложений со значением тега ATTACHMENT_DATA_TAG: ATTACHMENT_TAG_FILE или ATTACHMENT_TAG_LINK.

connect(db_user, db_password)[исходный код]
Параметры:
  • db_user (string) – имя пользователя.
  • db_password (string) – пароль пользователя.

Соединение с базой данных с авторизацией.

connect_from_cerebro_client()[исходный код]

Соединение с базой данных с уже авторизованным пользователем в клиенте Cerebro. Такое соединения возможно, если на том же комьютере уже запущен клиент Cerebro, и произведен вход. В этом случае произойдет соединение с базой данных из-под пользователя, вошедшего в клиент. При этом соединение в клиенте не прервется, в отличие от обычного соединения Database.connect по логину и паролю, которое прервет установленное соединение из-под того же пользователя в клиенте.

Результат:
статус соединения:
  • 0 - соединение установлено;
  • 1 - соединение не установлено (клиент Cerebro запущен, но не произведен вход);
  • 2 - соединение не установлено (клиент Cerebro не запущен).
# Устанавливаем соединение с базой данных
if db.connect_from_cerebro_client() != 0: # Пробуем установить соединение с помощью запущенного клиента Cerebro.
        # Если не выходит, устанавливаем соединение с помощью логина и пароля
        db.connect(db_user, db_password)

См.также

connect().

copy_tasks(task_id, tasks_list, flags=79)[исходный код]
Параметры:
  • task_id (int, set(int, ) или list(int, )) – идентификатор задачи в которую вставляются скопированные задачи.
  • tasks_list (set) – список кортежей типа [(id1, name1), (id2, name2),].
  • flags (int) – флаги копирования.
Результат:

список идентификаторов новых задач.

Копирует задачи.

Подробное описание флагов находится в модуле dbtypes: COPY_TASKS_...

Если одну задачу нужно скопировать несколько раз (реплицировать), то необходимо передать в tasks_list список кортежей с одинаковыми идентификаторами и разными именами. Например:

[(123, „test_task02“), (123, „test_task03“), (123, „test_task04“), (123, „test_task05“)]

123 - идентификатор задачи, которую нужно скопировать. „test_task02“, „test_task03“, … - имена новых задач.

# Копируем в задачу 0 задачи 1(2 копии), 2 и 3
to_do_task_list = db.to_do_task_list(db.current_user_id(),  True)
lst_copy = [(to_do_task_list[1][dbtypes.TASK_DATA_ID], 'Копия задачи 1(1)'),
        (to_do_task_list[1][dbtypes.TASK_DATA_ID], 'Копия задачи 1(2)'),
        (to_do_task_list[2][dbtypes.TASK_DATA_ID], 'Копия задачи 2'),
        (to_do_task_list[3][dbtypes.TASK_DATA_ID], 'Копия задачи 3')]
db.copy_tasks(to_do_task_list[0][dbtypes.TASK_DATA_ID], lst_copy)
# В задачу 0 добавлено 4 новых задачи
current_user_id()[исходный код]
Результат:идентификатор пользователя, из-под которого произошёл логин.
Параметры:link_id (int) – идентификатор связи.

Удаляет связь между двумя задачами.

execute(query, *parameters)[исходный код]
Параметры:
  • query (string) – текст запроса.
  • parameters – список параметров запроса.

Выполняет запрос и возвращает результат. Результат представлен в виде таблицы (списoк кортежей).

message(message_id)[исходный код]
Параметры:message_id (int) – идентификатор сообщения.
Результат:данные сообщения.

Поля таблицы описаны в модуле dbtypes: MESSAGE_DATA_... Типы сообщений описаны в модуле dbtypes: MESSAGE_TYPE_...

message_attachments(message_id)[исходный код]
Параметры:message_id (int, set(int, ) или list(int, )) – идентификатор сообщения или массив идентификаторов сообщений.
Результат:таблица файловых вложений сообщения(ий).

Поля таблицы описаны описаны в модуле dbtypes: ATTACHMENT_DATA_...

Одно вложение может представлять собой от 1-й до 5-ти записей в таблице. Объеденены записи вложения идентификатором группы - ATTACHMENT_DATA_GROUP_ID. Записи одного вложения отличаются тегом ATTACHMENT_DATA_TAG, и означают то или иное свойство вложения.

Вложение бывает двух видов: файл и ссылка на файл. В первом случаи у вложения присутствует запись с тегом ATTACHMENT_TAG_FILE, которая содержит хеш файла, лежащего в файловом хранилище Cargador. В случае если файл приложен к соообщению как ссылка, то присутствует запись с тегом ATTACHMENT_TAG_LINK. Эта запись не имеет хеша и в поле имени ATTACHMENT_DATA_FILE_NAME у неё прописан полный путь до файла. Запись с тегом ATTACHMENT_TAG_REVIEW присутствует только если к файлу добавлена рецензия из инструмента рецензирования Mirada. Записи с тегом эскизов ATTACHMENT_TAG_THUMB..., присутствуют только, если файл является изображением или видео. В случае изображения присутствует только одна запись ATTACHMENT_TAG_THUMB1, если видеофайл – три записи.

message_hashtags(message_id)[исходный код]
Параметры:message_id (int, set(int, ) или list(int, )) – идентификатор сообщения или массив идентификаторов сообщений.

Получает хэштеги сообщения.

message_remove_hashtags(message_id, hashtags)[исходный код]
Параметры:
  • message_id (int, set(int, ) или list(int, )) – идентификатор сообщения или массив идентификаторов сообщений.
  • hashtags (string, set(string, ) или list(string, )) – список хэштегов(каждый хэштег должен быть одним словом без пробелов).

Удаляет хэштеги из сообщений.

message_set_hashtags(message_id, hashtags)[исходный код]
Параметры:
  • message_id (int, set(int, ) или list(int, )) – идентификатор сообщения или массив идентификаторов сообщений.
  • hashtags (string, set(string, ) или list(string, )) – список хэштегов(каждый хэштег должен быть одним словом без пробелов).

Устанавливает хэштеги на сообщения.

messages(message_ids)[исходный код]
Параметры:message_id (int, set(int, ) или list(int, )) – идентификатор сообщения(сообщений).
Результат:данные сообщения(сообщений).

Поля таблицы описаны в модуле dbtypes: MESSAGE_DATA_... Типы сообщений описаны в модуле dbtypes: MESSAGE_TYPE_...

project_tags(project_id)[исходный код]
Параметры:project_id (int) – идентификатор проекта.
Результат:таблица тегов проекта. Таблица содержит все теги, которые можно задавать на задачах проекта.

Поля таблицы описаны в модуле dbtypes: TAG_DATA_...

root_tasks()[исходный код]
Результат:таблица корневых задач.

Поля таблицы описаны в модуле dbtypes: TASK_DATA_...

Параметры:
  • first_task_id (int) – идентификатор задачи от которой идет связь.
  • second_task_id (int) – идентификатор задачи к которой идет связь.
Результат:

идентификатор связи.

Тип результата:

int

Создает связь между двумя задачами.

statuses()[исходный код]
Результат:таблица всех статусов.

Поля таблицы описаны в модуле dbtypes: STATUS_DATA_...

tag_enums(tag_id)[исходный код]
Параметры:tag_id (int) – идентификатор тега.
Результат:таблица перечеслений тега. Таблица содержит перечесления, которые можно установить в качестве значения тега.

Поля таблицы описаны в модуле dbtypes: TAG_ENUM_DATA_...

task(task_id)[исходный код]
Параметры:task_id (int) – идентификатор задачи.
Результат:данные по задаче.

Поля таблицы описаны в модуле dbtypes: TASK_DATA_...

См.также

tasks().

task_allocated(task_id)[исходный код]
Параметры:task_id (int) – идентификатор задачи.
Результат:таблица назначенных пользователей (исполнителей) на задачу.

Поля таблицы описаны в модуле dbtypes: TASK_ALLOCATED_...

task_attachments(task_id)[исходный код]
Параметры:task_id (int, set(int, ) или list(int, )) – идентификатор задачи или массив идентификаторов задач.
Результат:таблица файловых вложений задачи(задач).

Поля таблицы описаны описаны в модуле dbtypes: ATTACHMENT_DATA_...

Одно вложение может представлять собой от 1-й до 5-ти записей в таблице. Объеденены записи вложения идентификатором группы - ATTACHMENT_DATA_GROUP_ID. Записи одного вложения отличаются тегом ATTACHMENT_DATA_TAG, и означают то или иное свойство вложения.

Вложение бывает двух видов: файл и ссылка на файл. В первом случаи у вложения присутствует запись с тегом ATTACHMENT_TAG_FILE, которая содержит хеш файла, лежащего в файловом хранилище Cargador. В случае если файл приложен к соообщению как ссылка, то присутствует запись с тегом ATTACHMENT_TAG_LINK. Эта запись не имеет хеша и в поле имени ATTACHMENT_DATA_FILE_NAME у неё прописан полный путь до файла. Запись с тегом ATTACHMENT_TAG_REVIEW присутствует только если к файлу добавлена рецензия из инструмента рецензирования Mirada. Записи с тегом эскизов ATTACHMENT_TAG_THUMB..., присутствуют только, если файл является изображением или видео. В случае изображения присутствует только одна запись ATTACHMENT_TAG_THUMB1, если видеофайл – три записи.

task_by_url(url)[исходный код]
Параметры:url (string) – путь до задачи.
Результат:ID задачи.

Возвращает ID задачи по пути к задаче. Пример пути к задаче: „/Test project/test“.

Примечание

Пути к задаче регистрозависимы.

task_children(task_id)[исходный код]
Параметры:task_id (int) – идентификатор задачи.
Результат:таблица подзадач.

Поля таблицы описаны в модуле dbtypes: TASK_DATA_...

task_definition(task_id)[исходный код]
Параметры:task_id (int) – идентификатор задачи.
Результат:данные сообщения типа Постановка задачи.

Поля таблицы описаны в модуле dbtypes: MESSAGE_DATA_...

task_hashtags(task_id)[исходный код]
Параметры:task_id (int, set(int, ) или list(int, )) – идентификатор задачи или массив идентификаторов задач.

Получает хэштеги задачи.

::
# Работа с хэштегами задачи to_do_task_list = db.to_do_task_list(db.current_user_id(), True) db.task_set_hashtags(to_do_task_list[0][dbtypes.TASK_DATA_ID], {„хэштег1“, „хэштег2“, „хэштег3“}) # присваиваем задаче массив хэштегов db.task_remove_hashtags(to_do_task_list[0][dbtypes.TASK_DATA_ID], „хэштег2“) # удаляем хэштег hashtags = db.task_hashtags(to_do_task_list[0][dbtypes.TASK_DATA_ID]) # получаем хэштеги задачи print(„Хэштеги задачи „, hashtags) # распечатываем хэштеги
Параметры:task_id (int) – идентификатор задачи.
Результат:таблица связей задачи.

Поля таблицы описаны в модуле dbtypes: TASK_LINK_...

task_messages(task_id)[исходный код]
Параметры:task_id (int) – идентификатор задачи.
Результат:таблица сообщений задачи.

Поля таблицы описаны в модуле dbtypes: MESSAGE_DATA_... Типы сообщений описаны в модуле dbtypes: MESSAGE_TYPE_...

task_possible_statuses(task_id)[исходный код]
Параметры:task_id (int) – идентификатор задачи.
Результат:таблица статусов, которые можно установить задаче.

Поля таблицы описаны в модуле dbtypes: STATUS_DATA_...

В системе Cerebro для каждого статуса настраиваются разрешения на переключение для каждого статуса. Кроме того, у каждого статуса есть флаг наследственности. На задачи-контейнеры можно устанавливать только те статусы, у которых включен этот флаг. Поэтому список возможных статусов зависит от прав пользователя, текущего статуса, а так же наличия/отсутсвия подзадач у задачи.

task_remove_allocated(task_id, user_id)[исходный код]
Параметры:
  • task_id (int, set(int, ) или list(int, )) – идентификатор задачи или массив идентификаторов задач.
  • user_id (int, set(int, ) или list(int, )) – идентификатор пользователя/материального ресурса или массив идентификаторов пользователей/материальных ресурсов.

Убирает исполнителя с задачи.

task_remove_hashtags(task_id, hashtags)[исходный код]
Параметры:
  • task_id (int, set(int, ) или list(int, )) – идентификатор задачи или массив идентификаторов задач.
  • hashtags (string, set(string, ) или list(string, )) – список хэштегов(каждый хэштег должен быть одним словом без пробелов).

Удаляет хэштеги из задач.

task_set_activity(task_id, activity_id)[исходный код]
Параметры:
  • task_id (int, set(int, ) или list(int, )) – идентификатор задачи или массив идентификаторов задач.
  • activity_id (int) – идентификатор вида деятельности.

Устанавливает вид деятельности задачи(задач). Идентификатор вида деятельности = 0 переводит вид деятельности задачи в „Нет вида деятельности“.

task_set_allocated(task_id, user_id)[исходный код]
Параметры:
  • task_id (int, set(int, ) или list(int, )) – идентификатор задачи или массив идентификаторов задач.
  • user_id (int, set(int, ) или list(int, )) – идентификатор пользователя/материального ресурса или массив идентификаторов пользователей/материальных ресурсов.

Назначает исполнителя на задачу.

Примечание

Для отправки уведомления исполнителю о назначенной задаче необходимо наличие в задаче сообщения типа "Постановка задачи".

task_set_budget(task_id, budget)[исходный код]
Параметры:
  • task_id (int, set(int, ) или list(int, )) – идентификатор задачи или массив идентификаторов задач.
  • budget (float) – величина бюджета в условных единицах.

Устанавливает бюджет задачи.

При установке бюджета в None, собственный бюджет задачи сбрасывается и рассчитывается из подзадач.

task_set_finish(task_id, time)[исходный код]
Параметры:
  • task_id (int, set(int, ) или list(int, )) – идентификатор задачи или массив идентификаторов задач.
  • time (float) – время в днях от 01.01.2000 (UTC),

Устанавливает время окончания задачи(Задач) в днях от 01.01.2000 в UTC.

Аргумент time = None сбрасывает установленное время окончания задачи, в этом случае время окончания рассчитывается исходя из запланированного времени на задачу и расписания.

db.task_set_finish(task_id, 4506.75) # время окончания 03.05.2012 18:00 UTC

Пример установки времени окончания задачи через 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

db.task_set_finish(task_id, days) 
task_set_flag(task_id, flag, is_set)[исходный код]
Параметры:
  • task_id (int, set(int, ) или list(int, )) – идентификатор задачи или массив идентификаторов задач.
  • flag (int) – значение флага.
  • is_set (bool) – признак установки/сброса флага.

Устанавливает флаг у задачи. Если аргумент is_set равен True, то флаг устанавливается, иначе сбрасывается.

# Пометить задачу как архивную
db.task_set_flag(task_id, dbtypes.TASK_FLAG_ARCHIVED, True)

Значения флагов задачи описаны в модуле dbtypes: TASK_FLAG_...

task_set_hashtags(task_id, hashtags)[исходный код]
Параметры:
  • task_id (int, set(int, ) или list(int, )) – идентификатор задачи или массив идентификаторов задач.
  • hashtags (string, set(string, ) или list(string, )) – список хэштегов(каждый хэштег должен быть одним словом без пробелов).

Устанавливает хэштеги на задачи.

task_set_name(task_id, name)[исходный код]
Параметры:
  • task_id (int) – идентификатор задачи.
  • name (string) – новое имя задачи.

Устанавливает новое имя задачи. Новое имя не может содержать символы: \ / # : ? & „ » , + |.

task_set_planned_time(task_id, hours)[исходный код]
Параметры:
  • task_id (int, set(int, ) или list(int, )) – идентификатор задачи или массив идентификаторов задач.
  • hours (float) – запланированные на задачу часы.

Устанавливает запланированное время задачи(задач) в часах. При установке аргумента hours в None, запланированное время задачи сбрасывается. После сброса запланированное время рассчитывается исходя из календарных сроков задачи и расписания.

task_set_priority(task_id, prior)[исходный код]
Параметры:
  • task_id (int, set(int, ) или list(int, )) – идентификатор задачи или массив идентификаторов задач.
  • prior (int) – значение приоритета.

Устанавливает приоритет задачи.

Значения приоритета описаны в модуле dbtypes: TASK_PRIORITY_...

task_set_progress(task_id, progress)[исходный код]
Параметры:
  • task_id (int, set(int, ) или list(int, )) – идентификатор задачи или массив идентификаторов задач.
  • progress (int) – значение прогресса.

Устанавливает прогресс задачи. При установке прогреса в 100 задача считается Выполненой (Done). При установке прогреса в None собственный прогресс задачи сбрасывается и рассчитывается из подзадач.

task_set_start(task_id, time)[исходный код]
Параметры:
  • task_id (int, set(int, ) или list(int, )) – идентификатор задачи или массив идентификаторов задач.
  • time (float) – время в днях от 01.01.2000.

Устанавливает время начала задачи в днях от 01.01.2000 в UTC

Аргумент time = None сбрасывает установленное время начала задачи. После сброса время начала рассчитывается исходя из связей задачи и расписания.

db.task_set_start({task_id, task_id1}, 4506.375) # время старта 03.05.2012 9:00 UTC

Пример установки времени начала задачи в текущее

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)     

db.task_set_start(task_id, days) 
task_set_status(task_id, status_id)[исходный код]
Параметры:
  • task_id (int, set(int, ) или list(int, )) – идентификатор задачи или массив идентификаторов задач.
  • status_id (int) – идентификатор статуса.

Устанавливает статус задачи. Идентификатор статуса = None переводит статус задачи в „Нет статуса“.

task_set_tag_enum(task_id, enum_id, is_set)[исходный код]
Параметры:
  • task_id (int, set(int, ) или list(int, )) – идентификатор задачи или массив идентификаторов задач.
  • enum_id (int, set(int, ) или list(int, )) – идентификатор перечесления или массив идентификаторов перечислений.
  • is_set (bool) – признак установки/сброса перечесления.

Устанавливает или убирает для задачи(задач) значение тега с типом перечесление или множественное перечесление. В случаи с тегом типа множественное перечесление, функция добавляет перечесления/удаляет перечесления к значению тега. В случаи с типом перечесление, происходит замена предыдущего установленого перечесления.

task_set_tag_float(task_id, tag_id, value)[исходный код]
Параметры:
  • task_id (int, set(int, ) или list(int, )) – идентификатор задачи или массив идентификаторов задач.
  • tag_id (int) – идентификатор тега.
  • value (float) – значение тега.

Устанавливает для задачи(задач) значение тега с типом число с плавающей точкой.

task_set_tag_int(task_id, tag_id, value)[исходный код]
Параметры:
  • task_id (int, set(int, ) или list(int, )) – идентификатор задачи или массив идентификаторов задач.
  • tag_id (int) – идентификатор тега.
  • value (int) – значение тега.

Устанавливает для задачи(задач) значение тега с целочисленным типом.

task_set_tag_string(task_id, tag_id, value)[исходный код]
Параметры:
  • task_id (int, set(int, ) или list(int, )) – идентификатор задачи или массив идентификаторов задач.
  • tag_id (int) – идентификатор тега.
  • value (string) – значение тега.

Устанавливает для задачи(задач) значение тега с типом строка.

task_tag_enums(task_id, tag_id)[исходный код]
Параметры:
  • task_id (int) – идентификатор задачи.
  • tag_id (int) – идентификатор тега.
Результат:

таблица установленных на задачу перечеслений тега.

Поля таблицы описаны в модуле dbtypes: TASK_TAG_ENUM_...

task_tag_reset(task_id, tag_id)[исходный код]
Параметры:
  • task_id (int, set(int, ) или list(int, )) – идентификатор задачи или массив идентификаторов задач.
  • tag_id (int) – идентификатор тега.

Сбрасывает значение тега для задачи(задач).

task_tags(task_id)[исходный код]
Параметры:task_id (int) – идентификатор задачи.
Результат:таблица установленных на задачу значений тегов.

Поля таблицы описаны в модуле dbtypes: TASK_TAG_DATA_...

tasks(task_ids)[исходный код]
Параметры:task_id (int, set(int, ) или list(int, )) – идентификатор задачи или массив идентификаторов задач.
Результат:данные по задаче(задачам).

Поля таблицы описаны в модуле dbtypes: TASK_DATA_...

См.также

task().

to_do_task_list(user_id, with_done_task)[исходный код]

:param user_id - идентификатор пользователя или массив идентификаторов пользователей (материального ресурса) :type user_id: int, set(int, ) или list(int, ) :param bool with_done_task: если равен True, то возвратится список вместе с выполненными (прогресс 100%) задачами, иначе без них. :returns: таблица задач, на которых пользователь назначен исполнителем.

Поля таблицы описаны в модуле dbtypes: TASK_DATA_...

users()[исходный код]
Результат:таблица пользователей/материальных ресурсов.

Поля таблицы описаны в модуле dbtypes: USER_DATA_...

У материального ресурса выставлен флаг USER_FLAG_IS_RESOURCE. Проверить этот флаг можно с помощью функции cclib.has_flag:

if cclib.has_flag(user[dbtypes.USER_DATA_FLAGS], dbtypes.USER_FLAG_IS_RESOURCE): #если материальный ресурс
        # действия