diff --git a/lib/membership/member.ex b/lib/membership/member.ex
index be99b7f..4e85fa8 100644
--- a/lib/membership/member.ex
+++ b/lib/membership/member.ex
@@ -550,11 +550,9 @@ defmodule Mv.Membership.Member do
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.
+ # Validate member fields that are marked as required in settings.
+ # When settings cannot be loaded, enforce only email.
validate fn changeset, _context ->
- vereinfacht_required? = Mv.Config.vereinfacht_configured?()
-
required_fields =
case Mv.Membership.get_settings() do
{:ok, settings} ->
@@ -562,20 +560,17 @@ defmodule Mv.Membership.Member do
normalized = VisibilityConfig.normalize(required_config)
Enum.filter(Mv.Constants.member_fields(), fn field ->
- field == :email ||
- (vereinfacht_required? && Mv.Constants.vereinfacht_required_field?(field)) ||
- Map.get(normalized, field, false)
+ field == :email || Map.get(normalized, field, false)
end)
{:error, reason} ->
Logger.warning(
"Member required-fields validation: could not load settings (#{inspect(reason)}). " <>
- "Enforcing only email and Vereinfacht-required fields."
+ "Enforcing only email."
)
Enum.filter(Mv.Constants.member_fields(), fn field ->
- field == :email ||
- (vereinfacht_required? && Mv.Constants.vereinfacht_required_field?(field))
+ field == :email
end)
end
diff --git a/lib/mv_web/live/member_field_live/form_component.ex b/lib/mv_web/live/member_field_live/form_component.ex
index 5085b8b..84889e5 100644
--- a/lib/mv_web/live/member_field_live/form_component.ex
+++ b/lib/mv_web/live/member_field_live/form_component.ex
@@ -33,7 +33,6 @@ defmodule MvWeb.MemberFieldLive.FormComponent do
assigns
|> assign(:field_attributes, get_field_attributes(assigns.member_field))
|> assign(:is_email_field?, assigns.member_field == :email)
- |> assign(:vereinfacht_required_field?, vereinfacht_required_field?(assigns))
|> assign(:field_label, MemberFields.label(assigns.member_field))
~H"""
@@ -120,22 +119,12 @@ defmodule MvWeb.MemberFieldLive.FormComponent do
<%!-- Line break before Required / Show in overview block --%>
- <%!-- Required: disabled for email (always required) or Vereinfacht-required fields when integration is active --%>
+ <%!-- Required: disabled for email (always required); else configurable in settings --%>
<.input
- :if={not @is_email_field? and not @vereinfacht_required_field?}
+ :if={not @is_email_field?}
field={@form[:required]}
type="checkbox"
label={gettext("Required")}
@@ -211,12 +200,11 @@ defmodule MvWeb.MemberFieldLive.FormComponent do
end
required =
- socket.assigns.vereinfacht_required_field? ||
- if Map.has_key?(member_field_params, "required") do
- TypeParsers.parse_boolean(member_field_params["required"])
- else
- form.source["required"]
- end
+ if Map.has_key?(member_field_params, "required") do
+ TypeParsers.parse_boolean(member_field_params["required"])
+ else
+ form.source["required"]
+ end
# Merge so we keep name/value_type and have current checkbox state; use as new form source
merged_source =
@@ -247,12 +235,11 @@ defmodule MvWeb.MemberFieldLive.FormComponent do
end
required =
- socket.assigns.vereinfacht_required_field? ||
- if Map.has_key?(member_field_params, "required") do
- TypeParsers.parse_boolean(member_field_params["required"])
- else
- form.source["required"]
- end
+ if Map.has_key?(member_field_params, "required") do
+ TypeParsers.parse_boolean(member_field_params["required"])
+ else
+ form.source["required"]
+ end
field_string = Atom.to_string(socket.assigns.member_field)
@@ -292,20 +279,10 @@ defmodule MvWeb.MemberFieldLive.FormComponent do
normalized_visibility = VisibilityConfig.normalize(visibility_config)
normalized_required = VisibilityConfig.normalize(required_config)
show_in_overview = Map.get(normalized_visibility, member_field, true)
- vereinfacht_required? = Mv.Config.vereinfacht_configured?()
- # Persist in socket so validate/save can enforce server-side without relying on render assigns
- socket =
- assign(
- socket,
- :vereinfacht_required_field?,
- vereinfacht_required_field?(%{member_field: member_field})
- )
- # Email always required; Vereinfacht-required fields when integration active; else from settings
+ # Email always required; else from settings
required =
- member_field == :email ||
- (vereinfacht_required? && Mv.Constants.vereinfacht_required_field?(member_field)) ||
- Map.get(normalized_required, member_field, false)
+ member_field == :email || Map.get(normalized_required, member_field, false)
form_data = %{
"name" => MemberFields.label(member_field),
@@ -338,9 +315,4 @@ defmodule MvWeb.MemberFieldLive.FormComponent do
defp format_error(error) do
inspect(error)
end
-
- defp vereinfacht_required_field?(assigns) do
- Mv.Config.vereinfacht_configured?() &&
- Mv.Constants.vereinfacht_required_field?(assigns.member_field)
- end
end
diff --git a/lib/mv_web/live/member_field_live/index_component.ex b/lib/mv_web/live/member_field_live/index_component.ex
index 97dc9ff..2285d90 100644
--- a/lib/mv_web/live/member_field_live/index_component.ex
+++ b/lib/mv_web/live/member_field_live/index_component.ex
@@ -172,19 +172,15 @@ defmodule MvWeb.MemberFieldLive.IndexComponent do
member_fields = Mv.Constants.member_fields()
visibility_config = settings.member_field_visibility || %{}
required_config = settings.member_field_required || %{}
- vereinfacht_required? = Mv.Config.vereinfacht_configured?()
-
normalized_visibility = VisibilityConfig.normalize(visibility_config)
normalized_required = VisibilityConfig.normalize(required_config)
Enum.map(member_fields, fn field ->
show_in_overview = Map.get(normalized_visibility, field, true)
- # Email always required; Vereinfacht-required fields when integration active; else from settings
+ # Email always required; else from settings
required =
- field == :email ||
- (vereinfacht_required? && Mv.Constants.vereinfacht_required_field?(field)) ||
- Map.get(normalized_required, field, false)
+ field == :email || Map.get(normalized_required, field, false)
attribute = Info.attribute(Mv.Membership.Member, field)
diff --git a/lib/mv_web/live/member_live/form.ex b/lib/mv_web/live/member_live/form.ex
index abb29e3..6d187fa 100644
--- a/lib/mv_web/live/member_live/form.ex
+++ b/lib/mv_web/live/member_live/form.ex
@@ -398,8 +398,6 @@ defmodule MvWeb.MemberLive.Form do
end
defp get_member_field_required_map do
- vereinfacht_required? = Mv.Config.vereinfacht_configured?()
-
case Membership.get_settings() do
{:ok, settings} ->
required_config = settings.member_field_required || %{}
@@ -407,20 +405,15 @@ defmodule MvWeb.MemberLive.Form do
Mv.Constants.member_fields()
|> Enum.map(fn field ->
- required =
- field == :email ||
- (vereinfacht_required? && Mv.Constants.vereinfacht_required_field?(field)) ||
- Map.get(normalized, field, false)
-
+ required = field == :email || Map.get(normalized, field, false)
{field, required}
end)
|> Map.new()
{:error, _} ->
- # Email always required; Vereinfacht fields when integration active
+ # When settings cannot be loaded, only email is required
Map.new(Mv.Constants.member_fields(), fn f ->
- {f,
- f == :email || (vereinfacht_required? && Mv.Constants.vereinfacht_required_field?(f))}
+ {f, f == :email}
end)
end
end
diff --git a/priv/gettext/de/LC_MESSAGES/default.po b/priv/gettext/de/LC_MESSAGES/default.po
index 904386a..982798d 100644
--- a/priv/gettext/de/LC_MESSAGES/default.po
+++ b/priv/gettext/de/LC_MESSAGES/default.po
@@ -2820,11 +2820,6 @@ msgstr "Okt."
msgid "Sep."
msgstr "Sep."
-#: lib/mv_web/live/member_field_live/form_component.ex
-#, elixir-autogen, elixir-format
-msgid "Required for Vereinfacht integration and cannot be disabled."
-msgstr "Für die Vereinfacht-Integration erforderlich und kann nicht deaktiviert werden."
-
#: lib/mv_web/live/member_live/index.html.heex
#: lib/mv_web/translations/member_fields.ex
#, elixir-autogen, elixir-format
diff --git a/priv/gettext/default.pot b/priv/gettext/default.pot
index 8f66f55..5b6ef4c 100644
--- a/priv/gettext/default.pot
+++ b/priv/gettext/default.pot
@@ -2820,11 +2820,6 @@ msgstr ""
msgid "Sep."
msgstr ""
-#: lib/mv_web/live/member_field_live/form_component.ex
-#, elixir-autogen, elixir-format
-msgid "Required for Vereinfacht integration and cannot be disabled."
-msgstr ""
-
#: lib/mv_web/live/member_live/index.html.heex
#: lib/mv_web/translations/member_fields.ex
#, elixir-autogen, elixir-format
diff --git a/priv/gettext/en/LC_MESSAGES/default.po b/priv/gettext/en/LC_MESSAGES/default.po
index b8186ff..a566be0 100644
--- a/priv/gettext/en/LC_MESSAGES/default.po
+++ b/priv/gettext/en/LC_MESSAGES/default.po
@@ -2820,11 +2820,6 @@ msgstr ""
msgid "Sep."
msgstr ""
-#: lib/mv_web/live/member_field_live/form_component.ex
-#, elixir-autogen, elixir-format
-msgid "Required for Vereinfacht integration and cannot be disabled."
-msgstr "Required for Vereinfacht integration and cannot be disabled."
-
#: lib/mv_web/live/member_live/index.html.heex
#: lib/mv_web/translations/member_fields.ex
#, elixir-autogen, elixir-format