Task

New Attributes

source

Note

параметр (json) Список имён задач - исходников.

  • Запись только в принимающей задаче.

  • Подтягивать в сцену объекты в зависимости от типа ассета, задачи и активити.
    • Редактируемый словарь:
      { app_name :

      { this_task_type : { source_activity : тип подгружаемого объекта ( group или mesh или ещё что-то) } } –//–

      }

    • хранение .json

    • Иметь дефолт.

    • Редактор:
      • редактирование,
      • возможность отката до дефолта,
      • возможность импорта из другого проекта.

description

Note

параметр (text) Описание задачи.

  • Колонку в set_of_tasks
  • Поле ввода в панели создания единичной задачи.
  • Редактор в task_manager

level

Note

параметр (text) Пользовательский уровень задачи, с привязкой к planned_time и price

  • Выбор и назначение level в task_manager
    • максимальное отображение инфы о level в gui
    • при назначении так же заполняются planned_time и price
    • при этом остаётся возможность изменения вручную этих параметров.

open_time

Note

параметр (timestamp) Время открытия задачи.

  • Не имеет значения записан или нет в БД.
  • Заполняется при открытии задачи (взятии в работу)

time

Note

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

  • заполняется при выполнении commit (ссумирование к сущестующему значению)
  • получается разница между open_time и временем выполнения commit

full_time

Note

параметр (?) Общее время затраченное на задачу всеми артистами, кто вёл работу над ней.

  • заполняется при выполнении commit (ссумирование к сущестующему значению)
  • получается разница между open_time и временем выполнения commit

deadline

Note

параметр (timestamp) дата окончания работ по задаче.

  • расчитывается один раз при первом open на основе planned_time. ?
  • возможно делать перерасчёт по всем дедлайнам не выполненных задач, в случае перерасчёта общего дедлайна проекта. ?

New Methods

Work пути

get_final_work_file_path()

Путь до финальной версии, чтобы взять в работу.

Студийный работник:

  • загрузка push + commit + pull списков без учёта пользователя.
  • если последняя запись commit или pull - то берём по этой версии.
    • если файл этой версии не в work директории данного пользователя, то будет предложено сделать push.
  • если последняя запись push:
    • не sketch:
      • если commit версия этого push находится в work директории данного пользователя - то эта commit версия.
      • иначе - push версия.
    • sketch:
      • выбираем последний номер версии из log.source:
        • если данный файл есть в рабочей директории данного пользователя - то это он
        • если его нет - то предлагать сделать pull.
  • return - (path, номер версии)

Аутсорс:

  • загрузка push + commit + pull списков без учёта пользователя.
  • если последняя запись commit или pull - то берём эту версию.
    • если файл этой версии не в work директории данного пользователя, то будет предложено сделать push.
  • если последняя запись push:
    • не sketch:
      • если commit версия этого push находится в work директории данного пользователя - то эта commit версия.
      • иначе - предлагается обратится к менеджеру, чтобы выгрузить последнюю push версию в облако и затем сделать pull.
    • sketch:
      • если файл последней версии из log.source есть в рабочей директории данного пользователя - то это он.
      • иначе - предлагается обратится к менеджеру, чтобы выгрузить последнюю push версию в облако и затем сделать pull.
get_version_work_file_path()
  • обёртка на studio.template_get_work_path()
  • получение шаблонного пути версии данной задачи, с проверкой существования.
  • возврат path без номера версии.
get_new_work_file_path()
  • определение новой версии по pull + commit логам, чтение бд.
  • return - (path, version) - версия нужна для создания лога.

Push пути

get_final_push_file_path()

Студийный работник:

  • Загрузка push списка без учёта пользователя
  • По последнему push
  • return:
    • для sketch: ({словарь - return_data}, номер версии)
      • структура return_data:
        • ключ: push_path, значение - словарь путей файлов по именам веток.
        • ключ: look_path, значение - словарь путей look версий файлов по именам веток.
    • для всех остальных: (path, номер версии)

Аутсорс:

  • игнор
get_version_push_file_path()

Студийный работник:

  • Загрузка push списка без учёта пользователя
  • По указанной версии
  • return:
    • для sketch: {словарь - ключ branch: значение path}
    • для всех остальных: path

Аутсорс:

  • игнор
get_new_push_file_path()
  • push - это перезапись + создание look версий для sketch
  • что надо:
    • путь откуда пишем (указанная или последняя commit,pull версия)
    • путь куда пишем (определение новой версии по push логу)
    • проверка на совпадение версии commit,pull источника с версией источника последнего push
  • return:
    • для sketch: ({словарь - return_data}, номер версии)
      • структура return_data:
        • ключ: source_path, значение - словарь путей исходников по именам веток.
        • ключ: source_versions, значение - словарь версий исходников по именам веток.
        • ключ: push_path, значение - словарь новых путей для файлов по именам веток.
        • ключ: look_path, значение - словарь новых путей look версий файлов по именам веток.
    • для всех остальных: ((source_path, new_push_path), номер версии)
  • для аутсорса иная история, связанная с выгрузкой на сервер.

Паблиш пути

get_version_publish_file_path()
  • Путь до файлов в директории.
  • Для скеча весь набор
get_final_publish_file_path()
  • Путь до файлов, которые сверху в директории publish
  • Если нужны пути из директории версии, то это version path
get_new_publish_file_path()
  • Новые пути
  • Пути исодников это version_push_path или version_publish_path в случае перепаблиша.
  • Структура данных должна совпадать со структурой push.