feat: Add contribution management mock-up pages
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
Add non-functional preview pages for Contribution Types, Settings, and Member Contribution Periods with German translations
This commit is contained in:
parent
75fe26fad8
commit
49184d2631
9 changed files with 2390 additions and 159 deletions
|
|
@ -187,10 +187,16 @@
|
|||
|
||||
**Current State:**
|
||||
- ✅ Basic "paid" boolean field on members
|
||||
- ✅ **UI Mock-ups for Contribution Types & Settings** (2025-12-02)
|
||||
- ⚠️ No payment tracking
|
||||
|
||||
**Open Issues:**
|
||||
- [#156](https://git.local-it.org/local-it/mitgliederverwaltung/issues/156) - Set up & document testing environment for vereinfacht.digital (L, Low priority)
|
||||
- [#226](https://git.local-it.org/local-it/mitgliederverwaltung/issues/226) - Payment/Contribution Mockup Pages (Preview)
|
||||
|
||||
**Mock-Up Pages (Non-Functional Preview):**
|
||||
- `/contribution_types` - Contribution Types Management
|
||||
- `/contribution_settings` - Global Contribution Settings
|
||||
|
||||
**Missing Features:**
|
||||
- ❌ Membership fee configuration
|
||||
|
|
|
|||
|
|
@ -25,6 +25,17 @@ defmodule MvWeb.Layouts.Navbar do
|
|||
<li><.link navigate="/members">{gettext("Members")}</.link></li>
|
||||
<li><.link navigate="/custom_fields">{gettext("Custom Fields")}</.link></li>
|
||||
<li><.link navigate="/users">{gettext("Users")}</.link></li>
|
||||
<li>
|
||||
<details>
|
||||
<summary>{gettext("Contributions")}</summary>
|
||||
<ul class="bg-base-200 rounded-t-none p-2 z-10 w-48">
|
||||
<li><.link navigate="/contribution_types">{gettext("Contribution Types")}</.link></li>
|
||||
<li>
|
||||
<.link navigate="/contribution_settings">{gettext("Contribution Settings")}</.link>
|
||||
</li>
|
||||
</ul>
|
||||
</details>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="flex gap-2">
|
||||
|
|
|
|||
375
lib/mv_web/live/contribution_period_live/show.ex
Normal file
375
lib/mv_web/live/contribution_period_live/show.ex
Normal file
|
|
@ -0,0 +1,375 @@
|
|||
defmodule MvWeb.ContributionPeriodLive.Show do
|
||||
@moduledoc """
|
||||
Mock-up LiveView for Member Contribution Periods (Admin/Treasurer View).
|
||||
|
||||
This is a preview-only page that displays the planned UI for viewing
|
||||
and managing contribution periods for a specific member.
|
||||
It shows static mock data and is not functional.
|
||||
|
||||
## Planned Features (Future Implementation)
|
||||
- Display all contribution periods for a member
|
||||
- Show period dates, interval, amount, and status
|
||||
- Quick status change (paid/unpaid/suspended)
|
||||
- Bulk marking of multiple periods
|
||||
- Notes per period
|
||||
|
||||
## Note
|
||||
This page is intentionally non-functional and serves as a UI mockup
|
||||
for the upcoming Membership Contributions feature.
|
||||
"""
|
||||
use MvWeb, :live_view
|
||||
|
||||
@impl true
|
||||
def mount(_params, _session, socket) do
|
||||
{:ok,
|
||||
socket
|
||||
|> assign(:page_title, gettext("Member Contributions"))
|
||||
|> assign(:member, mock_member())
|
||||
|> assign(:periods, mock_periods())
|
||||
|> assign(:selected_periods, MapSet.new())}
|
||||
end
|
||||
|
||||
@impl true
|
||||
def render(assigns) do
|
||||
~H"""
|
||||
<Layouts.app flash={@flash} current_user={@current_user}>
|
||||
<.mockup_warning />
|
||||
|
||||
<.header>
|
||||
{gettext("Contributions for %{name}", name: "#{@member.first_name} #{@member.last_name}")}
|
||||
<:subtitle>
|
||||
{gettext("Contribution type")}:
|
||||
<span class="font-semibold">{@member.contribution_type}</span>
|
||||
· {gettext("Member since")}: <span class="font-mono">{@member.joined_at}</span>
|
||||
</:subtitle>
|
||||
<:actions>
|
||||
<.link navigate={~p"/contribution_settings"} class="btn btn-ghost btn-sm">
|
||||
<.icon name="hero-arrow-left" class="size-4" />
|
||||
{gettext("Back to Settings")}
|
||||
</.link>
|
||||
</:actions>
|
||||
</.header>
|
||||
|
||||
<%!-- Member Info Card --%>
|
||||
<div class="card bg-base-100 shadow mb-6">
|
||||
<div class="card-body">
|
||||
<div class="grid grid-cols-2 md:grid-cols-4 gap-4">
|
||||
<div>
|
||||
<span class="text-sm text-base-content/60">{gettext("Email")}</span>
|
||||
<p class="font-medium">{@member.email}</p>
|
||||
</div>
|
||||
<div>
|
||||
<span class="text-sm text-base-content/60">{gettext("Contribution Start")}</span>
|
||||
<p class="font-mono">{@member.contribution_start}</p>
|
||||
</div>
|
||||
<div>
|
||||
<span class="text-sm text-base-content/60">{gettext("Total Contributions")}</span>
|
||||
<p class="font-semibold">{length(@periods)}</p>
|
||||
</div>
|
||||
<div>
|
||||
<span class="text-sm text-base-content/60">{gettext("Open Contributions")}</span>
|
||||
<p class="font-semibold text-error">
|
||||
{Enum.count(@periods, &(&1.status == :unpaid))}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<%!-- Contribution Type Change --%>
|
||||
<div class="card bg-base-200 mb-6">
|
||||
<div class="card-body py-4">
|
||||
<div class="flex flex-wrap items-center gap-4">
|
||||
<span class="font-semibold">{gettext("Change Contribution Type")}:</span>
|
||||
<select class="select select-bordered select-sm w-64" disabled>
|
||||
<option selected>{@member.contribution_type} (60,00 €, {gettext("Yearly")})</option>
|
||||
<option>{gettext("Reduced")} (30,00 €, {gettext("Yearly")})</option>
|
||||
<option>{gettext("Honorary")} (0,00 €, {gettext("Yearly")})</option>
|
||||
</select>
|
||||
<span
|
||||
class="text-sm text-base-content/60 cursor-help tooltip tooltip-bottom"
|
||||
data-tip={
|
||||
gettext(
|
||||
"Members can only switch between contribution types with the same payment interval (e.g., yearly to yearly). This prevents complex period overlaps."
|
||||
)
|
||||
}
|
||||
>
|
||||
<.icon name="hero-question-mark-circle" class="size-4 inline" />
|
||||
{gettext("Why are not all contribution types shown?")}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<%!-- Bulk Actions --%>
|
||||
<div class="flex flex-wrap items-center gap-4 mb-4">
|
||||
<span class="text-sm text-base-content/60">
|
||||
{ngettext(
|
||||
"%{count} period selected",
|
||||
"%{count} periods selected",
|
||||
MapSet.size(@selected_periods),
|
||||
count: MapSet.size(@selected_periods)
|
||||
)}
|
||||
</span>
|
||||
<button class="btn btn-sm btn-success" disabled>
|
||||
<.icon name="hero-check" class="size-4" />
|
||||
{gettext("Mark as Paid")}
|
||||
</button>
|
||||
<button class="btn btn-sm btn-ghost" disabled>
|
||||
<.icon name="hero-minus-circle" class="size-4" />
|
||||
{gettext("Mark as Suspended")}
|
||||
</button>
|
||||
<button class="btn btn-sm btn-ghost" disabled>
|
||||
<.icon name="hero-x-circle" class="size-4" />
|
||||
{gettext("Mark as Unpaid")}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<%!-- Periods Table --%>
|
||||
<div class="overflow-x-auto">
|
||||
<table class="table table-zebra">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
<input type="checkbox" class="checkbox checkbox-sm" disabled />
|
||||
</th>
|
||||
<th>{gettext("Time Period")}</th>
|
||||
<th>{gettext("Interval")}</th>
|
||||
<th>{gettext("Amount")}</th>
|
||||
<th>{gettext("Status")}</th>
|
||||
<th>{gettext("Notes")}</th>
|
||||
<th>{gettext("Actions")}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr :for={period <- @periods} class={period_row_class(period.status)}>
|
||||
<td>
|
||||
<input
|
||||
type="checkbox"
|
||||
class="checkbox checkbox-sm"
|
||||
checked={MapSet.member?(@selected_periods, period.id)}
|
||||
disabled
|
||||
/>
|
||||
</td>
|
||||
<td>
|
||||
<div class="font-mono">
|
||||
{period.period_start} – {period.period_end}
|
||||
</div>
|
||||
<div :if={period.is_current} class="badge badge-info badge-sm mt-1">
|
||||
{gettext("Current")}
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<span class="badge badge-outline badge-sm">{format_interval(period.interval)}</span>
|
||||
</td>
|
||||
<td>
|
||||
<span class="font-mono">{format_currency(period.amount)}</span>
|
||||
</td>
|
||||
<td>
|
||||
<.status_badge status={period.status} />
|
||||
</td>
|
||||
<td>
|
||||
<span :if={period.notes} class="text-sm text-base-content/60 italic">
|
||||
{period.notes}
|
||||
</span>
|
||||
<span :if={!period.notes} class="text-base-content/30">—</span>
|
||||
</td>
|
||||
<td class="w-0 font-semibold whitespace-nowrap">
|
||||
<div class="flex gap-4">
|
||||
<.link
|
||||
href="#"
|
||||
class={[
|
||||
"cursor-not-allowed",
|
||||
if(period.status == :paid, do: "invisible", else: "opacity-50")
|
||||
]}
|
||||
>
|
||||
{gettext("Paid")}
|
||||
</.link>
|
||||
<.link
|
||||
href="#"
|
||||
class={[
|
||||
"cursor-not-allowed",
|
||||
if(period.status == :suspended, do: "invisible", else: "opacity-50")
|
||||
]}
|
||||
>
|
||||
{gettext("Suspend")}
|
||||
</.link>
|
||||
<.link
|
||||
href="#"
|
||||
class={[
|
||||
"cursor-not-allowed",
|
||||
if(period.status != :paid, do: "invisible", else: "opacity-50")
|
||||
]}
|
||||
>
|
||||
{gettext("Reopen")}
|
||||
</.link>
|
||||
<.link href="#" class="opacity-50 cursor-not-allowed">
|
||||
{gettext("Note")}
|
||||
</.link>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<.navigation_card />
|
||||
</Layouts.app>
|
||||
"""
|
||||
end
|
||||
|
||||
# Mock-up warning banner component - subtle orange style
|
||||
defp mockup_warning(assigns) do
|
||||
~H"""
|
||||
<div class="border border-warning text-warning bg-base-100 rounded-lg px-4 py-3 mb-6 flex items-center gap-3">
|
||||
<.icon name="hero-exclamation-triangle" class="size-5 shrink-0" />
|
||||
<div>
|
||||
<span class="font-semibold">{gettext("Preview Mockup")}</span>
|
||||
<span class="text-sm text-base-content/70 ml-2">
|
||||
– {gettext("This page is not functional and only displays the planned features.")}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
"""
|
||||
end
|
||||
|
||||
# Status badge component
|
||||
attr :status, :atom, required: true
|
||||
|
||||
defp status_badge(%{status: :paid} = assigns) do
|
||||
~H"""
|
||||
<span class="badge badge-success gap-1">
|
||||
<.icon name="hero-check-circle-mini" class="size-3" />
|
||||
{gettext("Paid")}
|
||||
</span>
|
||||
"""
|
||||
end
|
||||
|
||||
defp status_badge(%{status: :unpaid} = assigns) do
|
||||
~H"""
|
||||
<span class="badge badge-error gap-1">
|
||||
<.icon name="hero-x-circle-mini" class="size-3" />
|
||||
{gettext("Unpaid")}
|
||||
</span>
|
||||
"""
|
||||
end
|
||||
|
||||
defp status_badge(%{status: :suspended} = assigns) do
|
||||
~H"""
|
||||
<span class="badge badge-neutral gap-1">
|
||||
<.icon name="hero-pause-circle-mini" class="size-3" />
|
||||
{gettext("Suspended")}
|
||||
</span>
|
||||
"""
|
||||
end
|
||||
|
||||
# Navigation card
|
||||
defp navigation_card(assigns) do
|
||||
~H"""
|
||||
<div class="card bg-base-100 shadow mt-6">
|
||||
<div class="card-body">
|
||||
<h2 class="card-title">
|
||||
<.icon name="hero-arrow-right-circle" class="size-5" />
|
||||
{gettext("Related Pages")}
|
||||
</h2>
|
||||
<div class="flex flex-wrap gap-3">
|
||||
<.link navigate={~p"/contribution_types"} class="btn btn-outline btn-sm">
|
||||
<.icon name="hero-tag" class="size-4" />
|
||||
{gettext("Contribution Types")}
|
||||
</.link>
|
||||
<.link navigate={~p"/contribution_settings"} class="btn btn-outline btn-sm">
|
||||
<.icon name="hero-cog-6-tooth" class="size-4" />
|
||||
{gettext("Contribution Settings")}
|
||||
</.link>
|
||||
<.link navigate={~p"/members"} class="btn btn-outline btn-sm">
|
||||
<.icon name="hero-users" class="size-4" />
|
||||
{gettext("Members")}
|
||||
</.link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
"""
|
||||
end
|
||||
|
||||
defp period_row_class(:unpaid), do: "bg-error/5"
|
||||
defp period_row_class(:suspended), do: "bg-base-200/50"
|
||||
defp period_row_class(_), do: ""
|
||||
|
||||
# Mock member data
|
||||
defp mock_member do
|
||||
%{
|
||||
id: "123",
|
||||
first_name: "Maria",
|
||||
last_name: "Weber",
|
||||
email: "maria.weber@example.de",
|
||||
contribution_type: gettext("Regular"),
|
||||
joined_at: "15.03.2021",
|
||||
contribution_start: "01.01.2021"
|
||||
}
|
||||
end
|
||||
|
||||
# Mock periods data
|
||||
defp mock_periods do
|
||||
[
|
||||
%{
|
||||
id: "p1",
|
||||
period_start: "01.01.2025",
|
||||
period_end: "31.12.2025",
|
||||
interval: :yearly,
|
||||
amount: Decimal.new("60.00"),
|
||||
status: :unpaid,
|
||||
notes: nil,
|
||||
is_current: true
|
||||
},
|
||||
%{
|
||||
id: "p2",
|
||||
period_start: "01.01.2024",
|
||||
period_end: "31.12.2024",
|
||||
interval: :yearly,
|
||||
amount: Decimal.new("60.00"),
|
||||
status: :paid,
|
||||
notes: gettext("Paid via bank transfer"),
|
||||
is_current: false
|
||||
},
|
||||
%{
|
||||
id: "p3",
|
||||
period_start: "01.01.2023",
|
||||
period_end: "31.12.2023",
|
||||
interval: :yearly,
|
||||
amount: Decimal.new("50.00"),
|
||||
status: :paid,
|
||||
notes: nil,
|
||||
is_current: false
|
||||
},
|
||||
%{
|
||||
id: "p4",
|
||||
period_start: "01.01.2022",
|
||||
period_end: "31.12.2022",
|
||||
interval: :yearly,
|
||||
amount: Decimal.new("50.00"),
|
||||
status: :paid,
|
||||
notes: nil,
|
||||
is_current: false
|
||||
},
|
||||
%{
|
||||
id: "p5",
|
||||
period_start: "01.01.2021",
|
||||
period_end: "31.12.2021",
|
||||
interval: :yearly,
|
||||
amount: Decimal.new("50.00"),
|
||||
status: :suspended,
|
||||
notes: gettext("Joining year - reduced to 0"),
|
||||
is_current: false
|
||||
}
|
||||
]
|
||||
end
|
||||
|
||||
defp format_currency(%Decimal{} = amount) do
|
||||
"#{Decimal.to_string(amount)} €"
|
||||
end
|
||||
|
||||
defp format_interval(:monthly), do: gettext("Monthly")
|
||||
defp format_interval(:quarterly), do: gettext("Quarterly")
|
||||
defp format_interval(:half_yearly), do: gettext("Half-yearly")
|
||||
defp format_interval(:yearly), do: gettext("Yearly")
|
||||
end
|
||||
303
lib/mv_web/live/contribution_settings_live.ex
Normal file
303
lib/mv_web/live/contribution_settings_live.ex
Normal file
|
|
@ -0,0 +1,303 @@
|
|||
defmodule MvWeb.ContributionSettingsLive do
|
||||
@moduledoc """
|
||||
Mock-up LiveView for Contribution Settings (Admin).
|
||||
|
||||
This is a preview-only page that displays the planned UI for managing
|
||||
global contribution settings. It shows static mock data and is not functional.
|
||||
|
||||
## Planned Features (Future Implementation)
|
||||
- Set default contribution type for new members
|
||||
- Configure whether joining period is included in contributions
|
||||
- Explanatory text with examples
|
||||
|
||||
## Settings
|
||||
- `default_contribution_type_id` - UUID of the default contribution type
|
||||
- `include_joining_period` - Boolean whether to include joining period
|
||||
|
||||
## Note
|
||||
This page is intentionally non-functional and serves as a UI mockup
|
||||
for the upcoming Membership Contributions feature.
|
||||
"""
|
||||
use MvWeb, :live_view
|
||||
|
||||
@impl true
|
||||
def mount(_params, _session, socket) do
|
||||
{:ok,
|
||||
socket
|
||||
|> assign(:page_title, gettext("Contribution Settings"))
|
||||
|> assign(:contribution_types, mock_contribution_types())
|
||||
|> assign(:selected_type_id, "1")
|
||||
|> assign(:include_joining_period, true)}
|
||||
end
|
||||
|
||||
@impl true
|
||||
def render(assigns) do
|
||||
~H"""
|
||||
<Layouts.app flash={@flash} current_user={@current_user}>
|
||||
<.mockup_warning />
|
||||
|
||||
<.header>
|
||||
{gettext("Contribution Settings")}
|
||||
<:subtitle>
|
||||
{gettext("Configure global settings for membership contributions.")}
|
||||
</:subtitle>
|
||||
</.header>
|
||||
|
||||
<div class="grid gap-6 lg:grid-cols-2">
|
||||
<%!-- Settings Form --%>
|
||||
<div class="card bg-base-100 shadow-xl">
|
||||
<div class="card-body">
|
||||
<h2 class="card-title">
|
||||
<.icon name="hero-cog-6-tooth" class="size-5" />
|
||||
{gettext("Global Settings")}
|
||||
</h2>
|
||||
|
||||
<form class="space-y-6">
|
||||
<%!-- Default Contribution Type --%>
|
||||
<fieldset class="fieldset">
|
||||
<label class="label">
|
||||
<span class="label-text font-semibold">
|
||||
{gettext("Default Contribution Type")}
|
||||
</span>
|
||||
</label>
|
||||
<select class="select select-bordered w-full" disabled>
|
||||
<option :for={ct <- @contribution_types} selected={ct.id == @selected_type_id}>
|
||||
{ct.name} ({format_currency(ct.amount)}, {format_interval(ct.interval)})
|
||||
</option>
|
||||
</select>
|
||||
<p class="text-sm text-base-content/60 mt-2">
|
||||
{gettext(
|
||||
"This contribution type is automatically assigned to all new members. Can be changed individually per member."
|
||||
)}
|
||||
</p>
|
||||
</fieldset>
|
||||
|
||||
<%!-- Include Joining Period --%>
|
||||
<fieldset class="fieldset">
|
||||
<label class="label cursor-pointer justify-start gap-3">
|
||||
<input
|
||||
type="checkbox"
|
||||
class="checkbox checkbox-primary"
|
||||
checked={@include_joining_period}
|
||||
disabled
|
||||
/>
|
||||
<span class="label-text font-semibold">
|
||||
{gettext("Include joining period")}
|
||||
</span>
|
||||
</label>
|
||||
<div class="ml-9 space-y-2">
|
||||
<p class="text-sm text-base-content/60">
|
||||
{gettext("When active: Members pay from the period of their joining.")}
|
||||
</p>
|
||||
<p class="text-sm text-base-content/60">
|
||||
{gettext("When inactive: Members pay from the next full period after joining.")}
|
||||
</p>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
<div class="divider"></div>
|
||||
|
||||
<button type="button" class="btn btn-primary w-full" disabled>
|
||||
<.icon name="hero-check" class="size-5" />
|
||||
{gettext("Save Settings")}
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<%!-- Examples Card --%>
|
||||
<div class="card bg-base-200">
|
||||
<div class="card-body">
|
||||
<h2 class="card-title">
|
||||
<.icon name="hero-light-bulb" class="size-5" />
|
||||
{gettext("Examples")}
|
||||
</h2>
|
||||
|
||||
<.example_section
|
||||
title={gettext("Yearly Interval - Joining Period Included")}
|
||||
joining_date="15.03.2023"
|
||||
include_joining={true}
|
||||
start_date="01.01.2023"
|
||||
periods={["2023", "2024", "2025"]}
|
||||
note={gettext("Member pays for the year they joined")}
|
||||
/>
|
||||
|
||||
<div class="divider"></div>
|
||||
|
||||
<.example_section
|
||||
title={gettext("Yearly Interval - Joining Period Excluded")}
|
||||
joining_date="15.03.2023"
|
||||
include_joining={false}
|
||||
start_date="01.01.2024"
|
||||
periods={["2024", "2025"]}
|
||||
note={gettext("Member pays from the next full year")}
|
||||
/>
|
||||
|
||||
<div class="divider"></div>
|
||||
|
||||
<.example_section
|
||||
title={gettext("Quarterly Interval - Joining Period Excluded")}
|
||||
joining_date="15.05.2024"
|
||||
include_joining={false}
|
||||
start_date="01.07.2024"
|
||||
periods={["Q3/2024", "Q4/2024", "Q1/2025"]}
|
||||
note={gettext("Member pays from the next full quarter")}
|
||||
/>
|
||||
|
||||
<div class="divider"></div>
|
||||
|
||||
<.example_section
|
||||
title={gettext("Monthly Interval - Joining Period Included")}
|
||||
joining_date="15.03.2024"
|
||||
include_joining={true}
|
||||
start_date="01.03.2024"
|
||||
periods={["03/2024", "04/2024", "05/2024", "..."]}
|
||||
note={gettext("Member pays from the joining month")}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<.example_member_card />
|
||||
|
||||
<.navigation_card />
|
||||
</Layouts.app>
|
||||
"""
|
||||
end
|
||||
|
||||
# Example member card with link to period view
|
||||
defp example_member_card(assigns) do
|
||||
~H"""
|
||||
<div class="card bg-base-100 shadow-xl mt-6">
|
||||
<div class="card-body">
|
||||
<h2 class="card-title">
|
||||
<.icon name="hero-user" class="size-5" />
|
||||
{gettext("Example: Member Contribution View")}
|
||||
</h2>
|
||||
<p class="text-base-content/70">
|
||||
{gettext(
|
||||
"See how the contribution periods will be displayed for an individual member. This example shows Maria Weber with multiple contribution periods."
|
||||
)}
|
||||
</p>
|
||||
<div class="card-actions justify-end">
|
||||
<.link navigate={~p"/contributions/member/example"} class="btn btn-primary btn-sm">
|
||||
<.icon name="hero-eye" class="size-4" />
|
||||
{gettext("View Example Member")}
|
||||
</.link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
"""
|
||||
end
|
||||
|
||||
# Mock-up warning banner component - subtle orange style
|
||||
defp mockup_warning(assigns) do
|
||||
~H"""
|
||||
<div class="border border-warning text-warning bg-base-100 rounded-lg px-4 py-3 mb-6 flex items-center gap-3">
|
||||
<.icon name="hero-exclamation-triangle" class="size-5 shrink-0" />
|
||||
<div>
|
||||
<span class="font-semibold">{gettext("Preview Mockup")}</span>
|
||||
<span class="text-sm text-base-content/70 ml-2">
|
||||
– {gettext("This page is not functional and only displays the planned features.")}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
"""
|
||||
end
|
||||
|
||||
# Example section component
|
||||
attr :title, :string, required: true
|
||||
attr :joining_date, :string, required: true
|
||||
attr :include_joining, :boolean, required: true
|
||||
attr :start_date, :string, required: true
|
||||
attr :periods, :list, required: true
|
||||
attr :note, :string, required: true
|
||||
|
||||
defp example_section(assigns) do
|
||||
~H"""
|
||||
<div class="space-y-2">
|
||||
<h3 class="font-semibold text-sm">{@title}</h3>
|
||||
<div class="bg-base-300 rounded-lg p-3 text-sm space-y-1">
|
||||
<p>
|
||||
<span class="text-base-content/60">{gettext("Joining date")}:</span>
|
||||
<span class="font-mono">{@joining_date}</span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="text-base-content/60">{gettext("Contribution start")}:</span>
|
||||
<span class="font-mono font-semibold text-primary">{@start_date}</span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="text-base-content/60">{gettext("Generated periods")}:</span>
|
||||
<span class="font-mono">
|
||||
{Enum.join(@periods, ", ")}
|
||||
</span>
|
||||
</p>
|
||||
</div>
|
||||
<p class="text-xs text-base-content/60 italic">→ {@note}</p>
|
||||
</div>
|
||||
"""
|
||||
end
|
||||
|
||||
# Navigation card to other contribution pages
|
||||
defp navigation_card(assigns) do
|
||||
~H"""
|
||||
<div class="card bg-base-100 shadow mt-6">
|
||||
<div class="card-body">
|
||||
<h2 class="card-title">
|
||||
<.icon name="hero-arrow-right-circle" class="size-5" />
|
||||
{gettext("Related Pages")}
|
||||
</h2>
|
||||
<div class="flex flex-wrap gap-3">
|
||||
<.link navigate={~p"/contribution_types"} class="btn btn-outline btn-sm">
|
||||
<.icon name="hero-tag" class="size-4" />
|
||||
{gettext("Contribution Types")}
|
||||
</.link>
|
||||
<.link navigate={~p"/settings"} class="btn btn-outline btn-sm">
|
||||
<.icon name="hero-cog-6-tooth" class="size-4" />
|
||||
{gettext("Club Settings")}
|
||||
</.link>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
"""
|
||||
end
|
||||
|
||||
# Mock data for demonstration
|
||||
defp mock_contribution_types do
|
||||
[
|
||||
%{
|
||||
id: "1",
|
||||
name: gettext("Regular"),
|
||||
amount: Decimal.new("60.00"),
|
||||
interval: :yearly
|
||||
},
|
||||
%{
|
||||
id: "2",
|
||||
name: gettext("Reduced"),
|
||||
amount: Decimal.new("30.00"),
|
||||
interval: :yearly
|
||||
},
|
||||
%{
|
||||
id: "3",
|
||||
name: gettext("Student"),
|
||||
amount: Decimal.new("5.00"),
|
||||
interval: :monthly
|
||||
},
|
||||
%{
|
||||
id: "4",
|
||||
name: gettext("Family"),
|
||||
amount: Decimal.new("25.00"),
|
||||
interval: :quarterly
|
||||
}
|
||||
]
|
||||
end
|
||||
|
||||
defp format_currency(%Decimal{} = amount) do
|
||||
"#{Decimal.to_string(amount)} €"
|
||||
end
|
||||
|
||||
defp format_interval(:monthly), do: gettext("Monthly")
|
||||
defp format_interval(:quarterly), do: gettext("Quarterly")
|
||||
defp format_interval(:half_yearly), do: gettext("Half-yearly")
|
||||
defp format_interval(:yearly), do: gettext("Yearly")
|
||||
end
|
||||
205
lib/mv_web/live/contribution_type_live/index.ex
Normal file
205
lib/mv_web/live/contribution_type_live/index.ex
Normal file
|
|
@ -0,0 +1,205 @@
|
|||
defmodule MvWeb.ContributionTypeLive.Index do
|
||||
@moduledoc """
|
||||
Mock-up LiveView for Contribution Types Management (Admin).
|
||||
|
||||
This is a preview-only page that displays the planned UI for managing
|
||||
contribution types. It shows static mock data and is not functional.
|
||||
|
||||
## Planned Features (Future Implementation)
|
||||
- List all contribution types
|
||||
- Display: Name, Amount, Interval, Member count
|
||||
- Create new contribution types
|
||||
- Edit existing contribution types (name, amount, description - NOT interval)
|
||||
- Delete contribution types (if no members assigned)
|
||||
|
||||
## Note
|
||||
This page is intentionally non-functional and serves as a UI mockup
|
||||
for the upcoming Membership Contributions feature.
|
||||
"""
|
||||
use MvWeb, :live_view
|
||||
|
||||
@impl true
|
||||
def mount(_params, _session, socket) do
|
||||
{:ok,
|
||||
socket
|
||||
|> assign(:page_title, gettext("Contribution Types"))
|
||||
|> assign(:contribution_types, mock_contribution_types())}
|
||||
end
|
||||
|
||||
@impl true
|
||||
def render(assigns) do
|
||||
~H"""
|
||||
<Layouts.app flash={@flash} current_user={@current_user}>
|
||||
<.mockup_warning />
|
||||
|
||||
<.header>
|
||||
{gettext("Contribution Types")}
|
||||
<:subtitle>
|
||||
{gettext("Manage contribution types for membership fees.")}
|
||||
</:subtitle>
|
||||
<:actions>
|
||||
<button class="btn btn-primary" disabled>
|
||||
<.icon name="hero-plus" /> {gettext("New Contribution Type")}
|
||||
</button>
|
||||
</:actions>
|
||||
</.header>
|
||||
|
||||
<.table id="contribution_types" rows={@contribution_types} row_id={fn ct -> "ct-#{ct.id}" end}>
|
||||
<:col :let={ct} label={gettext("Name")}>
|
||||
<span class="font-medium">{ct.name}</span>
|
||||
<p :if={ct.description} class="text-sm text-base-content/60">{ct.description}</p>
|
||||
</:col>
|
||||
|
||||
<:col :let={ct} label={gettext("Amount")}>
|
||||
<span class="font-mono">{format_currency(ct.amount)}</span>
|
||||
</:col>
|
||||
|
||||
<:col :let={ct} label={gettext("Interval")}>
|
||||
<span class="badge badge-outline">{format_interval(ct.interval)}</span>
|
||||
</:col>
|
||||
|
||||
<:col :let={ct} label={gettext("Members")}>
|
||||
<span class="badge badge-ghost">{ct.member_count}</span>
|
||||
</:col>
|
||||
|
||||
<:action :let={_ct}>
|
||||
<button class="btn btn-ghost btn-xs" disabled title={gettext("Edit")}>
|
||||
<.icon name="hero-pencil" class="size-4" />
|
||||
</button>
|
||||
</:action>
|
||||
|
||||
<:action :let={ct}>
|
||||
<button
|
||||
class="btn btn-ghost btn-xs text-error"
|
||||
disabled
|
||||
title={
|
||||
if ct.member_count > 0,
|
||||
do: gettext("Cannot delete - members assigned"),
|
||||
else: gettext("Delete")
|
||||
}
|
||||
>
|
||||
<.icon name="hero-trash" class="size-4" />
|
||||
</button>
|
||||
</:action>
|
||||
</.table>
|
||||
|
||||
<.info_card />
|
||||
</Layouts.app>
|
||||
"""
|
||||
end
|
||||
|
||||
# Mock-up warning banner component - subtle orange style
|
||||
defp mockup_warning(assigns) do
|
||||
~H"""
|
||||
<div class="border border-warning text-warning bg-base-100 rounded-lg px-4 py-3 mb-6 flex items-center gap-3">
|
||||
<.icon name="hero-exclamation-triangle" class="size-5 shrink-0" />
|
||||
<div>
|
||||
<span class="font-semibold">{gettext("Preview Mockup")}</span>
|
||||
<span class="text-sm text-base-content/70 ml-2">
|
||||
– {gettext("This page is not functional and only displays the planned features.")}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
"""
|
||||
end
|
||||
|
||||
# Info card explaining the contribution type concept
|
||||
defp info_card(assigns) do
|
||||
~H"""
|
||||
<div class="card bg-base-200 mt-6">
|
||||
<div class="card-body">
|
||||
<h2 class="card-title">
|
||||
<.icon name="hero-information-circle" class="size-5" />
|
||||
{gettext("About Contribution Types")}
|
||||
</h2>
|
||||
<div class="prose prose-sm max-w-none">
|
||||
<p>
|
||||
{gettext(
|
||||
"Contribution types define different membership fee structures. Each type has a fixed interval (monthly, quarterly, half-yearly, yearly) that cannot be changed after creation."
|
||||
)}
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<strong>{gettext("Name & Amount")}</strong>
|
||||
- {gettext("Can be changed at any time. Amount changes affect future periods only.")}
|
||||
</li>
|
||||
<li>
|
||||
<strong>{gettext("Interval")}</strong>
|
||||
- {gettext(
|
||||
"Fixed after creation. Members can only switch between types with the same interval."
|
||||
)}
|
||||
</li>
|
||||
<li>
|
||||
<strong>{gettext("Deletion")}</strong>
|
||||
- {gettext("Only possible if no members are assigned to this type.")}
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
"""
|
||||
end
|
||||
|
||||
# Mock data for demonstration
|
||||
defp mock_contribution_types do
|
||||
[
|
||||
%{
|
||||
id: "1",
|
||||
name: gettext("Regular"),
|
||||
description: gettext("Standard membership fee for regular members"),
|
||||
amount: Decimal.new("60.00"),
|
||||
interval: :yearly,
|
||||
member_count: 45
|
||||
},
|
||||
%{
|
||||
id: "2",
|
||||
name: gettext("Reduced"),
|
||||
description: gettext("Reduced fee for unemployed, pensioners, or low income"),
|
||||
amount: Decimal.new("30.00"),
|
||||
interval: :yearly,
|
||||
member_count: 12
|
||||
},
|
||||
%{
|
||||
id: "3",
|
||||
name: gettext("Student"),
|
||||
description: gettext("Monthly fee for students and trainees"),
|
||||
amount: Decimal.new("5.00"),
|
||||
interval: :monthly,
|
||||
member_count: 8
|
||||
},
|
||||
%{
|
||||
id: "4",
|
||||
name: gettext("Family"),
|
||||
description: gettext("Quarterly fee for family memberships"),
|
||||
amount: Decimal.new("25.00"),
|
||||
interval: :quarterly,
|
||||
member_count: 15
|
||||
},
|
||||
%{
|
||||
id: "5",
|
||||
name: gettext("Supporting Member"),
|
||||
description: gettext("Half-yearly contribution for supporting members"),
|
||||
amount: Decimal.new("100.00"),
|
||||
interval: :half_yearly,
|
||||
member_count: 3
|
||||
},
|
||||
%{
|
||||
id: "6",
|
||||
name: gettext("Honorary"),
|
||||
description: gettext("No fee for honorary members"),
|
||||
amount: Decimal.new("0.00"),
|
||||
interval: :yearly,
|
||||
member_count: 2
|
||||
}
|
||||
]
|
||||
end
|
||||
|
||||
defp format_currency(%Decimal{} = amount) do
|
||||
"#{Decimal.to_string(amount)} €"
|
||||
end
|
||||
|
||||
defp format_interval(:monthly), do: gettext("Monthly")
|
||||
defp format_interval(:quarterly), do: gettext("Quarterly")
|
||||
defp format_interval(:half_yearly), do: gettext("Half-yearly")
|
||||
defp format_interval(:yearly), do: gettext("Yearly")
|
||||
end
|
||||
|
|
@ -75,6 +75,11 @@ defmodule MvWeb.Router do
|
|||
|
||||
live "/settings", GlobalSettingsLive
|
||||
|
||||
# Contribution Management (Mock-ups)
|
||||
live "/contribution_types", ContributionTypeLive.Index, :index
|
||||
live "/contribution_settings", ContributionSettingsLive
|
||||
live "/contributions/member/:id", ContributionPeriodLive.Show, :show
|
||||
|
||||
post "/set_locale", LocaleController, :set_locale
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ msgstr ""
|
|||
"Language: en\n"
|
||||
|
||||
#: lib/mv_web/components/core_components.ex:386
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:141
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Actions"
|
||||
msgstr "Aktionen"
|
||||
|
|
@ -27,19 +28,21 @@ msgstr "Bist du sicher?"
|
|||
msgid "Attempting to reconnect"
|
||||
msgstr "Verbindung wird wiederhergestellt"
|
||||
|
||||
#: lib/mv_web/live/member_live/form.ex:54
|
||||
#: lib/mv_web/live/member_live/form.ex:53
|
||||
#: lib/mv_web/live/member_live/index.html.heex:179
|
||||
#: lib/mv_web/live/member_live/show.ex:59
|
||||
#: lib/mv_web/live/member_live/show.ex:58
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "City"
|
||||
msgstr "Stadt"
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:78
|
||||
#: lib/mv_web/live/member_live/index.html.heex:245
|
||||
#: lib/mv_web/live/user_live/index.html.heex:74
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Delete"
|
||||
msgstr "Löschen"
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:66
|
||||
#: lib/mv_web/live/member_live/index.html.heex:237
|
||||
#: lib/mv_web/live/user_live/form.ex:265
|
||||
#: lib/mv_web/live/user_live/index.html.heex:66
|
||||
|
|
@ -48,11 +51,12 @@ msgid "Edit"
|
|||
msgstr "Bearbeite"
|
||||
|
||||
#: lib/mv_web/live/member_live/show.ex:41
|
||||
#: lib/mv_web/live/member_live/show.ex:117
|
||||
#: lib/mv_web/live/member_live/show.ex:116
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Edit Member"
|
||||
msgstr "Mitglied bearbeiten"
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:58
|
||||
#: lib/mv_web/live/member_live/form.ex:47
|
||||
#: lib/mv_web/live/member_live/index.html.heex:107
|
||||
#: lib/mv_web/live/member_live/show.ex:50
|
||||
|
|
@ -69,9 +73,9 @@ msgstr "E-Mail"
|
|||
msgid "First Name"
|
||||
msgstr "Vorname"
|
||||
|
||||
#: lib/mv_web/live/member_live/form.ex:51
|
||||
#: lib/mv_web/live/member_live/form.ex:50
|
||||
#: lib/mv_web/live/member_live/index.html.heex:215
|
||||
#: lib/mv_web/live/member_live/show.ex:56
|
||||
#: lib/mv_web/live/member_live/show.ex:55
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Join Date"
|
||||
msgstr "Beitrittsdatum"
|
||||
|
|
@ -108,55 +112,52 @@ msgstr "Keine Internetverbindung gefunden"
|
|||
msgid "close"
|
||||
msgstr "schließen"
|
||||
|
||||
#: lib/mv_web/live/member_live/form.ex:48
|
||||
#: lib/mv_web/live/member_live/show.ex:51
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Birth Date"
|
||||
msgstr "Geburtsdatum"
|
||||
|
||||
#: lib/mv_web/live/member_live/form.ex:52
|
||||
#: lib/mv_web/live/member_live/show.ex:57
|
||||
#: lib/mv_web/live/member_live/form.ex:51
|
||||
#: lib/mv_web/live/member_live/show.ex:56
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Exit Date"
|
||||
msgstr "Austrittsdatum"
|
||||
|
||||
#: lib/mv_web/live/member_live/form.ex:56
|
||||
#: lib/mv_web/live/member_live/form.ex:55
|
||||
#: lib/mv_web/live/member_live/index.html.heex:143
|
||||
#: lib/mv_web/live/member_live/show.ex:61
|
||||
#: lib/mv_web/live/member_live/show.ex:60
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "House Number"
|
||||
msgstr "Hausnummer"
|
||||
|
||||
#: lib/mv_web/live/member_live/form.ex:53
|
||||
#: lib/mv_web/live/member_live/show.ex:58
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:140
|
||||
#: lib/mv_web/live/member_live/form.ex:52
|
||||
#: lib/mv_web/live/member_live/show.ex:57
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Notes"
|
||||
msgstr "Notizen"
|
||||
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:88
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:138
|
||||
#: lib/mv_web/live/member_live/form.ex:49
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:94
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:144
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:186
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:243
|
||||
#: lib/mv_web/live/member_live/form.ex:48
|
||||
#: lib/mv_web/live/member_live/index.html.heex:224
|
||||
#: lib/mv_web/live/member_live/show.ex:52
|
||||
#: lib/mv_web/live/member_live/show.ex:51
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Paid"
|
||||
msgstr "Bezahlt"
|
||||
|
||||
#: lib/mv_web/live/member_live/form.ex:50
|
||||
#: lib/mv_web/live/member_live/form.ex:49
|
||||
#: lib/mv_web/live/member_live/index.html.heex:197
|
||||
#: lib/mv_web/live/member_live/show.ex:55
|
||||
#: lib/mv_web/live/member_live/show.ex:54
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Phone Number"
|
||||
msgstr "Telefonnummer"
|
||||
|
||||
#: lib/mv_web/live/member_live/form.ex:57
|
||||
#: lib/mv_web/live/member_live/form.ex:56
|
||||
#: lib/mv_web/live/member_live/index.html.heex:161
|
||||
#: lib/mv_web/live/member_live/show.ex:62
|
||||
#: lib/mv_web/live/member_live/show.ex:61
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Postal Code"
|
||||
msgstr "Postleitzahl"
|
||||
|
||||
#: lib/mv_web/live/member_live/form.ex:80
|
||||
#: lib/mv_web/live/member_live/form.ex:79
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Save Member"
|
||||
msgstr "Mitglied speichern"
|
||||
|
|
@ -164,15 +165,15 @@ msgstr "Mitglied speichern"
|
|||
#: lib/mv_web/live/custom_field_live/form.ex:66
|
||||
#: lib/mv_web/live/custom_field_value_live/form.ex:74
|
||||
#: lib/mv_web/live/global_settings_live.ex:55
|
||||
#: lib/mv_web/live/member_live/form.ex:79
|
||||
#: lib/mv_web/live/member_live/form.ex:78
|
||||
#: lib/mv_web/live/user_live/form.ex:248
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Saving..."
|
||||
msgstr "Speichern..."
|
||||
|
||||
#: lib/mv_web/live/member_live/form.ex:55
|
||||
#: lib/mv_web/live/member_live/form.ex:54
|
||||
#: lib/mv_web/live/member_live/index.html.heex:125
|
||||
#: lib/mv_web/live/member_live/show.ex:60
|
||||
#: lib/mv_web/live/member_live/show.ex:59
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Street"
|
||||
msgstr "Straße"
|
||||
|
|
@ -184,12 +185,12 @@ msgstr "ID"
|
|||
|
||||
#: lib/mv_web/live/member_live/index.html.heex:229
|
||||
#: lib/mv_web/live/member_live/index/formatter.ex:61
|
||||
#: lib/mv_web/live/member_live/show.ex:53
|
||||
#: lib/mv_web/live/member_live/show.ex:52
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "No"
|
||||
msgstr "Nein"
|
||||
|
||||
#: lib/mv_web/live/member_live/show.ex:116
|
||||
#: lib/mv_web/live/member_live/show.ex:115
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
msgid "Show Member"
|
||||
msgstr "Mitglied anzeigen"
|
||||
|
|
@ -201,21 +202,21 @@ msgstr "Dies ist ein Mitglied aus deiner Datenbank."
|
|||
|
||||
#: lib/mv_web/live/member_live/index.html.heex:229
|
||||
#: lib/mv_web/live/member_live/index/formatter.ex:60
|
||||
#: lib/mv_web/live/member_live/show.ex:53
|
||||
#: lib/mv_web/live/member_live/show.ex:52
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Yes"
|
||||
msgstr "Ja"
|
||||
|
||||
#: lib/mv_web/live/custom_field_live/form.ex:110
|
||||
#: lib/mv_web/live/custom_field_value_live/form.ex:233
|
||||
#: lib/mv_web/live/member_live/form.ex:138
|
||||
#: lib/mv_web/live/member_live/form.ex:137
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "create"
|
||||
msgstr "erstellt"
|
||||
|
||||
#: lib/mv_web/live/custom_field_live/form.ex:111
|
||||
#: lib/mv_web/live/custom_field_value_live/form.ex:234
|
||||
#: lib/mv_web/live/member_live/form.ex:139
|
||||
#: lib/mv_web/live/member_live/form.ex:138
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "update"
|
||||
msgstr "aktualisiert"
|
||||
|
|
@ -225,7 +226,7 @@ msgstr "aktualisiert"
|
|||
msgid "Incorrect email or password"
|
||||
msgstr "Falsche E-Mail oder Passwort"
|
||||
|
||||
#: lib/mv_web/live/member_live/form.ex:145
|
||||
#: lib/mv_web/live/member_live/form.ex:144
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Member %{action} successfully"
|
||||
msgstr "Mitglied %{action} erfolgreich"
|
||||
|
|
@ -258,7 +259,7 @@ msgstr "Ihr Passwort wurde erfolgreich zurückgesetzt"
|
|||
#: lib/mv_web/live/custom_field_live/form.ex:69
|
||||
#: lib/mv_web/live/custom_field_live/index.ex:120
|
||||
#: lib/mv_web/live/custom_field_value_live/form.ex:77
|
||||
#: lib/mv_web/live/member_live/form.ex:82
|
||||
#: lib/mv_web/live/member_live/form.ex:81
|
||||
#: lib/mv_web/live/user_live/form.ex:251
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Cancel"
|
||||
|
|
@ -294,7 +295,7 @@ msgstr "ID"
|
|||
msgid "Immutable"
|
||||
msgstr "Unveränderlich"
|
||||
|
||||
#: lib/mv_web/components/layouts/navbar.ex:102
|
||||
#: lib/mv_web/components/layouts/navbar.ex:113
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Logout"
|
||||
msgstr "Abmelden"
|
||||
|
|
@ -311,12 +312,15 @@ msgid "Member"
|
|||
msgstr "Mitglied"
|
||||
|
||||
#: lib/mv_web/components/layouts/navbar.ex:25
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:286
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:61
|
||||
#: lib/mv_web/live/member_live/index.ex:73
|
||||
#: lib/mv_web/live/member_live/index.html.heex:3
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Members"
|
||||
msgstr "Mitglieder"
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:48
|
||||
#: lib/mv_web/live/custom_field_live/form.ex:51
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Name"
|
||||
|
|
@ -337,6 +341,7 @@ msgstr "Nicht aktiviert"
|
|||
msgid "Not set"
|
||||
msgstr "Nicht gesetzt"
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:207
|
||||
#: lib/mv_web/live/user_live/form.ex:107
|
||||
#: lib/mv_web/live/user_live/form.ex:115
|
||||
#: lib/mv_web/live/user_live/form.ex:224
|
||||
|
|
@ -355,7 +360,7 @@ msgstr "OIDC ID"
|
|||
msgid "Password Authentication"
|
||||
msgstr "Passwort-Authentifizierung"
|
||||
|
||||
#: lib/mv_web/components/layouts/navbar.ex:95
|
||||
#: lib/mv_web/components/layouts/navbar.ex:106
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Profil"
|
||||
msgstr "Profil"
|
||||
|
|
@ -375,7 +380,7 @@ msgstr "Alle Mitglieder auswählen"
|
|||
msgid "Select member"
|
||||
msgstr "Mitglied auswählen"
|
||||
|
||||
#: lib/mv_web/components/layouts/navbar.ex:99
|
||||
#: lib/mv_web/components/layouts/navbar.ex:110
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Settings"
|
||||
msgstr "Einstellungen"
|
||||
|
|
@ -515,7 +520,7 @@ msgstr "Benutzer*in wird ohne Passwort erstellt. Aktivieren Sie 'Passwort setzen
|
|||
msgid "Linked Member"
|
||||
msgstr "Verknüpftes Mitglied"
|
||||
|
||||
#: lib/mv_web/live/member_live/show.ex:63
|
||||
#: lib/mv_web/live/member_live/show.ex:62
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Linked User"
|
||||
msgstr "Verknüpfte*r Benutzer*in"
|
||||
|
|
@ -526,7 +531,7 @@ msgstr "Verknüpfte*r Benutzer*in"
|
|||
msgid "No member linked"
|
||||
msgstr "Kein Mitglied verknüpft"
|
||||
|
||||
#: lib/mv_web/live/member_live/show.ex:73
|
||||
#: lib/mv_web/live/member_live/show.ex:72
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "No user linked"
|
||||
msgstr "Keine*r Benutzer*in verknüpft"
|
||||
|
|
@ -543,14 +548,14 @@ msgstr "Zurück zur Mitgliederliste"
|
|||
msgid "Back to users list"
|
||||
msgstr "Zurück zur Benutzer*innen-Liste"
|
||||
|
||||
#: lib/mv_web/components/layouts/navbar.ex:33
|
||||
#: lib/mv_web/components/layouts/navbar.ex:39
|
||||
#: lib/mv_web/components/layouts/navbar.ex:44
|
||||
#: lib/mv_web/components/layouts/navbar.ex:50
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Select language"
|
||||
msgstr "Sprache auswählen"
|
||||
|
||||
#: lib/mv_web/components/layouts/navbar.ex:46
|
||||
#: lib/mv_web/components/layouts/navbar.ex:66
|
||||
#: lib/mv_web/components/layouts/navbar.ex:57
|
||||
#: lib/mv_web/components/layouts/navbar.ex:77
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Toggle dark mode"
|
||||
msgstr "Dunklen Modus umschalten"
|
||||
|
|
@ -613,8 +618,8 @@ msgstr "Diese E-Mail-Adresse ist bereits mit einem anderen OIDC-Konto verknüpft
|
|||
msgid "Choose a custom field"
|
||||
msgstr "Wähle ein Benutzerdefiniertes Feld"
|
||||
|
||||
#: lib/mv_web/live/member_live/form.ex:59
|
||||
#: lib/mv_web/live/member_live/show.ex:78
|
||||
#: lib/mv_web/live/member_live/form.ex:58
|
||||
#: lib/mv_web/live/member_live/show.ex:77
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Custom Field Values"
|
||||
msgstr "Benutzerdefinierte Feldwerte"
|
||||
|
|
@ -711,6 +716,7 @@ msgstr "In der Mitglieder-Übersicht anzeigen"
|
|||
msgid "Association Name"
|
||||
msgstr "Vereinsname"
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:257
|
||||
#: lib/mv_web/live/global_settings_live.ex:31
|
||||
#: lib/mv_web/live/global_settings_live.ex:41
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
|
|
@ -722,6 +728,7 @@ msgstr "Vereinsdaten"
|
|||
msgid "Manage global settings for the association."
|
||||
msgstr "Passe übergreifende Einstellungen für den Verein an."
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:102
|
||||
#: lib/mv_web/live/global_settings_live.ex:56
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
msgid "Save Settings"
|
||||
|
|
@ -837,24 +844,459 @@ msgstr "Felder, die mit einem Sternchen (*) markiert sind, dürfen nicht leer bl
|
|||
msgid "This field cannot be empty"
|
||||
msgstr "Dieses Feld darf nicht leer bleiben"
|
||||
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:74
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:137
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:80
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:143
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "All"
|
||||
msgstr "Alle"
|
||||
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:48
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:54
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Filter by payment status"
|
||||
msgstr "Nach Zahlungsstatus filtern"
|
||||
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:102
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:139
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:108
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:145
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Not paid"
|
||||
msgstr "Nicht bezahlt"
|
||||
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:59
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:65
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Payment filter"
|
||||
msgstr "Zahlungsfilter"
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:113
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "About Contribution Types"
|
||||
msgstr "Über Beitragsarten"
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:138
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:53
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Amount"
|
||||
msgstr "Betrag"
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:124
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Can be changed at any time. Amount changes affect future periods only."
|
||||
msgstr "Kann jederzeit geändert werden. Betragsänderungen wirken sich nur auf zukünftige Perioden aus."
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:77
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Cannot delete - members assigned"
|
||||
msgstr "Löschen nicht möglich - Mitglieder zugewiesen"
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:42
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Configure global settings for membership contributions."
|
||||
msgstr "Globale Einstellungen für Mitgliedsbeiträge konfigurieren."
|
||||
|
||||
#: lib/mv_web/components/layouts/navbar.ex:34
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:282
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:27
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:40
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Contribution Settings"
|
||||
msgstr "Beitragseinstellungen"
|
||||
|
||||
#: lib/mv_web/components/layouts/navbar.ex:32
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:278
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:253
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:25
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:36
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Contribution Types"
|
||||
msgstr "Beitragsarten"
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:226
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Contribution start"
|
||||
msgstr "Beitragsbeginn"
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:117
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Contribution types define different membership fee structures. Each type has a fixed interval (monthly, quarterly, half-yearly, yearly) that cannot be changed after creation."
|
||||
msgstr "Beitragsarten definieren verschiedene Mitgliedsbeitragsstrukturen. Jede Art hat ein festes Intervall (monatlich, quartalsweise, halbjährlich, jährlich), das nach der Erstellung nicht mehr geändert werden kann."
|
||||
|
||||
#: lib/mv_web/components/layouts/navbar.ex:30
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Contributions"
|
||||
msgstr "Beiträge"
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:60
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Default Contribution Type"
|
||||
msgstr "Standard-Beitragsart"
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:133
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Deletion"
|
||||
msgstr "Löschung"
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:113
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Examples"
|
||||
msgstr "Beispiele"
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:288
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:172
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Family"
|
||||
msgstr "Familie"
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:128
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Fixed after creation. Members can only switch between types with the same interval."
|
||||
msgstr "Nach der Erstellung unveränderlich. Mitglieder können nur zwischen Arten mit demselben Intervall wechseln."
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:230
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Generated periods"
|
||||
msgstr "Generierte Perioden"
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:52
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Global Settings"
|
||||
msgstr "Globale Einstellungen"
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:373
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:301
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:203
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Half-yearly"
|
||||
msgstr "Halbjährlich"
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:181
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Half-yearly contribution for supporting members"
|
||||
msgstr "Halbjährlicher Beitrag für Fördermitglieder"
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:87
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:188
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Honorary"
|
||||
msgstr "Ehrenmitglied"
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:85
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Include joining period"
|
||||
msgstr "Eintrittsperiode einschließen"
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:137
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:57
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:127
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Interval"
|
||||
msgstr "Intervall"
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:222
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Joining date"
|
||||
msgstr "Eintrittsdatum"
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:38
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Manage contribution types for membership fees."
|
||||
msgstr "Beitragsarten für Mitgliedsbeiträge verwalten."
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:122
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Member pays for the year they joined"
|
||||
msgstr "Mitglied zahlt für das Eintrittsjahr"
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:155
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Member pays from the joining month"
|
||||
msgstr "Mitglied zahlt ab dem Eintrittsmonat"
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:144
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Member pays from the next full quarter"
|
||||
msgstr "Mitglied zahlt ab dem nächsten vollen Quartal"
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:133
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Member pays from the next full year"
|
||||
msgstr "Mitglied zahlt ab dem nächsten vollen Jahr"
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:371
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:299
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:201
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Monthly"
|
||||
msgstr "Monatlich"
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:150
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Monthly Interval - Joining Period Included"
|
||||
msgstr "Monatliches Intervall - Eintrittsperiode eingeschlossen"
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:165
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Monthly fee for students and trainees"
|
||||
msgstr "Monatlicher Beitrag für Studierende und Auszubildende"
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:123
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Name & Amount"
|
||||
msgstr "Name & Betrag"
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:42
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "New Contribution Type"
|
||||
msgstr "Neue Beitragsart"
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:189
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "No fee for honorary members"
|
||||
msgstr "Kein Beitrag für Ehrenmitglieder"
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:134
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Only possible if no members are assigned to this type."
|
||||
msgstr "Nur möglich, wenn keine Mitglieder dieser Art zugewiesen sind."
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:227
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:199
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:97
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Preview Mockup"
|
||||
msgstr "Vorschau-Mockup"
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:372
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:300
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:202
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Quarterly"
|
||||
msgstr "Quartalsweise"
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:139
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Quarterly Interval - Joining Period Excluded"
|
||||
msgstr "Quartalsintervall - Eintrittsperiode ausgeschlossen"
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:173
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Quarterly fee for family memberships"
|
||||
msgstr "Quartalsbeitrag für Familienmitgliedschaften"
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:86
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:276
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:156
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Reduced"
|
||||
msgstr "Ermäßigt"
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:157
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Reduced fee for unemployed, pensioners, or low income"
|
||||
msgstr "Ermäßigter Beitrag für Arbeitslose, Rentner*innen oder Geringverdienende"
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:305
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:270
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:148
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Regular"
|
||||
msgstr "Regulär"
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:273
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:248
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Related Pages"
|
||||
msgstr "Verwandte Seiten"
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:149
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Standard membership fee for regular members"
|
||||
msgstr "Standard-Mitgliedsbeitrag für reguläre Mitglieder"
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:282
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:164
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Student"
|
||||
msgstr "Student*in"
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:180
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Supporting Member"
|
||||
msgstr "Fördermitglied"
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:69
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "This contribution type is automatically assigned to all new members. Can be changed individually per member."
|
||||
msgstr "Diese Beitragsart wird automatisch allen neuen Mitgliedern zugewiesen. Kann pro Mitglied individuell geändert werden."
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:90
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "When active: Members pay from the period of their joining."
|
||||
msgstr "Wenn aktiv: Mitglieder zahlen ab der Periode ihres Eintritts."
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:93
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "When inactive: Members pay from the next full period after joining."
|
||||
msgstr "Wenn inaktiv: Mitglieder zahlen ab der nächsten vollen Periode nach dem Eintritt."
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:85
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:86
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:87
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:374
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:302
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:204
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Yearly"
|
||||
msgstr "Jährlich"
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:128
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Yearly Interval - Joining Period Excluded"
|
||||
msgstr "Jährliches Intervall - Eintrittsperiode ausgeschlossen"
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:117
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Yearly Interval - Joining Period Included"
|
||||
msgstr "Jährliches Intervall - Eintrittsperiode eingeschlossen"
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:107
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "%{count} period selected"
|
||||
msgid_plural "%{count} periods selected"
|
||||
msgstr[0] "%{count} Periode ausgewählt"
|
||||
msgstr[1] "%{count} Perioden ausgewählt"
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:48
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Back to Settings"
|
||||
msgstr "Zurück zu Einstellungen"
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:83
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Change Contribution Type"
|
||||
msgstr "Beitragsart ändern"
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:62
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Contribution Start"
|
||||
msgstr "Beitragsbeginn"
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:41
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Contribution type"
|
||||
msgstr "Beitragsart"
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:39
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Contributions for %{name}"
|
||||
msgstr "Beiträge für %{name}"
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:159
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Current"
|
||||
msgstr "Aktuell"
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:175
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Example: Member Contribution View"
|
||||
msgstr "Beispiel: Mitglieder-Beitragsansicht"
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:361
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Joining year - reduced to 0"
|
||||
msgstr "Eintrittsjahr - auf 0 reduziert"
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:116
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Mark as Paid"
|
||||
msgstr "Als bezahlt markieren"
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:120
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Mark as Suspended"
|
||||
msgstr "Als ausgesetzt markieren"
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:124
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Mark as Unpaid"
|
||||
msgstr "Als unbezahlt markieren"
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:26
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Member Contributions"
|
||||
msgstr "Mitgliedsbeiträge"
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:43
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Member since"
|
||||
msgstr "Mitglied seit"
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:331
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Paid via bank transfer"
|
||||
msgstr "Per Überweisung bezahlt"
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:178
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "See how the contribution periods will be displayed for an individual member. This example shows Maria Weber with multiple contribution periods."
|
||||
msgstr "Sehen Sie, wie die Beitragsperioden für ein einzelnes Mitglied angezeigt werden. Dieses Beispiel zeigt Maria Weber mit mehreren Beitragsperioden."
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:139
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Status"
|
||||
msgstr "Status"
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:261
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Suspended"
|
||||
msgstr "Ausgesetzt"
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:252
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Unpaid"
|
||||
msgstr "Unbezahlt"
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:185
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "View Example Member"
|
||||
msgstr "Beispielmitglied ansehen"
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:92
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Members can only switch between contribution types with the same payment interval (e.g., yearly to yearly). This prevents complex period overlaps."
|
||||
msgstr "Mitglieder können nur zwischen Beitragsarten mit demselben Zahlungsintervall wechseln (z.B. jährlich zu jährlich). Dies verhindert komplexe Periodenüberschneidungen."
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:70
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Open Contributions"
|
||||
msgstr "Offene Beiträge"
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:204
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Reopen"
|
||||
msgstr "Wieder öffnen"
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:195
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Suspend"
|
||||
msgstr "Aussetzen"
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:229
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:201
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:99
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "This page is not functional and only displays the planned features."
|
||||
msgstr "Diese Seite ist nicht funktional und zeigt nur die geplanten Funktionen."
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:136
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Time Period"
|
||||
msgstr "Zeitraum"
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:66
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Total Contributions"
|
||||
msgstr "Beiträge gesamt"
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:98
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Why are not all contribution types shown?"
|
||||
msgstr "Warum werden nicht alle Beitragsarten angezeigt?"
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ msgid ""
|
|||
msgstr ""
|
||||
|
||||
#: lib/mv_web/components/core_components.ex:386
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:141
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Actions"
|
||||
msgstr ""
|
||||
|
|
@ -28,19 +29,21 @@ msgstr ""
|
|||
msgid "Attempting to reconnect"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/member_live/form.ex:54
|
||||
#: lib/mv_web/live/member_live/form.ex:53
|
||||
#: lib/mv_web/live/member_live/index.html.heex:179
|
||||
#: lib/mv_web/live/member_live/show.ex:59
|
||||
#: lib/mv_web/live/member_live/show.ex:58
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "City"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:78
|
||||
#: lib/mv_web/live/member_live/index.html.heex:245
|
||||
#: lib/mv_web/live/user_live/index.html.heex:74
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:66
|
||||
#: lib/mv_web/live/member_live/index.html.heex:237
|
||||
#: lib/mv_web/live/user_live/form.ex:265
|
||||
#: lib/mv_web/live/user_live/index.html.heex:66
|
||||
|
|
@ -49,11 +52,12 @@ msgid "Edit"
|
|||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/member_live/show.ex:41
|
||||
#: lib/mv_web/live/member_live/show.ex:117
|
||||
#: lib/mv_web/live/member_live/show.ex:116
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Edit Member"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:58
|
||||
#: lib/mv_web/live/member_live/form.ex:47
|
||||
#: lib/mv_web/live/member_live/index.html.heex:107
|
||||
#: lib/mv_web/live/member_live/show.ex:50
|
||||
|
|
@ -70,9 +74,9 @@ msgstr ""
|
|||
msgid "First Name"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/member_live/form.ex:51
|
||||
#: lib/mv_web/live/member_live/form.ex:50
|
||||
#: lib/mv_web/live/member_live/index.html.heex:215
|
||||
#: lib/mv_web/live/member_live/show.ex:56
|
||||
#: lib/mv_web/live/member_live/show.ex:55
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Join Date"
|
||||
msgstr ""
|
||||
|
|
@ -109,55 +113,52 @@ msgstr ""
|
|||
msgid "close"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/member_live/form.ex:48
|
||||
#: lib/mv_web/live/member_live/show.ex:51
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Birth Date"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/member_live/form.ex:52
|
||||
#: lib/mv_web/live/member_live/show.ex:57
|
||||
#: lib/mv_web/live/member_live/form.ex:51
|
||||
#: lib/mv_web/live/member_live/show.ex:56
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Exit Date"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/member_live/form.ex:56
|
||||
#: lib/mv_web/live/member_live/form.ex:55
|
||||
#: lib/mv_web/live/member_live/index.html.heex:143
|
||||
#: lib/mv_web/live/member_live/show.ex:61
|
||||
#: lib/mv_web/live/member_live/show.ex:60
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "House Number"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/member_live/form.ex:53
|
||||
#: lib/mv_web/live/member_live/show.ex:58
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:140
|
||||
#: lib/mv_web/live/member_live/form.ex:52
|
||||
#: lib/mv_web/live/member_live/show.ex:57
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Notes"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:88
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:138
|
||||
#: lib/mv_web/live/member_live/form.ex:49
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:94
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:144
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:186
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:243
|
||||
#: lib/mv_web/live/member_live/form.ex:48
|
||||
#: lib/mv_web/live/member_live/index.html.heex:224
|
||||
#: lib/mv_web/live/member_live/show.ex:52
|
||||
#: lib/mv_web/live/member_live/show.ex:51
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Paid"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/member_live/form.ex:50
|
||||
#: lib/mv_web/live/member_live/form.ex:49
|
||||
#: lib/mv_web/live/member_live/index.html.heex:197
|
||||
#: lib/mv_web/live/member_live/show.ex:55
|
||||
#: lib/mv_web/live/member_live/show.ex:54
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Phone Number"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/member_live/form.ex:57
|
||||
#: lib/mv_web/live/member_live/form.ex:56
|
||||
#: lib/mv_web/live/member_live/index.html.heex:161
|
||||
#: lib/mv_web/live/member_live/show.ex:62
|
||||
#: lib/mv_web/live/member_live/show.ex:61
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Postal Code"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/member_live/form.ex:80
|
||||
#: lib/mv_web/live/member_live/form.ex:79
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Save Member"
|
||||
msgstr ""
|
||||
|
|
@ -165,15 +166,15 @@ msgstr ""
|
|||
#: lib/mv_web/live/custom_field_live/form.ex:66
|
||||
#: lib/mv_web/live/custom_field_value_live/form.ex:74
|
||||
#: lib/mv_web/live/global_settings_live.ex:55
|
||||
#: lib/mv_web/live/member_live/form.ex:79
|
||||
#: lib/mv_web/live/member_live/form.ex:78
|
||||
#: lib/mv_web/live/user_live/form.ex:248
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Saving..."
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/member_live/form.ex:55
|
||||
#: lib/mv_web/live/member_live/form.ex:54
|
||||
#: lib/mv_web/live/member_live/index.html.heex:125
|
||||
#: lib/mv_web/live/member_live/show.ex:60
|
||||
#: lib/mv_web/live/member_live/show.ex:59
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Street"
|
||||
msgstr ""
|
||||
|
|
@ -185,12 +186,12 @@ msgstr ""
|
|||
|
||||
#: lib/mv_web/live/member_live/index.html.heex:229
|
||||
#: lib/mv_web/live/member_live/index/formatter.ex:61
|
||||
#: lib/mv_web/live/member_live/show.ex:53
|
||||
#: lib/mv_web/live/member_live/show.ex:52
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "No"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/member_live/show.ex:116
|
||||
#: lib/mv_web/live/member_live/show.ex:115
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Show Member"
|
||||
msgstr ""
|
||||
|
|
@ -202,21 +203,21 @@ msgstr ""
|
|||
|
||||
#: lib/mv_web/live/member_live/index.html.heex:229
|
||||
#: lib/mv_web/live/member_live/index/formatter.ex:60
|
||||
#: lib/mv_web/live/member_live/show.ex:53
|
||||
#: lib/mv_web/live/member_live/show.ex:52
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Yes"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/custom_field_live/form.ex:110
|
||||
#: lib/mv_web/live/custom_field_value_live/form.ex:233
|
||||
#: lib/mv_web/live/member_live/form.ex:138
|
||||
#: lib/mv_web/live/member_live/form.ex:137
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "create"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/custom_field_live/form.ex:111
|
||||
#: lib/mv_web/live/custom_field_value_live/form.ex:234
|
||||
#: lib/mv_web/live/member_live/form.ex:139
|
||||
#: lib/mv_web/live/member_live/form.ex:138
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "update"
|
||||
msgstr ""
|
||||
|
|
@ -226,7 +227,7 @@ msgstr ""
|
|||
msgid "Incorrect email or password"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/member_live/form.ex:145
|
||||
#: lib/mv_web/live/member_live/form.ex:144
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Member %{action} successfully"
|
||||
msgstr ""
|
||||
|
|
@ -259,7 +260,7 @@ msgstr ""
|
|||
#: lib/mv_web/live/custom_field_live/form.ex:69
|
||||
#: lib/mv_web/live/custom_field_live/index.ex:120
|
||||
#: lib/mv_web/live/custom_field_value_live/form.ex:77
|
||||
#: lib/mv_web/live/member_live/form.ex:82
|
||||
#: lib/mv_web/live/member_live/form.ex:81
|
||||
#: lib/mv_web/live/user_live/form.ex:251
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Cancel"
|
||||
|
|
@ -295,7 +296,7 @@ msgstr ""
|
|||
msgid "Immutable"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/components/layouts/navbar.ex:102
|
||||
#: lib/mv_web/components/layouts/navbar.ex:113
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Logout"
|
||||
msgstr ""
|
||||
|
|
@ -312,12 +313,15 @@ msgid "Member"
|
|||
msgstr ""
|
||||
|
||||
#: lib/mv_web/components/layouts/navbar.ex:25
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:286
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:61
|
||||
#: lib/mv_web/live/member_live/index.ex:73
|
||||
#: lib/mv_web/live/member_live/index.html.heex:3
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Members"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:48
|
||||
#: lib/mv_web/live/custom_field_live/form.ex:51
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Name"
|
||||
|
|
@ -338,6 +342,7 @@ msgstr ""
|
|||
msgid "Not set"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:207
|
||||
#: lib/mv_web/live/user_live/form.ex:107
|
||||
#: lib/mv_web/live/user_live/form.ex:115
|
||||
#: lib/mv_web/live/user_live/form.ex:224
|
||||
|
|
@ -356,7 +361,7 @@ msgstr ""
|
|||
msgid "Password Authentication"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/components/layouts/navbar.ex:95
|
||||
#: lib/mv_web/components/layouts/navbar.ex:106
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Profil"
|
||||
msgstr ""
|
||||
|
|
@ -376,7 +381,7 @@ msgstr ""
|
|||
msgid "Select member"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/components/layouts/navbar.ex:99
|
||||
#: lib/mv_web/components/layouts/navbar.ex:110
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
|
@ -516,7 +521,7 @@ msgstr ""
|
|||
msgid "Linked Member"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/member_live/show.ex:63
|
||||
#: lib/mv_web/live/member_live/show.ex:62
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Linked User"
|
||||
msgstr ""
|
||||
|
|
@ -527,7 +532,7 @@ msgstr ""
|
|||
msgid "No member linked"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/member_live/show.ex:73
|
||||
#: lib/mv_web/live/member_live/show.ex:72
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "No user linked"
|
||||
msgstr ""
|
||||
|
|
@ -544,14 +549,14 @@ msgstr ""
|
|||
msgid "Back to users list"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/components/layouts/navbar.ex:33
|
||||
#: lib/mv_web/components/layouts/navbar.ex:39
|
||||
#: lib/mv_web/components/layouts/navbar.ex:44
|
||||
#: lib/mv_web/components/layouts/navbar.ex:50
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Select language"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/components/layouts/navbar.ex:46
|
||||
#: lib/mv_web/components/layouts/navbar.ex:66
|
||||
#: lib/mv_web/components/layouts/navbar.ex:57
|
||||
#: lib/mv_web/components/layouts/navbar.ex:77
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Toggle dark mode"
|
||||
msgstr ""
|
||||
|
|
@ -614,8 +619,8 @@ msgstr ""
|
|||
msgid "Choose a custom field"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/member_live/form.ex:59
|
||||
#: lib/mv_web/live/member_live/show.ex:78
|
||||
#: lib/mv_web/live/member_live/form.ex:58
|
||||
#: lib/mv_web/live/member_live/show.ex:77
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Custom Field Values"
|
||||
msgstr ""
|
||||
|
|
@ -712,6 +717,7 @@ msgstr ""
|
|||
msgid "Association Name"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:257
|
||||
#: lib/mv_web/live/global_settings_live.ex:31
|
||||
#: lib/mv_web/live/global_settings_live.ex:41
|
||||
#, elixir-autogen, elixir-format
|
||||
|
|
@ -723,6 +729,7 @@ msgstr ""
|
|||
msgid "Manage global settings for the association."
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:102
|
||||
#: lib/mv_web/live/global_settings_live.ex:56
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Save Settings"
|
||||
|
|
@ -838,24 +845,459 @@ msgstr ""
|
|||
msgid "This field cannot be empty"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:74
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:137
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:80
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:143
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:48
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:54
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Filter by payment status"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:102
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:139
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:108
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:145
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Not paid"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:59
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:65
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Payment filter"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:113
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "About Contribution Types"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:138
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:53
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Amount"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:124
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Can be changed at any time. Amount changes affect future periods only."
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:77
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Cannot delete - members assigned"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:42
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Configure global settings for membership contributions."
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/components/layouts/navbar.ex:34
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:282
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:27
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:40
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Contribution Settings"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/components/layouts/navbar.ex:32
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:278
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:253
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:25
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:36
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Contribution Types"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:226
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Contribution start"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:117
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Contribution types define different membership fee structures. Each type has a fixed interval (monthly, quarterly, half-yearly, yearly) that cannot be changed after creation."
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/components/layouts/navbar.ex:30
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Contributions"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:60
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Default Contribution Type"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:133
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Deletion"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:113
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Examples"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:288
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:172
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Family"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:128
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Fixed after creation. Members can only switch between types with the same interval."
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:230
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Generated periods"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:52
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Global Settings"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:373
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:301
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:203
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Half-yearly"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:181
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Half-yearly contribution for supporting members"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:87
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:188
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Honorary"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:85
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Include joining period"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:137
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:57
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:127
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Interval"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:222
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Joining date"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:38
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Manage contribution types for membership fees."
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:122
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Member pays for the year they joined"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:155
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Member pays from the joining month"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:144
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Member pays from the next full quarter"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:133
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Member pays from the next full year"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:371
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:299
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:201
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Monthly"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:150
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Monthly Interval - Joining Period Included"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:165
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Monthly fee for students and trainees"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:123
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Name & Amount"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:42
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "New Contribution Type"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:189
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "No fee for honorary members"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:134
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Only possible if no members are assigned to this type."
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:227
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:199
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:97
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Preview Mockup"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:372
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:300
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:202
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Quarterly"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:139
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Quarterly Interval - Joining Period Excluded"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:173
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Quarterly fee for family memberships"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:86
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:276
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:156
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Reduced"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:157
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Reduced fee for unemployed, pensioners, or low income"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:305
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:270
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:148
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Regular"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:273
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:248
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Related Pages"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:149
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Standard membership fee for regular members"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:282
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:164
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Student"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:180
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Supporting Member"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:69
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "This contribution type is automatically assigned to all new members. Can be changed individually per member."
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:90
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "When active: Members pay from the period of their joining."
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:93
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "When inactive: Members pay from the next full period after joining."
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:85
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:86
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:87
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:374
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:302
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:204
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Yearly"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:128
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Yearly Interval - Joining Period Excluded"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:117
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Yearly Interval - Joining Period Included"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:107
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "%{count} period selected"
|
||||
msgid_plural "%{count} periods selected"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:48
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Back to Settings"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:83
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Change Contribution Type"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:62
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Contribution Start"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:41
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Contribution type"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:39
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Contributions for %{name}"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:159
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Current"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:175
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Example: Member Contribution View"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:361
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Joining year - reduced to 0"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:116
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Mark as Paid"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:120
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Mark as Suspended"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:124
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Mark as Unpaid"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:26
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Member Contributions"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:43
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Member since"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:331
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Paid via bank transfer"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:178
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "See how the contribution periods will be displayed for an individual member. This example shows Maria Weber with multiple contribution periods."
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:139
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:261
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Suspended"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:252
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Unpaid"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:185
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "View Example Member"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:92
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Members can only switch between contribution types with the same payment interval (e.g., yearly to yearly). This prevents complex period overlaps."
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:70
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Open Contributions"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:204
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Reopen"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:195
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Suspend"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:229
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:201
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:99
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "This page is not functional and only displays the planned features."
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:136
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Time Period"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:66
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Total Contributions"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:98
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Why are not all contribution types shown?"
|
||||
msgstr ""
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ msgstr ""
|
|||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: lib/mv_web/components/core_components.ex:386
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:141
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Actions"
|
||||
msgstr ""
|
||||
|
|
@ -28,19 +29,21 @@ msgstr ""
|
|||
msgid "Attempting to reconnect"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/member_live/form.ex:54
|
||||
#: lib/mv_web/live/member_live/form.ex:53
|
||||
#: lib/mv_web/live/member_live/index.html.heex:179
|
||||
#: lib/mv_web/live/member_live/show.ex:59
|
||||
#: lib/mv_web/live/member_live/show.ex:58
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "City"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:78
|
||||
#: lib/mv_web/live/member_live/index.html.heex:245
|
||||
#: lib/mv_web/live/user_live/index.html.heex:74
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Delete"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:66
|
||||
#: lib/mv_web/live/member_live/index.html.heex:237
|
||||
#: lib/mv_web/live/user_live/form.ex:265
|
||||
#: lib/mv_web/live/user_live/index.html.heex:66
|
||||
|
|
@ -49,11 +52,12 @@ msgid "Edit"
|
|||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/member_live/show.ex:41
|
||||
#: lib/mv_web/live/member_live/show.ex:117
|
||||
#: lib/mv_web/live/member_live/show.ex:116
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Edit Member"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:58
|
||||
#: lib/mv_web/live/member_live/form.ex:47
|
||||
#: lib/mv_web/live/member_live/index.html.heex:107
|
||||
#: lib/mv_web/live/member_live/show.ex:50
|
||||
|
|
@ -70,9 +74,9 @@ msgstr ""
|
|||
msgid "First Name"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/member_live/form.ex:51
|
||||
#: lib/mv_web/live/member_live/form.ex:50
|
||||
#: lib/mv_web/live/member_live/index.html.heex:215
|
||||
#: lib/mv_web/live/member_live/show.ex:56
|
||||
#: lib/mv_web/live/member_live/show.ex:55
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Join Date"
|
||||
msgstr ""
|
||||
|
|
@ -109,55 +113,52 @@ msgstr ""
|
|||
msgid "close"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/member_live/form.ex:48
|
||||
#: lib/mv_web/live/member_live/show.ex:51
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Birth Date"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/member_live/form.ex:52
|
||||
#: lib/mv_web/live/member_live/show.ex:57
|
||||
#: lib/mv_web/live/member_live/form.ex:51
|
||||
#: lib/mv_web/live/member_live/show.ex:56
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Exit Date"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/member_live/form.ex:56
|
||||
#: lib/mv_web/live/member_live/form.ex:55
|
||||
#: lib/mv_web/live/member_live/index.html.heex:143
|
||||
#: lib/mv_web/live/member_live/show.ex:61
|
||||
#: lib/mv_web/live/member_live/show.ex:60
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "House Number"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/member_live/form.ex:53
|
||||
#: lib/mv_web/live/member_live/show.ex:58
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:140
|
||||
#: lib/mv_web/live/member_live/form.ex:52
|
||||
#: lib/mv_web/live/member_live/show.ex:57
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Notes"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:88
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:138
|
||||
#: lib/mv_web/live/member_live/form.ex:49
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:94
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:144
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:186
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:243
|
||||
#: lib/mv_web/live/member_live/form.ex:48
|
||||
#: lib/mv_web/live/member_live/index.html.heex:224
|
||||
#: lib/mv_web/live/member_live/show.ex:52
|
||||
#: lib/mv_web/live/member_live/show.ex:51
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Paid"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/member_live/form.ex:50
|
||||
#: lib/mv_web/live/member_live/form.ex:49
|
||||
#: lib/mv_web/live/member_live/index.html.heex:197
|
||||
#: lib/mv_web/live/member_live/show.ex:55
|
||||
#: lib/mv_web/live/member_live/show.ex:54
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Phone Number"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/member_live/form.ex:57
|
||||
#: lib/mv_web/live/member_live/form.ex:56
|
||||
#: lib/mv_web/live/member_live/index.html.heex:161
|
||||
#: lib/mv_web/live/member_live/show.ex:62
|
||||
#: lib/mv_web/live/member_live/show.ex:61
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Postal Code"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/member_live/form.ex:80
|
||||
#: lib/mv_web/live/member_live/form.ex:79
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
msgid "Save Member"
|
||||
msgstr ""
|
||||
|
|
@ -165,15 +166,15 @@ msgstr ""
|
|||
#: lib/mv_web/live/custom_field_live/form.ex:66
|
||||
#: lib/mv_web/live/custom_field_value_live/form.ex:74
|
||||
#: lib/mv_web/live/global_settings_live.ex:55
|
||||
#: lib/mv_web/live/member_live/form.ex:79
|
||||
#: lib/mv_web/live/member_live/form.ex:78
|
||||
#: lib/mv_web/live/user_live/form.ex:248
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Saving..."
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/member_live/form.ex:55
|
||||
#: lib/mv_web/live/member_live/form.ex:54
|
||||
#: lib/mv_web/live/member_live/index.html.heex:125
|
||||
#: lib/mv_web/live/member_live/show.ex:60
|
||||
#: lib/mv_web/live/member_live/show.ex:59
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Street"
|
||||
msgstr ""
|
||||
|
|
@ -185,12 +186,12 @@ msgstr ""
|
|||
|
||||
#: lib/mv_web/live/member_live/index.html.heex:229
|
||||
#: lib/mv_web/live/member_live/index/formatter.ex:61
|
||||
#: lib/mv_web/live/member_live/show.ex:53
|
||||
#: lib/mv_web/live/member_live/show.ex:52
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "No"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/member_live/show.ex:116
|
||||
#: lib/mv_web/live/member_live/show.ex:115
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
msgid "Show Member"
|
||||
msgstr ""
|
||||
|
|
@ -202,21 +203,21 @@ msgstr ""
|
|||
|
||||
#: lib/mv_web/live/member_live/index.html.heex:229
|
||||
#: lib/mv_web/live/member_live/index/formatter.ex:60
|
||||
#: lib/mv_web/live/member_live/show.ex:53
|
||||
#: lib/mv_web/live/member_live/show.ex:52
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Yes"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/custom_field_live/form.ex:110
|
||||
#: lib/mv_web/live/custom_field_value_live/form.ex:233
|
||||
#: lib/mv_web/live/member_live/form.ex:138
|
||||
#: lib/mv_web/live/member_live/form.ex:137
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "create"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/custom_field_live/form.ex:111
|
||||
#: lib/mv_web/live/custom_field_value_live/form.ex:234
|
||||
#: lib/mv_web/live/member_live/form.ex:139
|
||||
#: lib/mv_web/live/member_live/form.ex:138
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "update"
|
||||
msgstr ""
|
||||
|
|
@ -226,7 +227,7 @@ msgstr ""
|
|||
msgid "Incorrect email or password"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/member_live/form.ex:145
|
||||
#: lib/mv_web/live/member_live/form.ex:144
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Member %{action} successfully"
|
||||
msgstr ""
|
||||
|
|
@ -259,7 +260,7 @@ msgstr ""
|
|||
#: lib/mv_web/live/custom_field_live/form.ex:69
|
||||
#: lib/mv_web/live/custom_field_live/index.ex:120
|
||||
#: lib/mv_web/live/custom_field_value_live/form.ex:77
|
||||
#: lib/mv_web/live/member_live/form.ex:82
|
||||
#: lib/mv_web/live/member_live/form.ex:81
|
||||
#: lib/mv_web/live/user_live/form.ex:251
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Cancel"
|
||||
|
|
@ -295,7 +296,7 @@ msgstr ""
|
|||
msgid "Immutable"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/components/layouts/navbar.ex:102
|
||||
#: lib/mv_web/components/layouts/navbar.ex:113
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Logout"
|
||||
msgstr ""
|
||||
|
|
@ -312,12 +313,15 @@ msgid "Member"
|
|||
msgstr ""
|
||||
|
||||
#: lib/mv_web/components/layouts/navbar.ex:25
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:286
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:61
|
||||
#: lib/mv_web/live/member_live/index.ex:73
|
||||
#: lib/mv_web/live/member_live/index.html.heex:3
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Members"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:48
|
||||
#: lib/mv_web/live/custom_field_live/form.ex:51
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Name"
|
||||
|
|
@ -338,6 +342,7 @@ msgstr ""
|
|||
msgid "Not set"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:207
|
||||
#: lib/mv_web/live/user_live/form.ex:107
|
||||
#: lib/mv_web/live/user_live/form.ex:115
|
||||
#: lib/mv_web/live/user_live/form.ex:224
|
||||
|
|
@ -356,7 +361,7 @@ msgstr ""
|
|||
msgid "Password Authentication"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/components/layouts/navbar.ex:95
|
||||
#: lib/mv_web/components/layouts/navbar.ex:106
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Profil"
|
||||
msgstr ""
|
||||
|
|
@ -376,7 +381,7 @@ msgstr ""
|
|||
msgid "Select member"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/components/layouts/navbar.ex:99
|
||||
#: lib/mv_web/components/layouts/navbar.ex:110
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Settings"
|
||||
msgstr ""
|
||||
|
|
@ -516,7 +521,7 @@ msgstr "User will be created without a password. Check 'Set Password' to add one
|
|||
msgid "Linked Member"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/member_live/show.ex:63
|
||||
#: lib/mv_web/live/member_live/show.ex:62
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Linked User"
|
||||
msgstr ""
|
||||
|
|
@ -527,7 +532,7 @@ msgstr ""
|
|||
msgid "No member linked"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/member_live/show.ex:73
|
||||
#: lib/mv_web/live/member_live/show.ex:72
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "No user linked"
|
||||
msgstr ""
|
||||
|
|
@ -544,14 +549,14 @@ msgstr ""
|
|||
msgid "Back to users list"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/components/layouts/navbar.ex:33
|
||||
#: lib/mv_web/components/layouts/navbar.ex:39
|
||||
#: lib/mv_web/components/layouts/navbar.ex:44
|
||||
#: lib/mv_web/components/layouts/navbar.ex:50
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
msgid "Select language"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/components/layouts/navbar.ex:46
|
||||
#: lib/mv_web/components/layouts/navbar.ex:66
|
||||
#: lib/mv_web/components/layouts/navbar.ex:57
|
||||
#: lib/mv_web/components/layouts/navbar.ex:77
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Toggle dark mode"
|
||||
msgstr ""
|
||||
|
|
@ -614,8 +619,8 @@ msgstr ""
|
|||
msgid "Choose a custom field"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/member_live/form.ex:59
|
||||
#: lib/mv_web/live/member_live/show.ex:78
|
||||
#: lib/mv_web/live/member_live/form.ex:58
|
||||
#: lib/mv_web/live/member_live/show.ex:77
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Custom Field Values"
|
||||
msgstr ""
|
||||
|
|
@ -712,6 +717,7 @@ msgstr ""
|
|||
msgid "Association Name"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:257
|
||||
#: lib/mv_web/live/global_settings_live.ex:31
|
||||
#: lib/mv_web/live/global_settings_live.ex:41
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
|
|
@ -723,6 +729,7 @@ msgstr ""
|
|||
msgid "Manage global settings for the association."
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:102
|
||||
#: lib/mv_web/live/global_settings_live.ex:56
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
msgid "Save Settings"
|
||||
|
|
@ -838,24 +845,459 @@ msgstr ""
|
|||
msgid "This field cannot be empty"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:74
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:137
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:80
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:143
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "All"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:48
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:54
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Filter by payment status"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:102
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:139
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:108
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:145
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Not paid"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:59
|
||||
#: lib/mv_web/live/components/payment_filter_component.ex:65
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Payment filter"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:113
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "About Contribution Types"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:138
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:53
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Amount"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:124
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Can be changed at any time. Amount changes affect future periods only."
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:77
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Cannot delete - members assigned"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:42
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Configure global settings for membership contributions."
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/components/layouts/navbar.ex:34
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:282
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:27
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:40
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Contribution Settings"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/components/layouts/navbar.ex:32
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:278
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:253
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:25
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:36
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Contribution Types"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:226
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Contribution start"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:117
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Contribution types define different membership fee structures. Each type has a fixed interval (monthly, quarterly, half-yearly, yearly) that cannot be changed after creation."
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/components/layouts/navbar.ex:30
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Contributions"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:60
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Default Contribution Type"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:133
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
msgid "Deletion"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:113
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Examples"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:288
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:172
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Family"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:128
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Fixed after creation. Members can only switch between types with the same interval."
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:230
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Generated periods"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:52
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
msgid "Global Settings"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:373
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:301
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:203
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Half-yearly"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:181
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Half-yearly contribution for supporting members"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:87
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:188
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Honorary"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:85
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Include joining period"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:137
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:57
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:127
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Interval"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:222
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
msgid "Joining date"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:38
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Manage contribution types for membership fees."
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:122
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Member pays for the year they joined"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:155
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Member pays from the joining month"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:144
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Member pays from the next full quarter"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:133
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Member pays from the next full year"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:371
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:299
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:201
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Monthly"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:150
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Monthly Interval - Joining Period Included"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:165
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Monthly fee for students and trainees"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:123
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Name & Amount"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:42
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "New Contribution Type"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:189
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "No fee for honorary members"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:134
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Only possible if no members are assigned to this type."
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:227
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:199
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:97
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Preview Mockup"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:372
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:300
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:202
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Quarterly"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:139
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Quarterly Interval - Joining Period Excluded"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:173
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Quarterly fee for family memberships"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:86
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:276
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:156
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Reduced"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:157
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Reduced fee for unemployed, pensioners, or low income"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:305
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:270
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:148
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Regular"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:273
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:248
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Related Pages"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:149
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Standard membership fee for regular members"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:282
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:164
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Student"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:180
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Supporting Member"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:69
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "This contribution type is automatically assigned to all new members. Can be changed individually per member."
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:90
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "When active: Members pay from the period of their joining."
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:93
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "When inactive: Members pay from the next full period after joining."
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:85
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:86
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:87
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:374
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:302
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:204
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Yearly"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:128
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Yearly Interval - Joining Period Excluded"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:117
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Yearly Interval - Joining Period Included"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:107
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "%{count} period selected"
|
||||
msgid_plural "%{count} periods selected"
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:48
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Back to Settings"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:83
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Change Contribution Type"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:62
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
msgid "Contribution Start"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:41
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
msgid "Contribution type"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:39
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
msgid "Contributions for %{name}"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:159
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Current"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:175
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Example: Member Contribution View"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:361
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Joining year - reduced to 0"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:116
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Mark as Paid"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:120
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Mark as Suspended"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:124
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Mark as Unpaid"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:26
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Member Contributions"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:43
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
msgid "Member since"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:331
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Paid via bank transfer"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:178
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "See how the contribution periods will be displayed for an individual member. This example shows Maria Weber with multiple contribution periods."
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:139
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Status"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:261
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Suspended"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:252
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Unpaid"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:185
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "View Example Member"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:92
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Members can only switch between contribution types with the same payment interval (e.g., yearly to yearly). This prevents complex period overlaps."
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:70
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Open Contributions"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:204
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Reopen"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:195
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
msgid "Suspend"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:229
|
||||
#: lib/mv_web/live/contribution_settings_live.ex:201
|
||||
#: lib/mv_web/live/contribution_type_live/index.ex:99
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
msgid "This page is not functional and only displays the planned features."
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:136
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Time Period"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:66
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Total Contributions"
|
||||
msgstr ""
|
||||
|
||||
#: lib/mv_web/live/contribution_period_live/show.ex:98
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Why are not all contribution types shown?"
|
||||
msgstr ""
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue