Формулировка проблемы: необходима возможность автоматической загрузки файлов, приложенных к мероприятию ответственным пользователем, в виртуальную папку мероприятия.
Используется:
Проекты -> Детали -> виртуальные папки мероприятий
Работы -> работы по мероприятиям проекта
Связанные задачи: Виртуальная структура папок проекта.
Решение: необходимо реализовать поведение Системы, при котором все файлы всех документов не удаленных работ текущих ответственных по мероприятию проекта будут отображаться и в соответствующей виртуальной папке.
Таким образом, для утвержденного проекта внутри виртуальной папки
мероприятия, у которого задан(-ы) ответственный(-ые), необходимо
автоматически создавать папку Файлы работ
.
Соответственно, для неутвержденного проекта этой папки быть не
должно. Эта папка должна быть неизменяемой, неперемещаемой и
неудаляемой. Содержимое папки «Файлы работ»:
папка «Файлы работ» должна содержать список ответственных за мероприятие в виде псевдо-папки с иконкой "участника проекта" (но если ответственный только один, отображать его в списке не нужно, см. сразу следующий шаг);
внутри папки ответственного должны отображаться:
папка "Прочие" (с иконкой желтой папки), внутри которой отображаются файлы прочих;
файлы приложений.
Файлы работ должны быть отсортированны в том же порядке, как и в самой работе. Основной файл должен быть выделен полужирным начертанием.
Возможные действия в папке «Файлы работ»
Внутри папки «Файлы работ» из любого ее уровня вложенности должна быть возможность возврата "домой", а также "на уровень выше", с соответствующим поведением, кнопка "+" недоступна.
Внутри папки ответственного должна быть возможность добавления нового файла (кнопка "+"):
С хранилища
С компьютера
Создать новый
Сканировать
Возможные действия над файлами из работ аналогичен:
Скачать
Скачать PDF версию
Сделать основным
Новая версия
Удалить
При перемещении файла из произвольной папки проекта в диалоговом окне выбора папки должна быть доступна папка «Файлы работ», её инициализированные дочерние псевдо-папки ответственных и папка "Прочие" внутри виртуальной папки мероприятия. Таким образом, возможно добавление файлов к работе по мероприятию непосредственно из файлов проекта. Для добавления файла в "Прочие" необходимо выбрать папку "Прочие", в "Приложения":
при отсутствии псевдо-папкок ответственных - папку "Файлы работ";
при наличии псевдо-папок ответственных - непосредственно псевдо-папку;
Примечание: если в данном варианте для перемещения выбрать папку "Файлы работ" необходимо не выполнять действие и выдавать ошибку:
Невозможно выполнить перемещение в указанную папку
Если при добавлении файла любым из вышеперечисленных способом (кнопка "+", перемещение) доступ в папку "Приложения" отсутствует, файл необходимо положить в "Прочие".
Результаты действий добавления файла, "Сделать основным", "Новая версия" и "Удалить" должны синхронизироваться как в рассматриваемой виртуальной папке, так и непосредственно в документе работы.
Над папками «Файлы работ», «Прочие» и папками ответственных действия (и, соответственно, контекстное меню) отсутствуют.
При удалении мероприятия и, соответственно, виртуальной папки, файлы работ этого мероприятия не должны более отображаться в деталях проекта.
Поиск в модуле «Проекты» должен учитывать все файлы из работ, которые находятся в виртуальной папке.
Действия при обновлении системы
При обновлении системы во всех существующих проектах во всех виртуальных папках должна создасться папка "Файлы работ", содержимое которой будет соответствовать всему описанию выше. Других видимых изменений произойти не должно.
Примеры использования
Условия: наличие утвержденного проекта, в котором Пользователь1 — владелец проекта. Пользователи 2, 3 и 4 — произвольные сотрудники.
Пользователь1 создает Мероприятие1 в проекте.
Пользователь1 добавляет в качестве ответственных за Мероприятие1 Пользователя2 (форма завершения «Файл») и Пользователя3 (форма завершения «форма»).
Пользователь2 добавляет во вложения работы Файл1, в прочие Файл2.
Структура виртуальной папки Мероприятие1:
Мероприятие1
Файлы работ
Пользователь2
Файл1
Прочие
Файл2
Пользователь3
Прочие
Пользователь2 отправляет работу на согласование Пользователю4.
Пользователь4 добавляет во вложения работы Файл3, в прочие Файл4.
Структура виртуальной папки Мероприятие1:
Мероприятие1
Файлы работ
Пользователь2
Файл1
Файл3
Прочие
Файл2
Файл4
Пользователь3
Прочие
Пользователь2 завершает работу по Мероприятию1, указывает в качестве формы завершения Файл5.
Структура виртуальной папки Мероприятие1:
Мероприятие1
Файлы работ
Пользователь2
Файл1
Файл3
Прочие
Файл2
Файл4
Файл5
Пользователь3
Прочие
Пользователь3 завершает работу по Мероприятию1, заполняя форму завершения «форму» (Файл6 в прочих).
Структура виртуальной папки Мероприятие1:
Мероприятие1
Файлы работ
Пользователь2
Файл1
Файл3
Прочие
Файл2
Файл4
Файл5
Пользователь3
Прочие
Файл6