Configurable member field "required" flag and Vereinfacht-required fields closes #440 #441

Merged
moritz merged 13 commits from fix/required_fields into main 2026-02-23 23:28:36 +01:00
Showing only changes of commit b3b8b31c0f - Show all commits

View file

@ -500,14 +500,17 @@ defmodule Mv.Membership.Member do
end
end
# Validate required custom fields (actor from validation context only; no fallback)
# Validate required custom fields (actor from validation context only; no fallback).
# Only for create_member/update_member; skip for set_vereinfacht_contact_id (internal sync
# only sets vereinfacht_contact_id; custom fields were already validated and saved).
validate fn changeset, context ->
provided_values = provided_custom_field_values(changeset)
actor = context.actor
case Mv.Membership.list_required_custom_fields(actor: actor) do
{:ok, required_custom_fields} ->
missing_fields = missing_required_fields(required_custom_fields, provided_values)
missing_fields =
missing_required_fields(required_custom_fields, provided_values)
if Enum.empty?(missing_fields) do
:ok
@ -543,7 +546,8 @@ defmodule Mv.Membership.Member do
message:
"Unable to validate required custom fields. Please try again or contact support."}
end
end
end,
where: [action_is([:create_member, :update_member])]
# Validate member fields that are marked as required in settings or by Vereinfacht.
# When settings cannot be loaded, we still enforce email + Vereinfacht-required fields.