Задача [0154]: Поддержка виртуальной структуры папок проекта, соответствующих его мероприятиям

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

Используется: Проекты -> Детали.

Решение: необходимо реализовать виртуальную структуру папок при создании проекта согласно всех его мероприятий. Структура папок и их названия повторяют их же у соответствующих мероприятий данного проекта.

Данные папки невозможно создать/удалить/переместить/переименовать самостоятельно.

Иконки папок отличаются согласно их типа:

Папка "Корзина" представляет собой скрытую папку, доступную в следующих случаях:

"Корзина" отображается только в корневой папке для владельца проекта, причем в случае наличия в ней содержимого.

Во всех остальных случаях данная папка не отображается:

Содержимое всех папок отображается в следующем порядке:

При этом столбец "Загрузил" для виртуальных папок (включая "Корзину") пуст.

Также необходимо поддерживать поиск как по физическим папкам, так и виртуальным (включая "Корзину") согласно правам авторизованного пользователя.

Папки полностью зависят от соответствующих им мероприятий:

Новая настройка "Действия с файлами папок мероприятий"

Необходимо добавить новую настройку "Действия с файлами папок мероприятий" во вкладку "Настройки" настроек проекта. Она должна представлять собой лейбл "При удалении мероприятий" и выпадающий список со значениями:

  • "Перемещать в папку уровнем выше" - содержимое виртуальной папки удаляемого мероприятия переместится в папку уровнем выше;

  • "Перемещать в корневую папку" - содержимое виртуальной папки удаляемого мероприятия переместится в корневую папку проекта;

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

При наличии дублирующихся папок и файлов необходимо добавлять к файлам и папкам, отличным от оригинальных, timestamp в формате yyyy-MM-dd hh_mm_ss.

Рисунок 276. Виртуальные папки в модуле "Проекты"

Виртуальные папки в модуле "Проекты"

Рисунок 277. Новая настройка проектов

Новая настройка проектов

Действия при обновлении системы

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

Примеры использования

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

Условия: наличие прав на Портфель_1 для сотрудников: * Сотрудник_1 * Сотрудник_2 * Сотрудник_3

  1. Авторизоваться с логином и паролем Сотрудника_1 в модуле "Проекты".

  2. В Портфеле_1 создать Проект_1 со следующей структурой:

    1 Мероприятие_1 2 Мероприятие_2 2.1 Мероприятие_2.1 (ответственный - Сотрудник_2) 2.2 Мероприятие_2.2 (ответственный - Сотрудник_3) 2.2.1 Мероприятие_2.2.1 3 Мероприятие_3

  3. Утвердить Проект_1.

  4. Открыть Проект_1 и нажать на кнопку "Детали" - в области папок отобразились следующие папки:

    Мероприятие_1 Мероприятие_2 Мероприятие_3

  5. Выделить Мероприятие_2 - в области папок отобразились следующие папки::

    Мероприятие_2.1 Мероприятие_2.2

  6. Открыть папку Мероприятие_2.2 - отобразилась папка Мероприятие_2.2.1, в Проекте_1 осталось выделенным Мероприятие_2.

  7. Создать в данной папке папку "Для Сотрудника_3" - отобразились следующие папки:

    Для Сотрудника_3 Мероприятие_2.2.1

  8. Загрузить в текущую папку Изображение.png - отобразились следующие элементы:

    Для Сотрудника_3 Мероприятие_2.2.1 Изображение.png

  9. В Проекте_1 выделить Мероприятие_2.1 - в области папок не отобразилось ни одного элемента.

  10. Загрузить в текущую папку Файл.odt - файл отобразился в области папок.

  11. В Проекте_1 выделить корневое мероприятие - отобразились папки из п. 4.

  12. Создать папку "Разное" - в области папок отобразились следующие папки:

    Мероприятие_1 Мероприятие_2 Мероприятие_3 Разное

Перемещение мероприятий проекта

Условия:

  • наличие проекта со следующей структурой:

    1 Мероприятие_1 2 Мероприятие_2 2.1 Мероприятие_2.1 (ответственный - Сотрудник_2) 2.2 Мероприятие_2.2 (ответственный - Сотрудник_3) 2.2.1 Мероприятие_2.2.1 3 Мероприятие_3

  • наличие следующей структуры папок проекта:

    Мероприятие_1 Мероприятие_2 Мероприятие_2.1 Файл.odt Мероприятие_2.2 Мероприятие_2.2.1 Для Сотрудника_3 Изображение.png Мероприятие_3 Разное

  1. Авторизоваться с логином и паролем Сотрудника_2 в модуле "Проекты".

  2. Открыть Проект_1 и нажать на кнопку "Детали" - в области папок отобразился следующий элемент Файл.odt

  3. Авторизоваться с логином и паролем Сотрудника_3 в модуле "Проекты".

  4. Открыть Проект_1 и нажать на кнопку "Детали" - в области папок отобразились следующие элементы:

    Мероприятие_2.2.1 Для Сотрудника_3 Изображение.png

  5. Авторизоваться с логином и паролем Сотрудника_1 в модуле "Проекты".

  6. Открыть Проект_1 и перенести Мероприятие_3 в ячейку Мероприятия_2.1 - Мероприятие_3 стало дочерним мероприятием мероприятия Мероприятия_2.1.

  7. Нажать на кнопку "Детали" - в области папок отобразились следующие папки:

    Мероприятие_1 Мероприятие_2 Разное

  8. Авторизоваться с логином и паролем Сотрудника_2 в модуле "Проекты".

  9. Открыть Проект_1 и нажать на кнопку "Детали" - в области папок отобразились следующие элементы:

    Мероприятие_3 Файл.odt

Удаление мероприятий проекта (перенос содержимого папки в папку на уровень выше)

Условия:

  • наличие проекта со следующей структурой:

    1 Мероприятие_1 2 Мероприятие_2 2.1 Мероприятие_2.1 (ответственный - Сотрудник_2) 2.2 Мероприятие_2.2 (ответственный - Сотрудник_3) 2.2.1 Мероприятие_2.2.1 3 Мероприятие_3

  • наличие следующей структуры папок проекта:

    Мероприятие_1 Мероприятие_2 Мероприятие_2.1 Файл.odt Мероприятие_2.2 Мероприятие_2.2.1 Для Сотрудника_3 Изображение.png Мероприятие_3 Разное

  1. Авторизоваться с логином и паролем Сотрудника_1 в модуле "Проекты".

  2. В настройках проекта включить настройку "Перемещать содержимое папки удаляемого мероприятия в папку на уровень выше".

  3. Открыть Проект_1 и удалить Мероприятие_2.2.

  4. Выделить корневое мероприятие, нажать на кнопку "Детали" и открыть папку Мероприятие_2 - отобразились следующие элементы:

    Мероприятие_2.1 Мероприятие_2.2.1 Для Сотрудника_3 Изображение.png

  5. Авторизоваться с логином и паролем Сотрудника_2 в модуле "Проекты".

  6. Открыть Проект_1 и нажать на кнопку "Детали" - отобразились следующие элементы:

    Мероприятие_2.1 Мероприятие_2.2.1 Для Сотрудника_3 Изображение.png

Удаление мероприятий проекта (перенос содержимого папки в корневую папку)

Условия:

  • наличие проекта со следующей структурой:

    1 Мероприятие_1 2 Мероприятие_2 2.1 Мероприятие_2.1 (ответственный - Сотрудник_2) 2.2 Мероприятие_2.2 (ответственный - Сотрудник_3) 2.2.1 Мероприятие_2.2.1 3 Мероприятие_3

  • наличие следующей структуры папок проекта:

    Мероприятие_1 Мероприятие_2 Мероприятие_2.1 Файл.odt Мероприятие_2.2 Мероприятие_2.2.1 Для Сотрудника_3 Изображение.png Мероприятие_3 Разное

  1. Авторизоваться с логином и паролем Сотрудника_1 в модуле "Проекты".

  2. В настройках проекта включить настройку "Перемещать содержимое папки удаляемого мероприятия в папку корневого".

  3. Открыть Проект_1 и удалить Мероприятие_2.2.

  4. Выделить корневое мероприятие и нажать на кнопку "Детали" - отобразились следующие элементы:

    Мероприятие_1 Мероприятие_2 Мероприятие_3 Мероприятие_2.2.1 Для Сотрудника_3 Разное Изображение.png

Удаление мероприятий проекта (перенос содержимого папки в Корзину (с доступом только владельца проекта))

Условия:

  • наличие проекта со следующей структурой:

    1 Мероприятие_1 2 Мероприятие_2 2.1 Мероприятие_2.1 (ответственный - Сотрудник_2) 2.2 Мероприятие_2.2 (ответственный - Сотрудник_3) 2.2.1 Мероприятие_2.2.1 3 Мероприятие_3

  • наличие следующей структуры папок проекта:

    Мероприятие_1 Мероприятие_2 Мероприятие_2.1 Файл.odt Мероприятие_2.2 Мероприятие_2.2.1 Для Сотрудника_3 Изображение.png Мероприятие_3 Разное

  1. Авторизоваться с логином и паролем Сотрудника_1 в модуле "Проекты".

  2. В настройках проекта включить настройку "Перемещать содержимое папки удаляемого мероприятия в Корзину (с доступом только владельца проекта)".

  3. Открыть Проект_1 и удалить Мероприятие_2.2.

  4. Выделить корневое мероприятие и нажать на кнопку "Детали" - отобразились следующие элементы:

    Мероприятие_1 Мероприятие_2 Мероприятие_3 Разное Корзина

  5. Открыть папку "Корзина" - отобразились следующие элементы:

    Мероприятие_2.2.1 Для Сотрудника_3 Изображение.png