feat: add member-user link in member view and user view

This commit is contained in:
Moritz 2025-09-26 19:55:06 +02:00
parent 21e7a46881
commit e2bbe1fb40
Signed by: moritz
GPG key ID: 1020A035E5DD0824
2 changed files with 24 additions and 2 deletions

View file

@ -37,6 +37,16 @@ defmodule MvWeb.MemberLive.Show do
<:item title={gettext("Street")}>{@member.street}</:item>
<:item title={gettext("House Number")}>{@member.house_number}</:item>
<:item title={gettext("Postal Code")}>{@member.postal_code}</:item>
<:item title={gettext("Linked User")}>
<%= if @member.user do %>
<.link navigate={~p"/users/#{@member.user}"} class="text-blue-600 hover:text-blue-800 underline">
<.icon name="hero-user" class="h-4 w-4 inline mr-1" />
{@member.user.email}
</.link>
<% else %>
<span class="text-gray-500 italic">{gettext("No user linked")}</span>
<% end %>
</:item>
</.list>
<h3 class="mt-8 mb-2 text-lg font-semibold">{gettext("Custom Properties")}</h3>
@ -67,7 +77,7 @@ defmodule MvWeb.MemberLive.Show do
query =
Mv.Membership.Member
|> filter(id == ^id)
|> load(properties: [:property_type])
|> load([:user, properties: [:property_type]])
member = Ash.read_one!(query)

View file

@ -26,6 +26,16 @@ defmodule MvWeb.UserLive.Show do
<:item title={gettext("Password Authentication")}>
{if @user.hashed_password, do: gettext("Enabled"), else: gettext("Not enabled")}
</:item>
<:item title={gettext("Linked Member")}>
<%= if @user.member do %>
<.link navigate={~p"/members/#{@user.member}"} class="text-blue-600 hover:text-blue-800 underline">
<.icon name="hero-users" class="h-4 w-4 inline mr-1" />
{@user.member.first_name} {@user.member.last_name}
</.link>
<% else %>
<span class="text-gray-500 italic">{gettext("No member linked")}</span>
<% end %>
</:item>
</.list>
</Layouts.app>
"""
@ -33,9 +43,11 @@ defmodule MvWeb.UserLive.Show do
@impl true
def mount(%{"id" => id}, _session, socket) do
user = Ash.get!(Mv.Accounts.User, id, domain: Mv.Accounts, load: [:member])
{:ok,
socket
|> assign(:page_title, gettext("Show User"))
|> assign(:user, Ash.get!(Mv.Accounts.User, id, domain: Mv.Accounts))}
|> assign(:user, user)}
end
end