Здравствуйте! Подскажите пожалуйста как быстро решить проблему: организация имеет много отделов в отделах есть сотрудники, у сотрудников стоят на должностях, в процессе жизни сотрудник может занимать разные должности, так вот я сделал типы материалов "Сотрудники" и "Отделы" и сделал тип материала "Карьера должности" который состоит из полей "Отдел", "Должность", "Сотрудник", "Дата назначения" и "Дата увольнения". Как сделать так чтобы в поля "Отдел", "Должность", "Сотрудник" нельзя было вставить одинаковые значения, т.е. вообще как в Drupal создаются уникальные поля. В дальнейшем собираюсь в сотруднике выводить его последнюю должность.
Искать по форуму просто нет времени, завел решение простейшей задачи в тупик, а решение нужно прямо сейчас!
Комментарии
Непонятный вопрос, уникальность внутри поля, или между полями?
https://www.drupal.org/project/unique_field_ajax
https://www.drupal.org/project/unique_field
Попробуйте для начала четко сформулировать условия задачи. Тогда, глядишь, и решение нарисуется.
Что значит "нельзя вставить одинаковые значения"? А если сотрудник был повышен до старшего кладовщика, а потом за пьянство обратно разжалован в младшие?
При чем здесь "уникальные поля", и как они создаются для Вашего случая в любой другой CMS/фреймворке?
Спасибо за ответы. Да меня интересуют оба случая уникальности, по одному полю и по группе. Да конечно сотрудника могут разжаловать, я об этом не подумал, но всё таки предположим что его не могут разжаловать, а только двигать вверх, либо переводить в другое подразделение, как тогда это реализовать? Я бегло посмотрел модуль unique и не понял, у него что нет реализации для 8?
И еще вопрос: я хочу при создании записи о новой должности сотрудника автоматически заполнять дату увольнения с предыдущей должности, как это реализуется в Drupal 8?
Программированием, как и при написании любой информационной системы
Такие задачи решаются кастомным способом. Например, делаем в профиле две кнопки-ссылки "Перевести в другое подразделение" и "Изменить должность". По клику переходим на ссылку с формой, где есть селекты или радиобаттоны с доступными опциями, из которых исключены ненужные. Выбираем отдел/должность, нажимаем сохранить - форма по отправке создаёт сущность, которую вы описали в первом посте и кидает вас обратно на страницу профиля.
А из формы редактирования юзера эти поля можно просто скрыть, перетащив их мышкой в раздел "Отключено"
Спасибо, я так понял надо использовать модуль Forms и те два что мне посоветовали вначале, а заполнять поле даты увольнения можно будет при обработке формы?
Как человек, имеющий опыт написания подобных систем, скажу, что одним контрибом тут не отделаться. Хотя я не устаю повторять, что я очень люблю использовать контриб![Smile](https://drupal.ru/sites/all/modules/contrib/smiley/packs/kolobok/smile.gif)
Спасибо, попробую что нибудь сделать. Как решу проблему отпишусь.