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
This commit is contained in:
Moritz 2025-12-16 12:19:57 +01:00
parent 8899e1986a
commit 29b39b2793
Signed by: moritz
GPG key ID: 1020A035E5DD0824

View file

@ -101,8 +101,11 @@ defmodule MvWeb.MembershipFeeSettingsLive do
)}) )})
</option> </option>
</select> </select>
<%= for {msg, _opts} <- @form.errors[:default_membership_fee_type_id] || [] do %> <%= if @form.errors[:default_membership_fee_type_id] do %>
<p class="text-error text-sm mt-1">{msg}</p> <%= for error <- List.wrap(@form.errors[:default_membership_fee_type_id]) do %>
<% {msg, _opts} = if is_tuple(error), do: error, else: {error, []} %>
<p class="text-error text-sm mt-1">{msg}</p>
<% end %>
<% end %> <% end %>
<p class="text-sm text-base-content/60 mt-2"> <p class="text-sm text-base-content/60 mt-2">
{gettext( {gettext(
@ -125,8 +128,11 @@ defmodule MvWeb.MembershipFeeSettingsLive do
{gettext("Include joining cycle")} {gettext("Include joining cycle")}
</span> </span>
</label> </label>
<%= for {msg, _opts} <- @form.errors[:include_joining_cycle] || [] do %> <%= if @form.errors[:include_joining_cycle] do %>
<p class="text-error text-sm ml-9 mt-1">{msg}</p> <%= for error <- List.wrap(@form.errors[:include_joining_cycle]) do %>
<% {msg, _opts} = if is_tuple(error), do: error, else: {error, []} %>
<p class="text-error text-sm ml-9 mt-1">{msg}</p>
<% end %>
<% end %> <% end %>
<div class="ml-9 space-y-2"> <div class="ml-9 space-y-2">
<p class="text-sm text-base-content/60"> <p class="text-sm text-base-content/60">