Class Task(studio)

class edit_db.task(asset_ob)

level = „project“

Данные хранимые в БД (имя столбца : тип данных) edit_db.studio.tasks_keys:

tasks_keys = {
'activity': 'text',
'task_name': 'text',
'task_type': 'text',
'source': 'json',
'input': 'json',
'status': 'text',
'outsource': 'integer',
'artist': 'text',           # username
'level': 'text',            # пользовательский уровень сложности задачи.
'planned_time': 'real',
'price': 'real',
'time': 'json',             # словарь: ключи - username, значения - ссумарное время атриста по этой задаче (ед. измерения - секунда).
'full_time': 'real',        # ссумарное время всех атристов по этой задаче (ед. измерения - секунда).
'deadline': 'timestamp',    # расчётная дата окончания работ.
'start': 'timestamp',
'end': 'timestamp',
'specification': 'text',
'chat_local': 'json',
'web_chat': 'text',
'supervisor': 'text',
'readers': 'json',          # словарь: ключ - username, значение - 0 или 1 (статус проверки),  плюс одна запись: ключ - 'first_reader', значение - username - это первый проверяющий - пока он не проверит даннаня задача не будет видна у других проверяющих в списке на проверку.
'output': 'json',
'priority':'integer',
'extension': 'text',
'description': 'text',      # описание задачи
}

Examples

Создание экземпляра класса:

import edit_db as db

project = db.project()
asset = db.asset(project)

task = db.task(asset) # asset - обязательный параметр при создании экземпляра task
# доступ ко всем параметрам и методам принимаемого экземпляра asset - через task.asset
activity

Активити из edit_db.asset.ACTIVITY_FOLDER [asset_type]

Type:str
task_name

Имя задачи, структура имени: asset_name:task_name

Type:str
task_type

Тип задачи из edit_db.studio.task_types + service

Type:str
source

Имена задач, объекты из активити которых используются как исходники.

Type:list
input

Для сервисной задачи (task_type = service) - это список имён входящих задач. для не сервисной задачи - это имя входящей задачи.

Type:str, list
status

Cтатус задачи из edit_db.studio.task_status

Type:str
outsource

Значение из [0, 1] если = 1 - задача на аутсорсе.

Type:int
artist

username исполнителя.

Type:str
level

Пользовательский уровень сложности задачи.

Type:text
planned_time

Планируемое время (ед. измерения - час).

Type:float
price

Стоимость работ по задаче (ед. измерения - юнит).

Type:float
time

Словарь: ключи - username, значения - ссумарное время атриста по этой задаче (ед. измерения - секунда).

Type:dict
full_time

Ссумарное время всех атристов по этой задаче (ед. измерения - секунда).

Type:real
deadline

Расчётная дата окончания работ.

Type:timestamp
start

Дата и время взятия задачи в работу.

Type:timestamp
end

Дата и время приёма задачи.

Type:timestamp
specification

Ссылка на техническое задание.

Type:str
chat_local

?

Type:str
web_chat

?

Type:str
supervisor

?

Type:str
readers

Словарь: ключ - username, значение - 0 или 1 (статус проверки), плюс одна запись: ключ - first_reader, значение - username - это первый проверяющий - пока он не проверит даннаня задача не будет видна у других проверяющих в списке на проверку.

Type:dict
output

Список имён исходящих задач.

Type:list
priority

Приоритет.

Type:int
extension

Расширение файла для работы над данной задачей, начинается с точки, например: .blend

Type:str
approved_date

Дата планируемого окончания работ (вычисляется при создании экземпляра)

Type:timestamp
asset

Экземпляр asset принимаемый при создании экземпляра класса, содержит все атрибуты и методы edit_db.asset .

Type:edit_db.asset
description

Описание задачи

Type:text
branches

атрибут класса - список веток активити задачи. Заполняется при выполнении метода edit_db.task._set_branches()

Type:list
CHANGE_BY_OUTSOURCE_STATUSES = {'to_outsource': {'ready': 'ready_to_send', 'work': 'ready_to_send'}, 'to_studio': {'ready_to_send': 'ready', 'work_to_outsorce': 'ready'}}

Описание того как менять некоторые статусы задач, при изменении статуса исполнителя на аутсорс, или наоборот с аутсорса в студию.

Структура словаря:

{
'to_outsource': {
        status_name_from : status_name_to,
        ...
        },
'to_studio': {
        status_name_from : status_name_to,
        ...
        },
}
Type:dict
VARIABLE_STATUSES = ('ready', 'ready_to_send', 'work', 'work_to_outsorce')

?

Type:tuple
_from_input_status(input_task, this_task=False)

Возвращает новый статус задачи (текущей или this_task) на основе входящей задачи, не меняя статуса данной задачи.

Параметры:
  • input_task (edit_db.task) – Входящая задача
  • this_task (edit_db.task, optional) – Задача для которой определяется статус, если не передавать, то статус будет определятся для текущей задачи.
Результат:

Новый статус, значение из edit_db.studio.task_status

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

str

_post_commit(work_path, save_path)

Вызов одноимённого хука. Вызывается из edit_db.task.commit()

Результат:(True, „Ok!“) или (False, comment)
Тип результата:tuple
_post_publish()

Вызов одноимённого хука. Вызывается из edit_db.task.publish_task()

Результат:(True, „Ok!“) или (False, comment)
Тип результата:tuple
_post_push()

Вызов одноимённого хука. Вызывается из edit_db.task.push()

Результат:(True, „Ok!“) или (False, comment)
Тип результата:tuple
_pre_commit(work_path, save_path)

Вызов одноимённого хука. Вызывается из edit_db.task.commit()

Результат:(True, „Ok!“) или (False, comment)
Тип результата:tuple
_pre_publish()

Вызов одноимённого хука. Вызывается из edit_db.task.publish_task()

Результат:(True, „Ok!“) или (False, comment)
Тип результата:tuple
_pre_push()

Вызов одноимённого хука. Вызывается из edit_db.task.push()

Результат:(True, „Ok!“) или (False, comment)
Тип результата:tuple
_read_task(task_name)

Возврат словаря задачи (по ключам из edit_db.studio.tasks_keys , чтение БД) по имени задачи. если нужен объект используем edit_db.task.init().

Параметры:task_name (str) – Имя задачи.
Результат:(True, {task_data}) или (False, comment)
Тип результата:tuple
_service_add_list_to_input(input_task_list)

Добавление списка задач во входящие сервисной задаче, со всеми вытикающими изменениями статусов. Изменяется параметр edit_db.task.input, с возможными изменениями статусов, как данной, так и исходящих задач.

Параметры:input_task_list (list) – Список задач (экземпляры).
Результат:(True, (new_ststus, [append_task_name_list])) или (False, comment)
Тип результата:tuple
_service_add_list_to_input_from_asset_list(asset_list)

Добавление задач во входящие сервисной задаче из списка ассетов. Из списка задач ассета подсоединяется первая задача нужного активити. Изменяется параметр edit_db.task.input, с возможными изменениями статусов, как данной, так и исходящих задач.

Параметры:asset_list (list) – Список подсоединяемых ассетов (словари, или экземпляры).
Результат:(True, (this_task_data, append_task_name_list)) ?? пересмотреть или (False, коммент)
Тип результата:tuple
_service_change_task_in_input(removed_task_data, added_task_data, task_data=False)

Замена одной входящей задачи на другую, для сервисной задачи. Изменение параметра edit_db.task.input, с возможными изменениями статусов данной и исходящих задач.

Внимание

Переработать, уйти от словарей, переделать на объекты, не передавать task_data.

Параметры:
  • removed_task_data (dict) – Словарь удаляемой задачи, переработать - заменить на экземпляр!!!.
  • added_task_data (dict) – Словарь добавляемой задачи, переработать - заменить на экземпляр!!!.
  • task_data (dict, optional) – Изменяемая задача, если False - значит предполагается, что task инициализирован лучше не использовать.
Результат:

(True, (this_task_data, append_task_name_list)) ?? пересмотреть или (False, коммент).

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

tuple

_service_input_to_end(assets)

Изменение статуса текущей сервисной задачи, по проверке статусов входящих задач. и далее задач по цепочке.

Параметры:assets (dict) – Словарь всех ассетов по всем типам (ключи - имена, значения - ассеты (экземпляры)) - результат функции edit_db.asset.get_dict_by_name_by_all_types()
Результат:(True, new_status) или (False, comment)
Тип результата:tuple
_service_remove_task_from_input(removed_tasks_list, task_data=False, change_status=True)

Удаление списка задач из edit_db.task.input сервисной задачи, с возможными изменениями статусов, как данной, так и исходящих задач.

Внимание

Переработать, уйти от словарей, переделать на объекты, не передавать task_data.

Параметры:
  • removed_tasks_list (list) – Содержит список словарей удаляемых из инпута задач ?? переработать - заменить на объекты
  • task_data (dict, optional) – Изменяемая задача, если False - значит предполагается, что task инициализирован лучше не использовать.
  • change_status (bool, optional) – Если True то пересматривается статус данной и исходящих задачь, если False то статусы персматриваться не будут.
Результат:

(True, (new_status [13], input_list [14]) или (False, comment)

[13]

new_status - новый статус данной задачи.

[14]

input_list - получаемое значение инпут атрибута edit_db.task.input.

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

tuple

classmethod _set_branches(branches)

Заполнение атрибута класса edit_db.task.branches

Параметры:branches (list) – Список веток получаемый при выполнении edit_db.log.read_log()
Результат:None
Тип результата:None
_this_change_from_end(this_task=False, assets=False)

Замена статусов исходящих задач при изменении статуса текущей задачи с done или с close.

Параметры:
  • this_task (edit_db.task, optional) – Задача относительно которой будут менятся статусы, если не передавать, то статусы будут менятся относительно текущей задачи.
  • assets (dict, optional) – Словарь всех ассетов по всем типам (ключи - имена, значения - ассеты (экземпляры)) - результат функции edit_db.asset.get_dict_by_name_by_all_types()
Результат:

(True, „Ok!“) или (False, comment)

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

tuple

_this_change_to_end(assets=False)

Замена статусов исходящих задач при изменении статуса текущей задачи на done или close.

Параметры:assets (dict, optional) – Словарь всех ассетов по всем типам (ключи - имена, значения - ассеты (экземпляры)) - результат функции edit_db.asset.get_dict_by_name_by_all_types().
Результат:(True, „Ok!“) или (False, comment)
Тип результата:tuple
accept_task()

Приём задачи, статус на done (со всеми вытикающими сменами статусов), создание паблиш версии, заполнение artist_tasks_log (finish,``price``), выполнение хуков.

Результат:(True, „Ok!“) или (False, comment)
Тип результата:tuple
add_readers(add_readers_list)

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

Параметры:add_readers_list (list) – Список никнеймов проверяющих.
Результат:(True, readers - (слорварь в формате записи как edit_db.task.readers), change_status - (bool)) или (False, comment)
Тип результата:tuple
add_single_task(task_data)

Создание одной задачи.

Параметры:task_data (dict) – Словарь по edit_db.studio.tasks_keys, обязательные поля: activity, task_name, task_type, extension. Если передать поля input, output - то будут установлены соединения и призведены проверки, и смены статусов.
Результат:(True, „Ok!“) или (False, comment)
Тип результата:tuple
change_activity(new_activity)

Замена активити текущей задачи. Изменяемый параметр edit_db.task.activity

Параметры:new_activity (str) – Новое активити для задачи, значение из edit_db.asset.ACTIVITY_FOLDER.
Результат:(True, „Ok!“) или (False, comment)
Тип результата:tuple
change_artist(new_artist)

Замена артиста и возможная замена при этом статуса. Изменяемый параметр edit_db.task.artist.

Параметры:new_artist (str, edit_db.artist) – Новый артист никнейм или экземпляр, лучше передавать экземпляр для экономии запросов.
Результат:(True, (new_task_status, edit_db.artist.outsource)) или (False, comment)
Тип результата:tuple
change_input(new_input)

Изменение входа не сервисной задачи, с вытикающими изменениями статусов. Изменяемый параметр edit_db.task.input.

Параметры:new_input (str) – Имя новой входящей задачи.
Результат:(True, (new_status, old_input_task_data, new_input_task_data)) или (False, comment)
Тип результата:tuple
change_price(new_price)

Замена стоимости текущей задачи. Изменяемый параметр edit_db.task.price.

Параметры:new_price (float) – Новое значение стоимости задачи.
Результат:(True, „Ok!“) или (False, comment)
Тип результата:tuple
change_work_statuses(change_statuses)

Тупо смена статусов в пределах рабочих, что не приводит к смене статусов исходящих задач. Изменяемый параметр edit_db.task.status. Применяется для списка задач.

Параметры:change_statuses (list) – Список кортежей - (task_ob, new_status)
Результат:(True, {task_name: new_status, … }) или (False, comment)
Тип результата:tuple
changes_without_a_change_of_status(key, new_data)

Замена параметров задачи, которые не приводят к смене статуса.

Параметры:
  • key (str) – Заменяемый параметр. Допустимые на замену параметры: activity, task_type, season, price, specification, extension, start, end, time, full_time, deadline, planned_time, level,
  • new_data (тип зависит от параметра) – Новое значение для параметра.
Результат:

(True, „Ok!“) или (False, comment)

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

tuple

close_task()

Закрытие задачи, смена статуса на close (со всеми вытикающими сменами статусов). Изменяемый параметр edit_db.task.status.

Результат:(True, „Ok!“) или (False, comment)
Тип результата:tuple
commit(work_path, description, branch=False, artist_ob=False)

Запись новой рабочей версии в work директорию пользователя (edit_db.studio.work_folder).

Параметры:
  • work_path (str) – Путь к текущему рабочему файлу.
  • description (str) – Описание.
  • branch (str, optional) – Наименование ветки, если не передавать - то будет использован master.
  • artist_ob (edit_db.artist, optional) – Текущий пользователь, если не передавать, будет сделано edit_db.artist.get_user().
Результат:

(True, path - путь до сохранённого файла) или (False, comment)

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

tuple

create_tasks_from_list(list_of_tasks)

Создание задач ассета по списку.

Параметры:list_of_tasks (list) – Список задач (словари по edit_db.studio.tasks_keys, обязательные параметры: task_name)
Результат:(True, „Ok!“) или (False, comment)
Тип результата:tuple
get_final_cache_file_path(cache_dir_name, activity='cache', extension='.pc2', task_data=False)

Путь к последней версии кеша для меш объекта.

Параметры:
  • cache_dir_name (str) – Имя директории состоиит из имени ассета и имени меш объекта, через нижнее подчёркивание: asset_name + '_' + ob_name.
  • activity (str, optional) – По умолчанию 'cache' (для blender) - для других программ может быть другим, например 'maya_cache'.
  • extension (str, optional) – Расширение файла кеша.
  • task_data (dict) – Не использовать. Работа с текущим объектом.
Результат:

(True, path) или (False, comment)

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

tuple

get_final_publish_file_path()

Пути к top версии паблиш файлов (на локальном сервере студии).

Результат:
[5]Структура словаря {path_data} :
{
'look_path': {
    branch_name : path,
    ...
    },
'publish_path': {
    branch_name : path,
    ...
    },
}
Тип результата:tuple
get_final_push_file_path(current_artist=False)

Возвращает путь и версию финальной push версии файла (на локальном сервере студии).

Параметры:current_artist (edit_db.artist, optional) – Текущий пользователь, если не передавать, будет сделано edit_db.artist.get_user()
Результат:
  • для задач с типом из edit_db.studio.MULTI_PUBLISH_TASK_TYPES - (True, ({path_data} [1], version)) или (False, comment)
  • для остальных - (True, (path, version)) - или (False, comment)
[1]Структура словаря {path_data} :
{
'look_path': {
    branch_name : path,
    ...
    },
'push_path': {
    branch_name : path,
    ...
    },
}
Тип результата:tuple
get_final_work_file_path(current_artist=False)

Возвращает путь и версию последнего рабочего файла, для взятия в работу. Логика тут Task.

Параметры:current_artist (edit_db.artist, optional) – Текущий пользователь, если не передавать, будет сделано edit_db.artist.get_user()
Результат:(True, (path, version)) или (False, comment), если нет ни одного лога вернёт (True, ('', '')).
Тип результата:tuple
get_list(asset_id=False, task_status=False, artist=False)

Получение списка задач ассета (экземпляры).

Параметры:
  • asset_id (str, optional) – id ассета. Передаётся, если список задач требуется не для ассета данной задачи, который есть - edit_db.task.asset.
  • task_status (str, optional) – Фильтр по статусам задач. Значение из edit_db.studio.task_status.
  • artist (str) – Фильтр по username артиста.
Результат:

(True, [список задач - экземпляры]) или (False, коммент)

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

tuple

get_new_cache_file_path(cache_dir_name, activity='cache', extension='.pc2', task_data=False)

Путь к новой версии кеша для меш объекта.

Параметры:
  • cache_dir_name (str) – Имя директории состоиит из имени ассета и имени меш объекта, через нижнее подчёркивание: asset_name + '_' + ob_name.
  • activity (str, optional) – По умолчанию 'cache' (для blender) - для других программ может быть другим, например 'maya_cache'.
  • extension (str, optional) – Расширение файла кеша.
  • task_data (dict) – Не использовать. Работа с текущим объектом.
Результат:

(True, (new_dir_path, new_file_path)) или (False, comment)

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

tuple

get_new_publish_file_path(republish=False, source_log=False, source_version=False)

Пути до файлов новой publish версии (и top, и версию, на локальном сервере студии).

Параметры:
  • republish (bool, optional) – Репаблиш или нет.
  • source_log (dict, optional) – лог источника для паблиша (push или publish), при наличие этого лога версия source_version передавать не имеет смысла.
  • source_version (int, str, optional) – Версия исходника (push или publish) если False - последняя версия.
Результат:

  • для задач с типом из edit_db.studio.MULTI_PUBLISH_TASK_TYPES - (True, ({path_data} [6], new_version, source [7], branches [8])) или (False, comment)
  • для остальных - (True, ({path_data} [9], new_version, source [7])) или (False, comment)
[6]

Структура словаря {path_data} :

{
'top_path': {
    branch_name : path,
    ...
    },
'top_look_path': {
    branch_name : path,
    ...
    },
'version_path': {
    branch_name : path,
    ...
    },
'version_look_path': {
    branch_name : path,
    ...
    },
'source_path': {
    branch_name : path,
    ...
    },
'source_look_path': {
    branch_name : path,
    ...
    },
}

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

tuple

[7](1, 2)

Версия push или publish, откуда делается паблиш.

[8]

Список веток которые паблишатся.

[9]

Структура словаря {path_data} :

{
'top_path': path,
'version_path': path,
'source_path': path,
}

get_new_push_file_path(version=False, current_artist=False)

Возвращает как новые пути и версию для операции push, так и пути и версии исходников из work директории.

Параметры:
  • version (str, int, optional) – Коммит версия исходника (не для задач с типом из edit_db.studio.MULTI_PUBLISH_TASK_TYPES, для задач с этим типом делается push только последних версий каждой ветки).
  • current_artist (edit_db.artist, optional) – Текущий пользователь, если не передавать, будет сделано edit_db.artist.get_user()
Результат:

  • для задач с типом из edit_db.studio.MULTI_PUBLISH_TASK_TYPES - (True, ({path_data} [3], new_version)) или (False, comment)
  • для остальных - (True, (source_path, source_version, source_branch, new_path, new_version)) - или (False, comment)
[3]

Структура словаря {path_data} :

{
'source_path': {
    branch_name : path,
    ...
    },
'source_versions': {
    branch_name : version,
    ...
    },
'push_path': {
    branch_name : path,
    ...
    },
'look_path': {
    branch_name : path,
    ...
    },
}

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

tuple

get_new_work_file_path()

Создание пути для новой commit или pull версии файла.

Результат:(True, (path, version)) или (False, comment)
Тип результата:tuple
get_tasks_by_name_list(task_name_list, assets_data=False)

Возвращает задачи (экземпляры) по списку имён задач, из различных ассетов данного проекта.

Параметры:
  • task_name_list (list) – Список имён задач.
  • assets_data (dict, optional) – Словарь всех ассетов проекта (экземпляры) с ключами по именам. Результат выполнения функции edit_db.asset.get_dict_by_name_by_all_types(). Если не передавать - будет произведено чтение БД.
Результат:

(True, dikt_of_tasks [12]) или (False, comment)

[12]

Структура dikt_of_tasks:

{
    task_name : task_ob (экземпляр задачи),
    ...
}

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

tuple

get_version_cache_file_path(version, cache_dir_name, activity='cache', extension='.pc2', task_data=False)

Путь к определённой версии файла кеша меш объекта.

Параметры:
  • version (str) – Версия hex 4 символа ?.
  • cache_dir_name (str) – Имя директории состоиит из имени ассета и имени меш объекта, через нижнее подчёркивание: asset_name + '_' + ob_name.
  • activity (str, optional) – По умолчанию 'cache' (для blender) - для других программ может быть другим, например 'maya_cache'.
  • extension (str, optional) – Расширение файла кеша.
  • task_data (dict) – Не использовать. Работа с текущим объектом.
Результат:

(True, path) или (False, comment)

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

tuple

get_version_publish_file_path(version=False, branches=False, version_log=False)

Пути до файлов указанной publish версии (на локальном сервере студии).

Параметры:
  • version (str, int, optional) – Номер publish версии.
  • branches (list, optional) – Список веток данного паблиша, для мультипаблиша.
  • version_log (dict) – Словарь лога данной версии, если его передавать, то branches и version не имеют смысла.
Результат:

[4]

Структура словаря {path_data} :

{
'look_path': {
    branch_name : path,
    ...
    },
'publish_path': {
    branch_name : path,
    ...
    },
}

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

tuple

get_version_push_file_path(version, current_artist=False)

Возвращает путь к указанной push версии файла (на локальном сервере студии).

Параметры:
  • version (str, int) – Номер версии
  • current_artist (edit_db.artist, optional) – Текущий пользователь, если не передавать, будет сделано edit_db.artist.get_user()
Результат:

[2]

Структура словаря {path_data} :

{
'look_path': {
    branch_name : path,
    ...
    },
'push_path': {
    branch_name : path,
    ...
    },
}

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

tuple

get_version_work_file_path(version)

Возвращает путь до указанной версии рабочего файла. (обёртка на edit_db.studio._template_get_work_path())

Параметры:version (str, int) – Номер версии
Результат:(True, path) или (False, comment)
Тип результата:tuple
get_versions_list_of_cache_by_object(ob_name, activity='cache', extension='.pc2', task_data=False)

Список версий кеша для меш объекта.

Параметры:
  • ob_name (str) – Имя 3d объекта.
  • activity (str, optional) – По умолчанию 'cache' (для blender) - для других программ может быть другим, например 'maya_cache'.
  • extension (str, optional) – Расширение файла кеша.
  • task_data (dict) – Не использовать. Работа с текущим объектом.
Результат:

(True, cache_versions_list [11]) или (False, comment)

[11]

Структура cache_versions_list (список кортежей):

[
    (num_version '''str''', ob_name,  path),
    ...
]

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

tuple

init(task_name, new=True)

Инициализация по имени, возвращает новый, или инициализирует текущий экземпляр.

Параметры:
  • task_name (str) – Имя задачи
  • new (bool) – Если True - возвращает новый инициализированный экземпляр, если False то инициализирует текущий экземпляр.
Результат:

  • если new= True - экземпляр класса edit_db.task,
  • если new= False - (True, „Ok!“) или (False, comment)

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

edit_db.task, tuple

init_by_keys(keys, new=True, new_asset=False)

Инициализация по словарю (без чтения БД), возвращает новый, или инициализирует текущий экземпляр.

Параметры:
  • keys (dict) – словарь по edit_db.studio.tasks_keys
  • new (bool, optional) – если True - возвращает новый инициализированный экземпляр, если False то инициализирует текущий.
  • new_asset (edit_db.asset, optional) – Новый экземпляр ассета, если надо его поменять, либо определить.
Результат:

  • если new= True - экземпляр класса edit_db.task,
  • если new= False - (True, „Ok!“) или (False, comment)

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

edit_db.task, tuple

look(action='push', version=False, launch=True)

Просмотр какой-либо версии файла для менеджеров (push, publish версии).

Примечание

Если тип задачи из edit_db.studio.MULTI_PUBLISH_TASK_TYPES (например sketch) то запуска не будет, но будут возвращены пути.

Параметры:
  • action (str, optional) – Экшен из [push, publish]
  • version (int, str, optional) – Версия, если False - то открывается последняя.
  • launch (bool, optional) – Если False - возвращает только путь, иначе запуск редактором по расширению.
Результат:

Возвращаемые данные аналогичны тому что возвращается при выполнении функций:

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

tuple

make_first_reader(username)

обозначение превого проверяющего, только после его проверки есть смысл проверять остальным проверяющим, и только после его приёма данная задача появится в списке на проверку у остальных читателей. Предполагается что это технический проверяющий от отдела, где идёт работа.

Параметры:username (str) – Никнейм.
Результат:(True, readers - (слорварь в формате записи как edit_db.task.readers), change_status - (bool)) или (False, comment)
Тип результата:tuple
open_file(look=False, current_artist=False, tasks=False, input_task=False, open_path=False, version=False, launch=True)

Откроет файл в приложении - согласно расширению.

Примечание

заполнение: edit_db.task.time, edit_db.task.full_time, artist_log.full_time

Параметры:
  • look (bool, optional) – Если True - то статусы меняться не будут, если False - то статусы меняться будут.
  • current_artist (edit_db.artist, optional) – Текущий пользователь, если не передавать, будет сделано edit_db.artist.get_user()
  • tasks (dict, optional) – Словарь задач данного артиста по именам (результат функции edit_db.artist.get_working_tasks()). - нужен для случая когда look = False, при отсутствии будет считан - лишнее обращение к БД.
  • input_task (edit_db.task, optional) – Входящая задача - для open_from_input (если передавать - то имеется ввиду открытие из активити входящей задачи).
  • open_path (str, optional) – Путь к файлу - указывается для open_from_file (открытие из указанного файла).
  • version (str, int, optional) – Версия рабочего файла активити - если указать то будет открытие рабочего файла этой версии.
  • launch (bool, optional) –
    • Если True - то будет произведён запуск приложением, которое установлено в соответствии с данным расширением файла (для универсальной юзерской панели и для менеджерской панели, при открытии на проверку),
    • если False - то запуска не будет, но все смены статусов произойдут и будет возвращён путь к файлу - для запуска из плагина.
Результат:

(True, file_path - куда открывается файл) или (False, coment).

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

tuple

publish_task(description=False, republish=False, source_version=False, source_log=False, current_artist=False)

Перекладывание паблиш версии файлов (в том числе top версии), запись лога.

Параметры:
  • description (str, optional) – Краткое описание, не обязательный параметр, при отсутствии составляется автоматически - техническое описание: что, откуда, куда.
  • republish (bool, optional) – Если True - то делается репаблиш, а именно перезапись в финал и в top, какой-либо указанной паблиш версии.
  • source_version (str, int, optional) – Версия push или publish (при репаблише), если False при паблише - то паблиш из последней пуш версии.
  • source_log (dict, optional) – Лог версии источника, при его наличии source_version не имеет смысла.
  • current_artist (edit_db.artist, optional) – Текущий пользователь, если не передавать, будет сделано edit_db.artist.get_user()
Результат:

(True, message) или (False, comment).

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

tuple

push(description, version=False, current_artist=False)

Создание новой push версии на сервере студии, или выгрузка архива в облако для создания push версии на сервере студии (для аутсорса).

Внимание

Для аутсорса пока не сделано, только для работников студии.

Параметры:
  • description (str) – Краткое описание.
  • version (str, int, optional) – work версия из которой делается push, не имеет смысла для задач с типом из edit_db.studio.MULTI_PUBLISH_TASK_TYPES, там только из последней версии.
  • current_artist (edit_db.artist, optional) – Текущий пользователь, если не передавать, будет сделано edit_db.artist.get_user()
Результат:

(True, message) или (False, comment)

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

tuple

readers_accept_task(current_artist)

приём задачи текущим проверяющим, изменение статуса в edit_db.task.readers, если он последний то смена статуса задачи на done (со всеми вытикающими сменами статусов).

Параметры:current_artist (edit_db.artist) – Артист - экземпляр.
Результат:(True, „Ok!“) или (False, comment)
Тип результата:tuple
remove_readers(remove_readers_list)

Удаляет проверяющего из списка проверяющих, а также удалит его как первого проверяющего, если он таковой.

Параметры:remove_readers_list (list) – Список никнеймов удаляемых из списка проверяющих.
Результат:(True, readers - (слорварь в формате записи как edit_db.task.readers), change_status - (bool)) или (False, comment)
Тип результата:tuple
return_a_job_task()

Возврат в работу задачи из завершённых статусов - edit_db.studio.END_STATUSES, со всеми вытекающими изменениями статусов исходящих задачь. Изменяемый параметр edit_db.task.status.

Результат:(True, new_status) или (False, comment)
Тип результата:tuple
rework_task(current_user)

Отправка задачи на переработку из статуса на проверке (ready_to_send), при этом проверяется наличие свежего (последние 30 минут) коментария от данного проверяющего (current_user). Изменяемый параметр edit_db.task.status.

Параметры:current_user (edit_db.artist) – Экземпляр класса артист, должен быть инициализирован. Если передать False - то задача отправится на переделку без проверки чата (для тех нужд).
Результат:(True, „Ok!“) или (False, comment)
Тип результата:tuple
run_file(path, viewer=False)

Запуск файлов редактором или вьювером, создание tmp копии файла.

Параметры:
  • path (str) – Путь до оригинального файла.
  • viewer (bool, optional) – Если True - открытие вьювером по оригинальному пути (tmp копии не создаётся).
Результат:

(True, path [10]) или (False, comment)

[10]

path - путь до открываемого файла, оригинальный или tmp.

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

tuple

to_checking()

Отправка текущей задачи на проверку. Обёртка на edit_db.task.change_work_statuses. Изменение параметра edit_db.task.status на ready_to_send.

Результат:(True, „Ok!“) или (False, comment)
Тип результата:tuple