Как сделать простое отношение между типами материалов

Главные вкладки

Аватар пользователя AmAlAlexander AmAlAlexander 16 октября 2019 в 23:39

Здравствуйте! Подскажите пожалуйста как быстро решить проблему: организация имеет много отделов в отделах есть сотрудники, у сотрудников стоят на должностях, в процессе жизни сотрудник может занимать разные должности, так вот я сделал типы материалов "Сотрудники" и "Отделы" и сделал тип материала "Карьера должности" который состоит из полей "Отдел", "Должность", "Сотрудник", "Дата назначения" и "Дата увольнения". Как сделать так чтобы в поля "Отдел", "Должность", "Сотрудник" нельзя было вставить одинаковые значения, т.е. вообще как в Drupal создаются уникальные поля. В дальнейшем собираюсь в сотруднике выводить его последнюю должность.
Искать по форуму просто нет времени, завел решение простейшей задачи в тупик, а решение нужно прямо сейчас!

Комментарии

Аватар пользователя marassa marassa 17 октября 2019 в 8:42

AmAlAlexander wrote:
Как сделать так чтобы в поля "Отдел", "Должность", "Сотрудник" нельзя было вставить одинаковые значения, т.е. вообще как в Drupal создаются уникальные поля.

Попробуйте для начала четко сформулировать условия задачи. Тогда, глядишь, и решение нарисуется.
Что значит "нельзя вставить одинаковые значения"? А если сотрудник был повышен до старшего кладовщика, а потом за пьянство обратно разжалован в младшие?
При чем здесь "уникальные поля", и как они создаются для Вашего случая в любой другой CMS/фреймворке?

Аватар пользователя AmAlAlexander AmAlAlexander 17 октября 2019 в 10:03

Спасибо за ответы. Да меня интересуют оба случая уникальности, по одному полю и по группе. Да конечно сотрудника могут разжаловать, я об этом не подумал, но всё таки предположим что его не могут разжаловать, а только двигать вверх, либо переводить в другое подразделение, как тогда это реализовать? Я бегло посмотрел модуль unique и не понял, у него что нет реализации для 8?
И еще вопрос: я хочу при создании записи о новой должности сотрудника автоматически заполнять дату увольнения с предыдущей должности, как это реализуется в Drupal 8?

Аватар пользователя gun_dose gun_dose 17 октября 2019 в 10:18

Такие задачи решаются кастомным способом. Например, делаем в профиле две кнопки-ссылки "Перевести в другое подразделение" и "Изменить должность". По клику переходим на ссылку с формой, где есть селекты или радиобаттоны с доступными опциями, из которых исключены ненужные. Выбираем отдел/должность, нажимаем сохранить - форма по отправке создаёт сущность, которую вы описали в первом посте и кидает вас обратно на страницу профиля.

А из формы редактирования юзера эти поля можно просто скрыть, перетащив их мышкой в раздел "Отключено"

Аватар пользователя AmAlAlexander AmAlAlexander 17 октября 2019 в 13:25

Спасибо, я так понял надо использовать модуль Forms и те два что мне посоветовали вначале, а заполнять поле даты увольнения можно будет при обработке формы?

Аватар пользователя ivnish ivnish 17 октября 2019 в 13:27

Как человек, имеющий опыт написания подобных систем, скажу, что одним контрибом тут не отделаться. Хотя я не устаю повторять, что я очень люблю использовать контриб Smile