Only show non-rendered field errors in toast

When script form validation fails, display error messages for fields not
in fieldsets. Fields in fieldsets show inline errors only; hidden fields
show toast notifications to provide feedback instead of failing silently.
This commit is contained in:
Jason Novinger
2025-10-21 11:54:46 -05:00
parent 2fdd46f64c
commit 5fbae8407e
2 changed files with 34 additions and 5 deletions

View File

@@ -1486,10 +1486,14 @@ class ScriptView(BaseScriptView):
return redirect('extras:script_result', job_pk=job.pk)
else:
messages.error(
request,
'; '.join(f"{field}: {', '.join(errors)}" for field, errors in form.errors.items())
)
fieldset_fields = {field for _, fields in script_class.get_fieldsets() for field in fields}
hidden_errors = {
field: errors for field, errors in form.errors.items()
if field not in fieldset_fields
}
if hidden_errors:
error_msg = '; '.join(f"{field}: {', '.join(errors)}" for field, errors in hidden_errors.items())
messages.error(request, error_msg)
return render(request, 'extras/script.html', {
'object': script,