From 35b0681fc07239b07ca5841fc83f861846b66da5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Timo=20Br=C3=B6skamp?= Date: Thu, 12 Mar 2026 14:13:54 +0100 Subject: [PATCH 1/4] Fixed the need for the end date to be set even when open end is checked --- .../volto/src/helpers/FormValidation/FormValidation.jsx | 1 + packages/volto/src/helpers/FormValidation/validators.ts | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/volto/src/helpers/FormValidation/FormValidation.jsx b/packages/volto/src/helpers/FormValidation/FormValidation.jsx index 38e7734a933..507e91a038e 100644 --- a/packages/volto/src/helpers/FormValidation/FormValidation.jsx +++ b/packages/volto/src/helpers/FormValidation/FormValidation.jsx @@ -85,6 +85,7 @@ const validateRequiredFields = ( schema.properties[requiredField] && schema.properties[requiredField].type !== 'boolean' && !schema.properties[requiredField].readonly && + !formData.open_end && isEmpty ) { errors[requiredField] = []; diff --git a/packages/volto/src/helpers/FormValidation/validators.ts b/packages/volto/src/helpers/FormValidation/validators.ts index af87f4baf03..a4e4162e839 100644 --- a/packages/volto/src/helpers/FormValidation/validators.ts +++ b/packages/volto/src/helpers/FormValidation/validators.ts @@ -160,7 +160,8 @@ export const startEventDateRangeValidator = ({ formatMessage, }: Validator) => { const isValid = - value && formData.end && new Date(value) < new Date(formData.end); + (value && formData.end && new Date(value) < new Date(formData.end)) || + formData.open_end; return !isValid ? formatMessage(messages.startEventRange, { endDateValueOrEndFieldName: formData.end || 'end', @@ -175,7 +176,8 @@ export const endEventDateRangeValidator = ({ formatMessage, }: Validator) => { const isValid = - value && formData.start && new Date(value) > new Date(formData.start); + (value && formData.start && new Date(value) > new Date(formData.start)) || + formData.open_end; return !isValid ? formatMessage(messages.endEventRange, { startDateValueOrStartFieldName: formData.start || 'start', From 4a2d0766fb0d179aeb51c69ad29ddd3b6b26b5f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Timo=20Br=C3=B6skamp?= Date: Thu, 12 Mar 2026 14:15:34 +0100 Subject: [PATCH 2/4] reverted one unnecessary change --- packages/volto/src/helpers/FormValidation/FormValidation.jsx | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/volto/src/helpers/FormValidation/FormValidation.jsx b/packages/volto/src/helpers/FormValidation/FormValidation.jsx index 507e91a038e..38e7734a933 100644 --- a/packages/volto/src/helpers/FormValidation/FormValidation.jsx +++ b/packages/volto/src/helpers/FormValidation/FormValidation.jsx @@ -85,7 +85,6 @@ const validateRequiredFields = ( schema.properties[requiredField] && schema.properties[requiredField].type !== 'boolean' && !schema.properties[requiredField].readonly && - !formData.open_end && isEmpty ) { errors[requiredField] = []; From 0b94430b51280ec9dcf884c7b835da6d88f3d097 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Timo=20Br=C3=B6skamp?= Date: Thu, 12 Mar 2026 15:39:23 +0100 Subject: [PATCH 3/4] added changelog --- packages/volto/news/7993.bugfix | 1 + 1 file changed, 1 insertion(+) create mode 100644 packages/volto/news/7993.bugfix diff --git a/packages/volto/news/7993.bugfix b/packages/volto/news/7993.bugfix new file mode 100644 index 00000000000..c86c54f1ba8 --- /dev/null +++ b/packages/volto/news/7993.bugfix @@ -0,0 +1 @@ +Fixed the requirement to set the end date when "open end" is checked. @TimoBroeskamp \ No newline at end of file From 61305f70b42aef73c37a0ffd9c7bf68e99316673 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20Timo=20Br=C3=B6skamp?= Date: Fri, 13 Mar 2026 13:53:49 +0100 Subject: [PATCH 4/4] When checking open_end formData.end is now set to formData.start and validation adjusted accordingly --- .../volto/src/components/manage/Widgets/DatetimeWidget.jsx | 4 ++++ packages/volto/src/helpers/FormValidation/validators.ts | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/volto/src/components/manage/Widgets/DatetimeWidget.jsx b/packages/volto/src/components/manage/Widgets/DatetimeWidget.jsx index b509f86b6b5..a64cda768ec 100644 --- a/packages/volto/src/components/manage/Widgets/DatetimeWidget.jsx +++ b/packages/volto/src/components/manage/Widgets/DatetimeWidget.jsx @@ -111,6 +111,10 @@ const DatetimeWidgetComponent = (props) => { if (id === 'end' && formData?.open_end) { return null; } + // If open_end is checked set formData.end to formData.start + if (formData?.open_end === true) { + formData.end = formData.start; + } const getInternalValue = () => { return parseDateTime(toBackendLang(lang), value, undefined, moment.default); diff --git a/packages/volto/src/helpers/FormValidation/validators.ts b/packages/volto/src/helpers/FormValidation/validators.ts index a4e4162e839..28bf661ac4e 100644 --- a/packages/volto/src/helpers/FormValidation/validators.ts +++ b/packages/volto/src/helpers/FormValidation/validators.ts @@ -161,7 +161,7 @@ export const startEventDateRangeValidator = ({ }: Validator) => { const isValid = (value && formData.end && new Date(value) < new Date(formData.end)) || - formData.open_end; + (formData.open_end && formData.start === formData.end); return !isValid ? formatMessage(messages.startEventRange, { endDateValueOrEndFieldName: formData.end || 'end', @@ -177,7 +177,7 @@ export const endEventDateRangeValidator = ({ }: Validator) => { const isValid = (value && formData.start && new Date(value) > new Date(formData.start)) || - formData.open_end; + (formData.open_end && formData.start === formData.end); return !isValid ? formatMessage(messages.endEventRange, { startDateValueOrStartFieldName: formData.start || 'start',