Рейтинг:0

Ограничьте доступные даты в мероприятии, где пользователь может зарегистрировать несколько человек на несколько дат в одной форме.

флаг cn
Pin

Контекст проблемы

Я создаю сайт, на котором родители могут записать своих детей в летний лагерь. Родители могут выбрать одну или несколько недель для записи одного или нескольких детей в одну и ту же форму.

Есть 20 мест на каждую неделю и 8 недель на выбор, поэтому родители должны знать, сколько мест доступно на каждой неделе, чтобы успеть записать своих детей (обычно они предпочитают, чтобы их дети шли вместе, но если это невозможно, они могут подписать детские в разные недели).

Пока мой лучший подход:

  • Единая форма для записи в лагерь (веб-форма, отличный модуль)
  • Недели — это опции в элементе «флажки», поэтому возможен множественный выбор недель.
  • Дублируйте предыдущий элемент для каждого дочернего элемента. Я делал это 5 раз, так что родители могут зарегистрировать до 5 детей на одну заявку.
  • Затем я установил обработчики «Ограничение опций / флажков», чтобы установить 20 в качестве предела в каждую неделю.
  • Дублируйте предыдущий обработчик для каждого дочернего элемента (5 раз) и свяжите его с соответствующим элементом «checkboxes».

Проблема с этим подходом заключается в том, что ограничения являются независимыми между элементами, поэтому в той же форме вы можете зарегистрировать пять детей в первую неделю, и 19 мест по-прежнему доступны вместо 15 (20-5).

Комментарии:

  • Я создаю сайты, а не разработчик, у меня крайний срок, поэтому я отказываюсь от разработки модуля.
  • Я пробую "пользовательский составной" элемент, но обработчики для него недоступны.
  • Модуль «Демонстрация веб-формы: система регистрации событий» имеет «глобальный» предел, определенный как поле в типе контента «Демонстрация: событие», управляемое обработчиком, но я не понимаю, как применить его к этому случаю.
Рейтинг:0
флаг in

Я бы сделал это с двумя типами контента, а не с веб-формой:

  1. Доступные слот-даты
  2. Регистрация

Вы создаете контент для доступных дат-слотов (один узел на слот-даты), родители создают контент для регистрации. Контент для регистрации включает в себя основную информацию, необходимую для фона ребенка. После этого вы можете добавить абзац к этому типу контента, который позволит родителям указать неделю, на которую они записывают своих детей. Сделайте это через ссылку объекта на ваш контент, доступные даты слотов.Преимущество этого заключается в том, что абзацы в форме узла/добавления позволяют пользователю добавить еще один абзац (в вашем случае это позволяет им выбрать другую неделю и/или добавить дополнительных детей, не видя дополнительных полей формы или ограничиваясь 5 детьми /подчинение).

Затем вы можете отслеживать, какие из доступных дат слотов были заявлены, создав правило, которое изменяет поле в содержимом доступных дат слотов, на которое ссылались созданные родителем подписки.

Наконец, вы можете отображать только доступные даты родителей, создав представление для ссылки на сущность. Отфильтруйте доступные слот-даты, которые все еще доступны, используя поле индикатора из предыдущего шага. Если вы используете это представление в поле ссылки на сущность, то родители смогут выбирать только еще не заявленные даты.

Pin avatar
флаг cn
Pin
Привет Грейсон, очень интересный подход. Не могли бы вы подробно описать, как выполнить это правило? В частности, часть «Условие». Я предполагаю, что правило «Событие» — «После сохранения элемента регистрации типа контента», а правило «Действие» — «Установить значение данных» в «Доступные даты слотов» на «недоступно».
Grayson Cooper avatar
флаг in
Вот и все! Для условий: 1) Объект имеет поле: [node-created] | Ссылка на сущность; 2) Объект имеет поле: [node-created:entity-reference] | Доступная дата.Затем используйте действие, чтобы установить значение [node-created:entity-reference:date-available]

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.