it-swarm-es.com

Eliminar el estado "obligatorio" del campo Fecha

Tengo un campo que actualmente está marcado como obligatorio. Sin embargo, quiero que esto sea necesario para todos los roles excepto el de administrador. Hice un módulo que implementa hook_form_alter(), y pude eliminar el estado requerido para todos los campos excepto los campos de fecha. ¿Alguna idea de qué configuración necesito cambiar?

Además, he intentado modificarlo en hook_form_alter(), así como hacerlo en el '#after_build'. Allí tampoco tuve suerte.

5
mikesir87

Lo más probable es que esto se deba a que no solo usa un campo de fecha simple, sino uno proporcionado por, por ejemplo, el módulo de fecha.

Debe asegurarse de que el módulo que implementa su hook_form_alter se ejecuta en último lugar. De esa manera, ningún otro módulo puede volver a cambiarlo a "requerido".

Además, algunos módulos implementan un "requerido" diferente en conjunto. P.ej. la lógica empresarial "si se establece la fecha de inicio, la fecha de finalización también es necesaria" no se puede implementar con indicadores simples "obligatorios", pero se activará en el hook_validations para ese formulario.

Para anular eso, deberá excluir ciertas validaciones de la ejecución, eliminándolas del element_validate o de todos los formularios #validate.

Es posible que desee reemplazar estas validaciones originales con sus propias copias, para asegurarse de no cambiar el comportamiento desagradable.

3
berkes