diff --git a/src/servala/frontend/templates/includes/tabbed_fieldset_form.html b/src/servala/frontend/templates/includes/tabbed_fieldset_form.html
index c36f06f..c9d947a 100644
--- a/src/servala/frontend/templates/includes/tabbed_fieldset_form.html
+++ b/src/servala/frontend/templates/includes/tabbed_fieldset_form.html
@@ -4,6 +4,7 @@
method="post"
{% if form_action %}action="{{ form_action }}"{% endif %}>
{% csrf_token %}
+ {% include "frontend/forms/errors.html" %}
{% for fieldset in form.get_fieldsets %}
{% if not fieldset.hidden %}
diff --git a/src/servala/frontend/views/service.py b/src/servala/frontend/views/service.py
index 7e3f162..63420f3 100644
--- a/src/servala/frontend/views/service.py
+++ b/src/servala/frontend/views/service.py
@@ -163,14 +163,12 @@ class ServiceOfferingDetailView(OrganizationViewMixin, HtmxViewMixin, DetailView
)
return redirect(service_instance.urls.base)
except ValidationError as e:
- messages.error(self.request, e.message or str(e))
+ form.add_error(None, e.message or str(e))
except Exception as e:
- messages.error(
- self.request,
- self.organization.add_support_message(
- _(f"Error creating instance: {str(e)}.")
- ),
+ error_message = self.organization.add_support_message(
+ _(f"Error creating instance: {str(e)}.")
)
+ form.add_error(None, error_message)
# If the form is not valid or if the service creation failed, we render it again
context["service_form"] = form
@@ -362,15 +360,13 @@ class ServiceInstanceUpdateView(
)
return redirect(self.object.urls.base)
except ValidationError as e:
- messages.error(self.request, e.message or str(e))
+ form.add_error(None, e.message or str(e))
return self.form_invalid(form)
except Exception as e:
- messages.error(
- self.request,
- self.organization.add_support_message(
- _(f"Error updating instance: {str(e)}.")
- ),
+ error_message = self.organization.add_support_message(
+ _(f"Error updating instance: {str(e)}.")
)
+ form.add_error(None, error_message)
return self.form_invalid(form)
def get_success_url(self):