Система переноса задач и документов между проектами
Периодически есть необходимость перенести часть задач в другой проект. Это сделать не так просто, так как у разных проектов разные наборы справочников. Соответственно в этой задаче надо сделать систему настройки правил переноса.
- В настройках проекта появляется вкладка правил переноса задач/документов.
- на вкладке список проектов из которых мы можем забирать задачи. Можно добавить туда еще один через мастер, или отредактировать существующие правила.
- мастер покажет в таблице для каждого справочника какие элементы того проекта в какие элементы этого переходят. Не выбранные элементы переходят в deault. (наверное тут было бы не плохо иметь кнопку скопировать элемент из того в проекта в этот)
- Если правило активно и есть на это полномочие в задаче появляется кнопка перенести в проект. По нажатию задаче проставляются id элементов справочников целевого проекта, меняется суффикс, а так же выдается новый номер. По результату генерится событие переноса, чтобы интересующиеся могли обновить у себя инфу (понадобится wiki)
Вопросы:
Какой проект хранит правила переноса, тот чьи задачи уносят другие проекты, или тот, кто принимает задачи?
- кажется что логичнее настраивать в проекте, который забирает задачи, но тогда другие проекты должны как-то узнавать об этих праивлах, чтобы создать в задаче кнопку переноса.
- поэтому правила будет хранить проект передающий задачи. Думается специально их настраивать неудобно, скорее при певой передаче в проект, в который правила еще не настроены, будет открываться мастер настроек.
Итого - правила хранит передающий задачи проект.
К какому проекту относится полномочие переноса задач?
- Кажется, что к обоим, один проект должен лишаться своих задач управляемо.
- Второй должен понимать, что у него появились задачи не от непойми кого. С другй стороны для него это аналогично открытию задачи.
- Первый должен убедиться, что пользователь имеет право вынетси задачу в публичный или чужой, например, проект.
Итого - Передающий проверяет полномочие на передачу задач. Принимающий проверяет полномочие на возможность открыть задачу в нем.
####При переносе что происходит с автором/асайнером задачи? А если у проекта принимающего этих людей нет в полномочиях?
- автор это создавший задачу, он не обязательно участник проекта, и должен корректно отображаться даже если автор не участвует в проекте.
- асайнер это тот, кто в данный момент отвечает за задачу, вероятно его стоит менять на того, кто осуществил перенос, а значит у него должны быть полномочия в проекте в которой уходи задача.
Пока думается. автор остается как был. Асайнером становится тот, кто передал задачу.
Так же очень близка функция не перенос, а копирование задачи. Например в одном проекте копятся задачи от юзеров, их переносят в проект разработчиков. Или в одном проекте задачи pm’ов и архитекторов, где задачи на разработку тз, в другом уже задачи на реализацию. В таком случае полезно было бы кнопкой не переносить, а скопировать задачу и связать с базовой, после чего уже не пустая копия будет доредактироваться под нужности проекта, например обогащаться техническими подробностями т.з. Таким образом имеет смысл подучать о системе так, чтобы она могла и переносить и копировать задачи, может не в первом приближении, но с заделом на это.