From 29b39b2793fa6d2f1f4299c81868ce3575aa72f9 Mon Sep 17 00:00:00 2001 From: Moritz Date: Tue, 16 Dec 2025 12:19:57 +0100 Subject: [PATCH] fix: handle form errors correctly in membership fee settings - Fix Protocol.UndefinedError when iterating over form errors - Handle both tuple and list error formats - Prevents crash when saving settings with validation errors --- lib/mv_web/live/membership_fee_settings_live.ex | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/mv_web/live/membership_fee_settings_live.ex b/lib/mv_web/live/membership_fee_settings_live.ex index 5ca32e9..43a15eb 100644 --- a/lib/mv_web/live/membership_fee_settings_live.ex +++ b/lib/mv_web/live/membership_fee_settings_live.ex @@ -101,8 +101,11 @@ defmodule MvWeb.MembershipFeeSettingsLive do )}) - <%= for {msg, _opts} <- @form.errors[:default_membership_fee_type_id] || [] do %> -

{msg}

+ <%= if @form.errors[:default_membership_fee_type_id] do %> + <%= for error <- List.wrap(@form.errors[:default_membership_fee_type_id]) do %> + <% {msg, _opts} = if is_tuple(error), do: error, else: {error, []} %> +

{msg}

+ <% end %> <% end %>

{gettext( @@ -125,8 +128,11 @@ defmodule MvWeb.MembershipFeeSettingsLive do {gettext("Include joining cycle")} - <%= for {msg, _opts} <- @form.errors[:include_joining_cycle] || [] do %> -

{msg}

+ <%= if @form.errors[:include_joining_cycle] do %> + <%= for error <- List.wrap(@form.errors[:include_joining_cycle]) do %> + <% {msg, _opts} = if is_tuple(error), do: error, else: {error, []} %> +

{msg}

+ <% end %> <% end %>