How to create a field that is required. (Description in Russian) Follow
Good afternoon.
I see a lot of Russian names on the forum. So I will write in Russian. So it will be more convenient to everything.
Задача следующая.
Что-бы при создании проекта, Поле исполнитель было бы обязательным.
Как делал я.
Создал правило в Workflow. Для эксперимента воспользовался примером (пример брал отсюда http://confluence.jetbrains.com/display/YTD5/Custom+Workflow+Repository как указанно он был для даты)
rule no data
when !issue.isReported() {
;
}
Подключил созданное правило к интересующему меня проекту (TaskManagementSystem).
Далее выходит самое интересное.
1.создаю задачу (рис.1)
2. Выбираю проект (к которому прикрепил правило) (рис.2)
3. после чего появляется окно с ошибкой. (рис.3)
4. Проект так и не изменяется. (рис.3)
5. Дата подчёркивается (рис.3)
6. Делаю следующее, сначала вписываю дату. И только после этого выбираю проект. (рис.4)
7. В итоге тоже что и в пунктах 3, 4 и 5. (рис.4)
Что бы я хотел видеть:
Чтобы проверка на запылённость поля (в данном случае дата, а вообще исполнитель) производилась только после того как я нажму «Создать задачу». А до этого, позволяла мне менять проект, писать описание и прочее.
I see a lot of Russian names on the forum. So I will write in Russian. So it will be more convenient to everything.
Задача следующая.
Что-бы при создании проекта, Поле исполнитель было бы обязательным.
Как делал я.
Создал правило в Workflow. Для эксперимента воспользовался примером (пример брал отсюда http://confluence.jetbrains.com/display/YTD5/Custom+Workflow+Repository как указанно он был для даты)
rule no data
when !issue.isReported() {
Due date.required("Please set the Due Date!")
}
Подключил созданное правило к интересующему меня проекту (TaskManagementSystem).
Далее выходит самое интересное.
1.создаю задачу (рис.1)
2. Выбираю проект (к которому прикрепил правило) (рис.2)
3. после чего появляется окно с ошибкой. (рис.3)
4. Проект так и не изменяется. (рис.3)
5. Дата подчёркивается (рис.3)
6. Делаю следующее, сначала вписываю дату. И только после этого выбираю проект. (рис.4)
7. В итоге тоже что и в пунктах 3, 4 и 5. (рис.4)
Что бы я хотел видеть:
Чтобы проверка на запылённость поля (в данном случае дата, а вообще исполнитель) производилась только после того как я нажму «Создать задачу». А до этого, позволяла мне менять проект, писать описание и прочее.
Please sign in to leave a comment.
этого легко добиться заменив условие !isReported() на becomesReported().
Буквально за 15 минут до твоего сообщения, методом научного тыка у меня получилось сделать задачу, по-другому.
Вот так:
rule no assignee
Assignee.required("Введите Исполнителя");
}
Пока тестировал, разницы не заметил. Оба варианта работают. Разве что ошибки разные вылезают, при не заполненном поле.
«Причина ошибки утверждения: Введите исполнителя»
«Assignee is required, details: Введите Исполнителя»
Дмитрий, можешь пояснить в чём разница?
А если указано becomesReported(), то правило сработает только в момент создания ишью.
А вот то, что сообщение не локализовано - это бага - JT-22091.
Благодарю Дмитрий!
То не локализованное сообщение возникает при правиле:
Assignee.required("Введите Исполнителя");
}
При правиле%
rule assert1
when becomesReported() {
Assignee.required("Введите Исполнителя");
}
Сообщение об ошибке на русском.
Сейчас у нас активно правило:
rule Обязательное поле исполнитель
assert !(Assignee == null): "Введите Исполнителя.";
}
Для того чтобы невозможно было создать задачу без исполнителя.
Но возник другой вопрос. Пользователи создают задачу с исполнителем, а уже после создания, меняют исполнителя на «Нет исполнителя» =)))
В общем, ищу варианты как создать такое правило.
Попробовал следующее вравило:
rule Запрет смены исполнителя на "нет исполнителя"
when !issue.isReported() {
Assignee.required(l10n ( Укажите исполнителя! ));
}
Но оно собственно не помогает, так как проверяет заполненность поля исполнитель при каждом обновлении полей, в том числе и ещё до нажатия «Создать задачу». Что собственно мешает создать задачу (даже проект не выбрать).
Подскажите, как должно выглядеть правило, решающее мою проблему?
Ещё раз опишу требования к правилу:
1. Не возможно было создать задачу без исполнителя.
2. Невозможно было сменить исполнителя на «Нет исполнителя» у уже созданной задачи.
Это правило не позволить создать новую задачу без Исполнителя, а также обнулить Исполнителя в уже созданной задаче.
Аналогично можно решить это проблему при помощи assert:
Использовал
rule requirement for assignee
when isReported() || becomesReported() {
Assignee.required("Please");
}
Всё получилось.
П.С.
Кстати, когда тестировал заметил. В случае не заполненного поля при создании задачи появляется ошибка на английском. А при обновлении в уже существующей задаче, на русском.