Задача [0156, часть 5]: Шаблоны проектов в основном приложении

Формулировка проблемы: необходим интерфейс для настройки шаблона проекта.

Связанные задачи: 0156, часть 1, 0156, часть 2, 0156, часть 3, 0156, часть 4.

Общее решение по «Шаблонам проектов» поделено на 5 задач. В данной задаче рассмотрены все интерфейсные задачи по настройке шаблона проекта в основном приложении.

Решение:

Во-первых, необходимо доработать эргономику следующих диалогов в модуле "Проекты":

Создание / редактирование проекта

Необходимо внести следующие изменения в диалоги создания и редактирования проекта:

Дополнительно только для диалога создания проекта:

Рисунок 8. Создание проекта

Создание проекта

Рисунок 9. Редактирование проекта

Редактирование проекта

Настройки проекта, созданного по шаблону (вкладка "Общее")

Во вкладке "Общее" после поля "Паспорт проекта" необходимо добавить нередактируемое поле Шаблон проекта со значением шаблона, выбранного для данного проекта.

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

Примечание

Внешний вид поля должен быть аналогичным полям "Ссылка на проект".

Рисунок 10. Настройки проекта

Настройки проекта

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

Что касается установлении дат мероприятий / проекта, то необходимо придерживаться следующих особенностей:

Пример присвоения дат начала / завершения проекта по шаблону

Рассмотрим данную схему определения дат проекта по шаблону на следующем примере:

Структурный номер мероприятия Длительность Зависит (настройка в Конфигураторе)

1

1.1

7

1.2

14

SF (1.1; 7)

1.3

3

1.4

7

FS (1.3; 21)

1.5

14

SF (1.4; -3)

FS (1.7; 7)

1.6

10

FF (1.7; 14)

1.7

14

SS (1.8; 0)

1.8

3

В качестве даты начала проекта задаем 29.6 и определяем даты начала / завершения мероприятий без зависимостей.

При этом условимся, что календарь системы имеет 5ти дневное представление рабочих дней (понедельник - пятница включительно) и не имеет иных выходных / праздничных дней на период, охватываемый данным примером.

Для определения алгоритма расстановки дат обозначаем граф зависимостей:

Рисунок 11. Граф зависимостей

Граф зависимостей

Таким образом, можно разделить данный проект на три ветки:

Так как мероприятие 1.5 имеет две зависимости, необходимо определять его сроки отдельно и после заполнения остальных дат.

Структурный номер мероприятия Длительность Начало Завершение Зависит (настройка в Конфигураторе)

1.1

7

29.6

7.7

1.2

14

SF (1.1; 7)

Структурный номер мероприятия Длительность Начало Завершение Зависит (настройка в Конфигураторе)

1.3

3

29.6

1.7

1.4

7

FS (1.3; 21)

Структурный номер мероприятия Длительность Начало Завершение Зависит (настройка в Конфигураторе)

1.6

10

FF (1.7; 14)

1.7

14

SS (1.8; 0)

1.8

3

29.6

1.7

Структурный номер мероприятия Длительность Начало Завершение Зависит (настройка в Конфигураторе)

1.5

14

SF (1.4; -3)

FS (1.7; 7)

Далее определим даты начала / завершения для каждой ветки.

1.1 - 1.2

1.3 - 1.4

1.6 - 1.8

1.5

Присваиваем данному мероприятию более позднюю пару дат - 28.7 - 14.8.

Таким образом, финальные сроки проекта в основном приложении выглядят следующим образом:

Структурный номер мероприятия Длительность Начало Завершение Зависит

1

41

18.6

14.8

1.1

7

29.6

7.7

1.2

14

18.6

7.7

1.1

1.3

3

29.6

1.7

1.4

7

31.7

10.8

1.3

1.5

14

28.7

14.8

1.4, 1.7

1.6

10

23.7

5.8

1.7

1.7

14

29.6

16.7

1.8

1.8

3

29.6

1.7

При этом из-за настроенной зависимости мероприятия 1.2 дата начала проекта будет меньше, чем установленная пользователем, создающим проект.

Рисунок 12. Размеры и отступы в диалогах создания / редактирования проекта

Размеры и отступы в диалогах создания / редактирования проекта

Рисунок 13. Отступы в диалоге настроек проекта

Отступы в диалоге настроек проекта