Improve sending pending participation notifications

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel 2021-11-15 15:56:28 +01:00
parent 200adf272c
commit be1664ec85
No known key found for this signature in database
GPG Key ID: A061B9DDE0CA0773
63 changed files with 1544 additions and 1254 deletions

View File

@ -231,6 +231,7 @@ defmodule Mobilizon.Federation.ActivityPub.Types.Events do
Mobilizon.Events.get_default_participant_role(event) == :not_approved &&
role == :not_approved ->
Logger.debug("Scheduling a notification to notify of a new pending participation")
Scheduler.pending_participation_notification(event)
{:ok, activity_data, participant}

View File

@ -327,10 +327,10 @@ defmodule Mobilizon.Events do
@spec build_changes(map()) :: map()
defp build_changes(changes) do
changes
|> Map.take(Event.__schema__(:fields))
|> maybe_add_field(:physical_address)
|> maybe_add_field(:options)
|> maybe_add_field(:metadata)
|> Map.drop(Event.__schema__(:associations) -- [:physical_address, :options, :metadata])
end
@spec maybe_add_field(map(), atom()) :: map()

View File

@ -182,20 +182,39 @@ defmodule Mobilizon.Service.Notifications.Scheduler do
event_id: event_id
}
Logger.debug("Determining when we should send the pending participation notification")
cond do
# Sending directly
send_at == :direct ->
Notification.enqueue(:pending_participation_notification, params)
Logger.debug("The notification will be sent straight away!")
{:ok, %Oban.Job{id: job_id}} =
Notification.enqueue(:pending_participation_notification, params)
Logger.debug("Job scheduled with ID #{job_id}")
# Not sending
is_nil(send_at) ->
Logger.debug("We will not send any notification")
{:ok, nil}
# Sending to calculated time
DateTime.compare(begins_on, send_at) == :gt ->
Notification.enqueue(:pending_participation_notification, params, scheduled_at: send_at)
Logger.debug("We will send the notification on #{send_at}")
{:ok, %Oban.Job{id: job_id}} =
Notification.enqueue(:pending_participation_notification, params,
scheduled_at: send_at
)
Logger.debug("Job scheduled with ID #{job_id}")
true ->
Logger.debug(
"Something went wrong when determining when to send the pending participation notification"
)
{:ok, nil}
end
else
@ -302,6 +321,7 @@ defmodule Mobilizon.Service.Notifications.Scheduler do
:one_hour ->
compare_to
|> DateTime.add(3600)
|> DateTime.shift_zone!(timezone)
|> (&%{&1 | minute: 0, second: 0, microsecond: {0, 0}}).()
end

View File

@ -9,6 +9,7 @@ defmodule Mobilizon.Service.Workers.Notification do
alias Mobilizon.Storage.Page
alias Mobilizon.Users.{Setting, User}
alias Mobilizon.Web.Email.{Mailer, Notification}
require Logger
import Mobilizon.Service.DateTime,
only: [
@ -114,7 +115,7 @@ defmodule Mobilizon.Service.Workers.Notification do
"event_id" => event_id
}
}) do
with %User{} = user <- Users.get_user(user_id),
with %User{} = user <- Users.get_user_with_settings!(user_id),
{:ok, %Event{} = event} <- Events.get_event_with_preload(event_id),
%Page{total: total} when total > 0 <-
Events.list_participants_for_event(event_id, [:not_approved]) do
@ -125,8 +126,8 @@ defmodule Mobilizon.Service.Workers.Notification do
:ok
else
err ->
require Logger
Logger.debug(inspect(err))
err
end
end

View File

@ -92,7 +92,7 @@ defmodule Mobilizon.Web.Email.Notification do
@spec pending_participation_notification(User.t(), Event.t(), pos_integer()) :: Bamboo.Email.t()
def pending_participation_notification(
%User{locale: locale, email: email},
%User{locale: locale, email: email, settings: %Setting{timezone: timezone}},
%Event{} = event,
total
) do
@ -111,6 +111,7 @@ defmodule Mobilizon.Web.Email.Notification do
|> assign(:locale, locale)
|> assign(:event, event)
|> assign(:total, total)
|> assign(:timezone, timezone)
|> assign(:subject, subject)
|> render(:pending_participation_notification)
end

View File

@ -16,7 +16,7 @@
<tbody style="vertical-align: baseline; margin: 0; padding: 0; border: 0;">
<!-- row for datetime -->
<tr style="vertical-align: baseline; margin: 0; padding: 0; border: 0;" align="left">
<td style="word-wrap: break-word; border-collapse: collapse; color: rgb(10,10,10); font-family: Helvetica,Arial,sans-serif; font-weight: normal; line-height: 1.3; font-size: 16px; margin: 0; padding: 0 12px 12px 0; border: 0;" valign="baseline" align="left">
<td style="word-wrap: break-word; border-collapse: collapse; color: rgb(10,10,10); font-family: Helvetica,Arial,sans-serif; font-weight: normal; line-height: 1.3; font-size: 16px; margin: 0; padding: 0 12px 0 0; border: 0;" valign="baseline" align="left">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAABgAAAAYADwa0LPAAAAf0lEQVRIx2NgGEDwH4opUsdEa1eiW+DNwMDwBM1F/wlgZHWPGRgYPPFZ+JgIAwnhR8gGMmIJT2oAuLl0jwOqAxZCXiQRYATx0A+iAYsDfABbUsYZZ0M/iIa+BeREMkmZkO5B9ARKk1tUMzBAinycwJOBsjrhEQMDgwetQ2WYAQCSDEUsvZlgYAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMS0xMC0xNFQxNDo1MTowNyswMDowMCvAzKIAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjEtMTAtMTRUMTQ6NTE6MDcrMDA6MDBanXQeAAAAAElFTkSuQmCC" style="outline: none; text-decoration: none; width: 21px; max-width: 100%; clear: both; display: block; vertical-align: baseline; margin: 0; padding: 0; border: 0;">
</td>
<td style="word-wrap: break-word; border-collapse: collapse; color: rgb(10,10,10); font-family: Helvetica,Arial,sans-serif; font-weight: normal; line-height: 1.3; font-size: 16px; margin: 0; padding: 0 0 12px; border: 0;" valign="top" align="left">
@ -29,7 +29,7 @@
<%= if @event.physical_address do %>
<!-- venue block -->
<tr style="vertical-align: baseline; margin: 0; padding: 0; border: 0;" align="left">
<td style="word-wrap: break-word; border-collapse: collapse; color: rgb(10,10,10); font-family: Helvetica,Arial,sans-serif; font-weight: normal; line-height: 1.3; font-size: 16px; margin: 0; padding: 0 12px 12px 0; border: 0;" valign="baseline" align="left">
<td style="word-wrap: break-word; border-collapse: collapse; color: rgb(10,10,10); font-family: Helvetica,Arial,sans-serif; font-weight: normal; line-height: 1.3; font-size: 16px; margin: 0; padding: 0 12px 0 0; border: 0;" valign="baseline" align="left">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAABgAAAAYADwa0LPAAABHklEQVRIx+XUsUoDQRQF0EMUtNPGYGsULMTeNuonqJ8SsNZ/kLSW/kEaLQykMvoJNoKdGkWCQrTYDS6b3c1O1i4XbjHz3rt35u2+YR5Qxznu8RGzj7M4VgnHGOAnhwMcVREfFYiPOZrFpD7l5Gm+YS1LaCHH4BSHqb1XXOIOW1hOxJYwxE3ZGzykTviCjUS8ERsmc/ohLXpPFV9k5LRNfvAJ1HIMvkrk1abUFKKX0aJGIr6Z0aJeltBijsEt9hLrVVGPr+L1CVYyakpjR/lfdMzdEAPoBoh3Q8XhIMBgfxYD6JQQ78wqTjSxnwXiQ2xXMYBWgUGrqjjRQGW16lr+WxaMOp4S4s9Y/y/xMZr4jtksWxRyxUfRk9HxN9FzgF/m1ZTuGrd6hAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMS0xMC0xNFQxNDo1Mjo0NyswMDowMES9eVsAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjEtMTAtMTRUMTQ6NTI6NDcrMDA6MDA14MHnAAAAAElFTkSuQmCC" style="outline: none; text-decoration: none; width: 21px; max-width: 100%; clear: both; display: block; vertical-align: baseline; margin: 0; padding: 0; border: 0;">
</td>
<td class="m_8261046153705514309event__content_local" style="word-wrap: break-word; border-collapse: collapse; color: rgb(10,10,10); font-family: Helvetica,Arial,sans-serif; font-weight: normal; line-height: 1.3; font-size: 16px; margin: 0; padding: 0; border: 0;" valign="top" align="left">
@ -42,7 +42,7 @@
<% end %>
<%= if @event.options.is_online do %>
<tr style="vertical-align: baseline; margin: 0; padding: 0; border: 0;" align="left">
<td style="word-wrap: break-word; border-collapse: collapse; color: rgb(10,10,10); font-family: Helvetica,Arial,sans-serif; font-weight: normal; line-height: 1.3; font-size: 16px; margin: 0; padding: 0 12px 12px 0; border: 0;" valign="baseline" align="left">
<td style="word-wrap: break-word; border-collapse: collapse; color: rgb(10,10,10); font-family: Helvetica,Arial,sans-serif; font-weight: normal; line-height: 1.3; font-size: 16px; margin: 0; padding: 0 12px 0 0; border: 0;" valign="baseline" align="left">
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAABgAAAAYADwa0LPAAABWUlEQVRIx+WUP04CURDGf5pIQsROOAMHsNSgVmpp9AZ6AG1MiA1CsZ6DCxiwMx5BtKNQGs2uLf9aFov9DC8s++ftNiZOMpmdnW/mm8x78+A/SAVoAa/AVNoDmorlknNgDMwjdAyc5Snuq9ADUAM2pftARzE/C0nF6PwmBlcXZgSUbQhaRucABeAe8AAXcPQPoCvsnQ3Bm5Jq8h3C83cUO5DfsyGYKKkk31tB8K3YFosDD8l6BME8wQeYya7FYCIJBrI7su0VmPYSZoCFNNVRR36BYOYu4UN+FLZhQ2Be03oM7laYIbBtQwDB8vwuWpfgtpSkh0bnPnBqW9wkGRH9VAzzFC/KlgmW6IXg+k703TDGUrQtfgK8A7spsHvAh3JSyQbQN8bwBFwAVRaPXRW4BJ4NXF+5iXIdM/MkvUpD4OUgcJeLrdrkGdklVe4x8JWh+0/gKEdzf1R+ADQolKDXzQqjAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIxLTEwLTE1VDEzOjA5OjAzKzAwOjAwbhSTzgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMS0xMC0xNVQxMzowOTowMyswMDowMB9JK3IAAAAASUVORK5CYII=" style="outline: none; text-decoration: none; width: 21px; max-width: 100%; clear: both; display: block; vertical-align: baseline; margin: 0; padding: 0; border: 0;">
</td>
<td class="m_8261046153705514309event__content_local" style="word-wrap: break-word; border-collapse: collapse; color: rgb(10,10,10); font-family: Helvetica,Arial,sans-serif; font-weight: normal; line-height: 1.3; font-size: 16px; margin: 0; padding: 0; border: 0;" valign="top" align="left">
@ -55,52 +55,6 @@
</tbody>
</table>
</div>
<%= case @action do %>
<% "participation" -> %>
<div class="event__content_attend" style="vertical-align: middle; margin: 0; padding: 0; border: 0;">
<table class="button btn-attend event__content_position" style="border-spacing: 0; border-collapse: collapse; vertical-align: baseline; text-align: left; width: auto; margin: 0; padding: 0; border: 0;">
<tbody style="vertical-align: baseline; margin: 0; padding: 0; border: 0;">
<tr style="vertical-align: baseline; margin: 0; padding: 0; border: 0;" align="left">
<td style="word-wrap: break-word; border-collapse: collapse; color: rgb(10,10,10); font-family: Helvetica,Arial,sans-serif; font-weight: normal; line-height: 1.3; font-size: 16px; margin: 0; padding: 0; border: 0;" valign="baseline" align="left">
<table style="border-spacing: 0; border-collapse: collapse; vertical-align: baseline; text-align: left; margin: 0; padding: 0; border: 0;">
<tbody style="vertical-align: baseline; margin: 0; padding: 0; border: 0;">
<tr style="vertical-align: baseline; margin: 0; padding: 0; border: 0;" align="left">
<td style="word-wrap: break-word; border-collapse: collapse; color: rgb(255,255,255); font-family: Helvetica,Arial,sans-serif; font-weight: 500; line-height: 1.3; font-size: 16px; border-radius: 4px; margin: 0; padding: 0px; border: none;" valign="middle" bgcolor="FE3859" align="center">
<a href={Routes.page_url(Mobilizon.Web.Endpoint, :event, @event.uuid)} style="color: rgb(255,255,255); font-family: Helvetica,Arial,sans-serif; font-weight: bold; text-align: left; line-height: 14px; text-decoration: none; vertical-align: baseline; font-size: 16px; display: inline-block; border-radius: 3px; white-space: nowrap; margin: 0; padding: 12px 32px; border: none;" target="_blank">
<%= gettext("Manage your participation") %>
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
<% "event" -> %>
<div class="event__content_attend" style="vertical-align: middle; margin: 0; padding: 0; border: 0;">
<table class="button btn-attend event__content_position" style="border-spacing: 0; border-collapse: collapse; vertical-align: baseline; text-align: left; width: auto; margin: 0; padding: 0; border: 0;">
<tbody style="vertical-align: baseline; margin: 0; padding: 0; border: 0;">
<tr style="vertical-align: baseline; margin: 0; padding: 0; border: 0;" align="left">
<td style="word-wrap: break-word; border-collapse: collapse; color: rgb(10,10,10); font-family: Helvetica,Arial,sans-serif; font-weight: normal; line-height: 1.3; font-size: 16px; margin: 0; padding: 0; border: 0;" valign="baseline" align="left">
<table style="border-spacing: 0; border-collapse: collapse; vertical-align: baseline; text-align: left; margin: 0; padding: 0; border: 0;">
<tbody style="vertical-align: baseline; margin: 0; padding: 0; border: 0;">
<tr style="vertical-align: baseline; margin: 0; padding: 0; border: 0;" align="left">
<td style="word-wrap: break-word; border-collapse: collapse; color: rgb(255,255,255); font-family: Helvetica,Arial,sans-serif; font-weight: 500; line-height: 1.3; font-size: 16px; border-radius: 4px; margin: 0; padding: 0px; border: none;" valign="middle" bgcolor="FE3859" align="center">
<a href={Routes.page_url(Mobilizon.Web.Endpoint, :event, @event.uuid)} style="color: rgb(255,255,255); font-family: Helvetica,Arial,sans-serif; font-weight: bold; text-align: left; line-height: 14px; text-decoration: none; vertical-align: baseline; font-size: 16px; display: inline-block; border-radius: 3px; white-space: nowrap; margin: 0; padding: 12px 32px; border: none;" target="_blank">
<%= gettext("Participate") %>
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
<% end %>
</div>
</td>
</tr>

View File

@ -1,4 +1,2 @@
<%= gettext("Date:") %> <%= render("date/event_tz_date_range.text", event: @event, start_date: datetime_tz_convert(@event.begins_on, @event.options.timezone), end_date: datetime_tz_convert(@event.ends_on, @event.options.timezone), timezone: @timezone, locale: @locale) %>
<%= gettext("Address:") %> <%= if @event.physical_address do %><%= render_address(@event.physical_address) %><% end %><%= if @event.options.is_online do %><%= gettext "Online event" %><% end %>
<%= case @action do %><% "participation" -> %><%= gettext("Manage your participation:") %> <%= Routes.page_url(Mobilizon.Web.Endpoint, :event, @event.uuid) %><% "event" -> %><%= gettext("Participate:") %> <%= Routes.page_url(Mobilizon.Web.Endpoint, :event, @event.uuid) %><% end %>

View File

@ -5,7 +5,54 @@
<% end %>
<%= render("participation/card/_title.html", event: @event) %>
<%= render("participation/card/_metadata.html", event: @event, timezone: @timezone, locale: @locale, action: @action) %>
<%= if @event.description do %>
<%= case @action do %>
<% "participation" -> %>
<div class="event__content_attend" style="vertical-align: middle; margin: 0; padding: 0; border: 0;">
<table class="button btn-attend event__content_position" style="border-spacing: 0; border-collapse: collapse; vertical-align: baseline; text-align: left; width: auto; margin: 0; padding: 0; border: 0;">
<tbody style="vertical-align: baseline; margin: 0; padding: 0; border: 0;">
<tr style="vertical-align: baseline; margin: 0; padding: 0; border: 0;" align="left">
<td style="word-wrap: break-word; border-collapse: collapse; color: rgb(10,10,10); font-family: Helvetica,Arial,sans-serif; font-weight: normal; line-height: 1.3; font-size: 16px; margin: 0; padding: 0; border: 0;" valign="baseline" align="left">
<table style="border-spacing: 0; border-collapse: collapse; vertical-align: baseline; text-align: left; margin: 0; padding: 0; border: 0;">
<tbody style="vertical-align: baseline; margin: 0; padding: 0; border: 0;">
<tr style="vertical-align: baseline; margin: 0; padding: 0; border: 0;" align="left">
<td style="word-wrap: break-word; border-collapse: collapse; color: rgb(255,255,255); font-family: Helvetica,Arial,sans-serif; font-weight: 500; line-height: 1.3; font-size: 16px; border-radius: 4px; margin: 0; padding: 0px; border: none;" valign="middle" bgcolor="FE3859" align="center">
<a href={Routes.page_url(Mobilizon.Web.Endpoint, :event, @event.uuid)} style="color: rgb(255,255,255); font-family: Helvetica,Arial,sans-serif; font-weight: bold; text-align: left; line-height: 14px; text-decoration: none; vertical-align: baseline; font-size: 16px; display: inline-block; border-radius: 3px; white-space: nowrap; margin: 0; padding: 12px 32px; border: none;" target="_blank">
<%= gettext("Manage your participation") %>
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
<% "event" -> %>
<div class="event__content_attend" style="vertical-align: middle; margin: 0; padding: 0; border: 0;">
<table class="button btn-attend event__content_position" style="border-spacing: 0; border-collapse: collapse; vertical-align: baseline; text-align: left; width: auto; margin: 0; padding: 0; border: 0;">
<tbody style="vertical-align: baseline; margin: 0; padding: 0; border: 0;">
<tr style="vertical-align: baseline; margin: 0; padding: 0; border: 0;" align="left">
<td style="word-wrap: break-word; border-collapse: collapse; color: rgb(10,10,10); font-family: Helvetica,Arial,sans-serif; font-weight: normal; line-height: 1.3; font-size: 16px; margin: 0; padding: 0; border: 0;" valign="baseline" align="left">
<table style="border-spacing: 0; border-collapse: collapse; vertical-align: baseline; text-align: left; margin: 0; padding: 0; border: 0;">
<tbody style="vertical-align: baseline; margin: 0; padding: 0; border: 0;">
<tr style="vertical-align: baseline; margin: 0; padding: 0; border: 0;" align="left">
<td style="word-wrap: break-word; border-collapse: collapse; color: rgb(255,255,255); font-family: Helvetica,Arial,sans-serif; font-weight: 500; line-height: 1.3; font-size: 16px; border-radius: 4px; margin: 0; padding: 0px; border: none;" valign="middle" bgcolor="FE3859" align="center">
<a href={Routes.page_url(Mobilizon.Web.Endpoint, :event, @event.uuid)} style="color: rgb(255,255,255); font-family: Helvetica,Arial,sans-serif; font-weight: bold; text-align: left; line-height: 14px; text-decoration: none; vertical-align: baseline; font-size: 16px; display: inline-block; border-radius: 3px; white-space: nowrap; margin: 0; padding: 12px 32px; border: none;" target="_blank">
<%= gettext("Participate") %>
</a>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
<% nil -> %>
<% end %>
<%= if @event.description && @action != nil do %>
<div class="event-working" style="vertical-align: baseline; margin: 0 0 0 10px; padding: 7.5px 0 15px; border: 0;">
<p style="color: rgb(46,62,72); font-family: Helvetica,Arial,sans-serif; font-weight: 700; line-height: 1.5; font-size: 16px; vertical-align: baseline; margin: 0; padding: 0 0 7.5px; border: 0;" align="left">
<%= gettext("Details") %>

View File

@ -2,6 +2,8 @@
<%= render("participation/card/_metadata.text", event: @event, timezone: @timezone, locale: @locale, action: @action) %>
<%= case @action do %><% "participation" -> %><%= gettext("Manage your participation:") %> <%= Routes.page_url(Mobilizon.Web.Endpoint, :event, @event.uuid) %><% "event" -> %><%= gettext("Participate:") %> <%= Routes.page_url(Mobilizon.Web.Endpoint, :event, @event.uuid) %><% nil -> %><% end %>
<%= if @event.description do %><%= gettext("Details:") %>
<%= process_description(@event.description) %>
<%= if String.length(@event.description) > 200 do %><%= gettext("Read more : %{url}", url: Routes.page_url(Mobilizon.Web.Endpoint, :event, @event.uuid)) |> raw %><% end %><% end %>

View File

@ -35,15 +35,20 @@
<tr>
<td bgcolor="#ffffff" align="left" style="padding: 20px 30px 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;" >
<p style="margin: 0;">
<%= ngettext "You have one pending attendance request to process:", "You have %{number_participation_requests} attendance requests to process:", @total, number_participation_requests: @total %>
<%= ngettext "You have one pending attendance request to process for the following event:", "You have %{number_participation_requests} attendance requests to process for the following event:", @total, number_participation_requests: @total %>
</p>
</td>
</tr>
<tr>
<td bgcolor="#ffffff" align="left" style="padding: 20px 30px 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;" >
<%= render("participation/event_card.html", event: @event, timezone: @timezone, locale: @locale, action: nil) %>
</td>
</tr>
<tr>
<td bgcolor="#ffffff" align="left" style="padding: 20px 30px 0px 30px; color: #474467; font-family: 'Roboto', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;" >
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td bgcolor="#ffffff" align="center" style="padding: 20px 30px 60px 30px;">
<td bgcolor="#ffffff" align="center" style="padding: 20px 30px 30px 30px;">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center" style="border-radius: 3px;" bgcolor="#3C376E">

View File

@ -1,7 +1,9 @@
<%= gettext "A request is pending!" %>
==
<%= ngettext "You have one pending attendance request to process:", "You have %{number_participation_requests} attendance requests to process:", @total, number_participation_requests: @total %>
<%= ngettext "You have one pending attendance request to process for the following event:", "You have %{number_participation_requests} attendance requests to process for the following event:", @total, number_participation_requests: @total %>
<%= render("participation/event_card.text", event: @event, timezone: @timezone, locale: @locale, action: nil) %>
<%= gettext "Manage pending requests" %> <%= Routes.page_url(Mobilizon.Web.Endpoint, :event, @event.uuid) <> "/participations" %>

View File

@ -789,18 +789,6 @@ msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
#, elixir-format
#: lib/web/templates/email/pending_participation_notification.html.heex:38
#: lib/web/templates/email/pending_participation_notification.text.eex:4
msgid "You have one pending attendance request to process:"
msgid_plural "You have %{number_participation_requests} attendance requests to process:"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
msgstr[5] ""
#, elixir-format
#: lib/web/templates/email/email.text.eex:11
msgid "%{instance} is powered by Mobilizon."
@ -903,8 +891,8 @@ msgid "Location address was removed"
msgstr ""
#, elixir-format
#: lib/web/templates/email/pending_participation_notification.html.heex:51
#: lib/web/templates/email/pending_participation_notification.text.eex:6
#: lib/web/templates/email/pending_participation_notification.html.heex:56
#: lib/web/templates/email/pending_participation_notification.text.eex:8
msgid "Manage pending requests"
msgstr ""
@ -1015,8 +1003,8 @@ msgid "Would you wish to update or cancel your attendance, simply access the eve
msgstr ""
#, elixir-format
#: lib/web/templates/email/pending_participation_notification.html.heex:64
#: lib/web/templates/email/pending_participation_notification.text.eex:8
#: lib/web/templates/email/pending_participation_notification.html.heex:69
#: lib/web/templates/email/pending_participation_notification.text.eex:10
msgid "You are receiving this email because you chose to get notifications for pending attendance requests to your events. You can disable or change your notification settings in your user account settings under « Notifications »."
msgstr ""
@ -1543,7 +1531,7 @@ msgid "On the agenda this week"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:11
#: lib/web/templates/email/participation/event_card.html.heex:58
msgid "Details"
msgstr ""
@ -1554,7 +1542,7 @@ msgid "From the %{start} to the %{end}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:70
#: lib/web/templates/email/participation/event_card.html.heex:20
msgid "Manage your participation"
msgstr ""
@ -1565,7 +1553,7 @@ msgid "On %{date} from %{start_time} to %{end_time}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:19
#: lib/web/templates/email/participation/event_card.html.heex:66
msgid "Read more"
msgstr ""
@ -1596,7 +1584,7 @@ msgid "Date:"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.text.eex:5
#: lib/web/templates/email/participation/event_card.text.eex:7
msgid "Details:"
msgstr ""
@ -1606,7 +1594,7 @@ msgid "Manage your notification settings"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.text.eex:4
#: lib/web/templates/email/participation/event_card.text.eex:5
msgid "Manage your participation:"
msgstr ""
@ -1617,17 +1605,17 @@ msgid "Organizer: %{organizer}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:92
#: lib/web/templates/email/participation/event_card.html.heex:42
msgid "Participate"
msgstr "تم قبول المشاركة"
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.text.eex:4
#: lib/web/templates/email/participation/event_card.text.eex:5
msgid "Participate:"
msgstr "تم قبول المشاركة"
#, elixir-format
#: lib/web/templates/email/participation/event_card.text.eex:7
#: lib/web/templates/email/participation/event_card.text.eex:9
msgid "Read more : %{url}"
msgstr ""
@ -1693,12 +1681,24 @@ msgstr ""
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been rejected."
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/web/templates/email/group_membership_approval.text.eex:3
msgid "Your membership request for group %{group} has been approved."
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been approved."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/pending_participation_notification.html.heex:38
#: lib/web/templates/email/pending_participation_notification.text.eex:4
msgid "You have one pending attendance request to process for the following event:"
msgid_plural "You have %{number_participation_requests} attendance requests to process for the following event:"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
msgstr[3] ""
msgstr[4] ""
msgstr[5] ""

View File

@ -829,7 +829,7 @@ msgid "You don't have the right to remove this member."
msgstr ""
#, elixir-format
#: lib/mobilizon/actors/actor.ex:350
#: lib/mobilizon/actors/actor.ex:351
msgid "This username is already taken."
msgstr ""

View File

@ -768,15 +768,6 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#, elixir-format
#: lib/web/templates/email/pending_participation_notification.html.heex:38
#: lib/web/templates/email/pending_participation_notification.text.eex:4
msgid "You have one pending attendance request to process:"
msgid_plural "You have %{number_participation_requests} attendance requests to process:"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#, elixir-format
#: lib/web/templates/email/email.text.eex:11
msgid "%{instance} is powered by Mobilizon."
@ -879,8 +870,8 @@ msgid "Location address was removed"
msgstr ""
#, elixir-format
#: lib/web/templates/email/pending_participation_notification.html.heex:51
#: lib/web/templates/email/pending_participation_notification.text.eex:6
#: lib/web/templates/email/pending_participation_notification.html.heex:56
#: lib/web/templates/email/pending_participation_notification.text.eex:8
msgid "Manage pending requests"
msgstr ""
@ -991,8 +982,8 @@ msgid "Would you wish to update or cancel your attendance, simply access the eve
msgstr ""
#, elixir-format
#: lib/web/templates/email/pending_participation_notification.html.heex:64
#: lib/web/templates/email/pending_participation_notification.text.eex:8
#: lib/web/templates/email/pending_participation_notification.html.heex:69
#: lib/web/templates/email/pending_participation_notification.text.eex:10
msgid "You are receiving this email because you chose to get notifications for pending attendance requests to your events. You can disable or change your notification settings in your user account settings under « Notifications »."
msgstr ""
@ -1519,7 +1510,7 @@ msgid "On the agenda this week"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:11
#: lib/web/templates/email/participation/event_card.html.heex:58
msgid "Details"
msgstr ""
@ -1530,7 +1521,7 @@ msgid "From the %{start} to the %{end}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:70
#: lib/web/templates/email/participation/event_card.html.heex:20
msgid "Manage your participation"
msgstr ""
@ -1541,7 +1532,7 @@ msgid "On %{date} from %{start_time} to %{end_time}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:19
#: lib/web/templates/email/participation/event_card.html.heex:66
msgid "Read more"
msgstr ""
@ -1572,7 +1563,7 @@ msgid "Date:"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.text.eex:5
#: lib/web/templates/email/participation/event_card.text.eex:7
msgid "Details:"
msgstr ""
@ -1582,7 +1573,7 @@ msgid "Manage your notification settings"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.text.eex:4
#: lib/web/templates/email/participation/event_card.text.eex:5
msgid "Manage your participation:"
msgstr ""
@ -1593,17 +1584,17 @@ msgid "Organizer: %{organizer}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:92
#: lib/web/templates/email/participation/event_card.html.heex:42
msgid "Participate"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.text.eex:4
#: lib/web/templates/email/participation/event_card.text.eex:5
msgid "Participate:"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.text.eex:7
#: lib/web/templates/email/participation/event_card.text.eex:9
msgid "Read more : %{url}"
msgstr ""
@ -1669,12 +1660,21 @@ msgstr ""
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been rejected."
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/web/templates/email/group_membership_approval.text.eex:3
msgid "Your membership request for group %{group} has been approved."
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been approved."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/pending_participation_notification.html.heex:38
#: lib/web/templates/email/pending_participation_notification.text.eex:4
msgid "You have one pending attendance request to process for the following event:"
msgid_plural "You have %{number_participation_requests} attendance requests to process for the following event:"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""

View File

@ -803,7 +803,7 @@ msgid "You don't have the right to remove this member."
msgstr ""
#, elixir-format
#: lib/mobilizon/actors/actor.ex:350
#: lib/mobilizon/actors/actor.ex:351
msgid "This username is already taken."
msgstr ""

View File

@ -938,16 +938,6 @@ msgstr[1] ""
"Si has de canceŀlar la teva participació, accedeix a l'activitat per "
"l'enllaç de dalt i clica al botó de participació."
#, elixir-format
#: lib/web/templates/email/pending_participation_notification.html.heex:38
#: lib/web/templates/email/pending_participation_notification.text.eex:4
msgid "You have one pending attendance request to process:"
msgid_plural "You have %{number_participation_requests} attendance requests to process:"
msgstr[0] "Tens una soŀlicitud de participació pendent de resoldre:"
msgstr[1] ""
"Tens %{number_participation_requests} soŀlicituds de participació pendents "
"de resoldre:"
#, elixir-format
#: lib/web/templates/email/email.text.eex:11
msgid "%{instance} is powered by Mobilizon."
@ -1067,8 +1057,8 @@ msgid "Location address was removed"
msgstr "L'adreça postal ha estat esborrada"
#, elixir-format
#: lib/web/templates/email/pending_participation_notification.html.heex:51
#: lib/web/templates/email/pending_participation_notification.text.eex:6
#: lib/web/templates/email/pending_participation_notification.html.heex:56
#: lib/web/templates/email/pending_participation_notification.text.eex:8
msgid "Manage pending requests"
msgstr "Gestiona les soŀlicituds pendents"
@ -1183,8 +1173,8 @@ msgstr ""
"de l'activitat amb l'enllaç d'amunt i clica al botó de participació."
#, elixir-format
#: lib/web/templates/email/pending_participation_notification.html.heex:64
#: lib/web/templates/email/pending_participation_notification.text.eex:8
#: lib/web/templates/email/pending_participation_notification.html.heex:69
#: lib/web/templates/email/pending_participation_notification.text.eex:10
msgid "You are receiving this email because you chose to get notifications for pending attendance requests to your events. You can disable or change your notification settings in your user account settings under « Notifications »."
msgstr ""
"Has rebut aquest correu perquè tens configurat de rebre notificacions per a "
@ -1775,7 +1765,7 @@ msgid "On the agenda this week"
msgstr "Una activitat planificada per aquesta setmana"
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:11
#: lib/web/templates/email/participation/event_card.html.heex:58
msgid "Details"
msgstr ""
@ -1786,7 +1776,7 @@ msgid "From the %{start} to the %{end}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:70
#: lib/web/templates/email/participation/event_card.html.heex:20
msgid "Manage your participation"
msgstr ""
@ -1797,7 +1787,7 @@ msgid "On %{date} from %{start_time} to %{end_time}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:19
#: lib/web/templates/email/participation/event_card.html.heex:66
msgid "Read more"
msgstr ""
@ -1828,7 +1818,7 @@ msgid "Date:"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.text.eex:5
#: lib/web/templates/email/participation/event_card.text.eex:7
msgid "Details:"
msgstr ""
@ -1838,7 +1828,7 @@ msgid "Manage your notification settings"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.text.eex:4
#: lib/web/templates/email/participation/event_card.text.eex:5
msgid "Manage your participation:"
msgstr ""
@ -1849,17 +1839,17 @@ msgid "Organizer: %{organizer}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:92
#: lib/web/templates/email/participation/event_card.html.heex:42
msgid "Participate"
msgstr "S'ha aprovat la participació"
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.text.eex:4
#: lib/web/templates/email/participation/event_card.text.eex:5
msgid "Participate:"
msgstr "S'ha aprovat la participació"
#, elixir-format
#: lib/web/templates/email/participation/event_card.text.eex:7
#: lib/web/templates/email/participation/event_card.text.eex:9
msgid "Read more : %{url}"
msgstr ""
@ -1925,12 +1915,22 @@ msgstr ""
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been rejected."
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/web/templates/email/group_membership_approval.text.eex:3
msgid "Your membership request for group %{group} has been approved."
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been approved."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/pending_participation_notification.html.heex:38
#: lib/web/templates/email/pending_participation_notification.text.eex:4
msgid "You have one pending attendance request to process for the following event:"
msgid_plural "You have %{number_participation_requests} attendance requests to process for the following event:"
msgstr[0] "Tens una soŀlicitud de participació pendent de resoldre:"
msgstr[1] ""
"Tens %{number_participation_requests} soŀlicituds de participació pendents "
"de resoldre:"

View File

@ -804,7 +804,7 @@ msgid "You don't have the right to remove this member."
msgstr ""
#, elixir-format
#: lib/mobilizon/actors/actor.ex:350
#: lib/mobilizon/actors/actor.ex:351
msgid "This username is already taken."
msgstr ""

View File

@ -768,15 +768,6 @@ msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#, elixir-format
#: lib/web/templates/email/pending_participation_notification.html.heex:38
#: lib/web/templates/email/pending_participation_notification.text.eex:4
msgid "You have one pending attendance request to process:"
msgid_plural "You have %{number_participation_requests} attendance requests to process:"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""
#, elixir-format
#: lib/web/templates/email/email.text.eex:11
msgid "%{instance} is powered by Mobilizon."
@ -879,8 +870,8 @@ msgid "Location address was removed"
msgstr ""
#, elixir-format
#: lib/web/templates/email/pending_participation_notification.html.heex:51
#: lib/web/templates/email/pending_participation_notification.text.eex:6
#: lib/web/templates/email/pending_participation_notification.html.heex:56
#: lib/web/templates/email/pending_participation_notification.text.eex:8
msgid "Manage pending requests"
msgstr ""
@ -991,8 +982,8 @@ msgid "Would you wish to update or cancel your attendance, simply access the eve
msgstr ""
#, elixir-format
#: lib/web/templates/email/pending_participation_notification.html.heex:64
#: lib/web/templates/email/pending_participation_notification.text.eex:8
#: lib/web/templates/email/pending_participation_notification.html.heex:69
#: lib/web/templates/email/pending_participation_notification.text.eex:10
msgid "You are receiving this email because you chose to get notifications for pending attendance requests to your events. You can disable or change your notification settings in your user account settings under « Notifications »."
msgstr ""
@ -1519,7 +1510,7 @@ msgid "On the agenda this week"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:11
#: lib/web/templates/email/participation/event_card.html.heex:58
msgid "Details"
msgstr ""
@ -1530,7 +1521,7 @@ msgid "From the %{start} to the %{end}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:70
#: lib/web/templates/email/participation/event_card.html.heex:20
msgid "Manage your participation"
msgstr ""
@ -1541,7 +1532,7 @@ msgid "On %{date} from %{start_time} to %{end_time}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:19
#: lib/web/templates/email/participation/event_card.html.heex:66
msgid "Read more"
msgstr ""
@ -1572,7 +1563,7 @@ msgid "Date:"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.text.eex:5
#: lib/web/templates/email/participation/event_card.text.eex:7
msgid "Details:"
msgstr ""
@ -1582,7 +1573,7 @@ msgid "Manage your notification settings"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.text.eex:4
#: lib/web/templates/email/participation/event_card.text.eex:5
msgid "Manage your participation:"
msgstr ""
@ -1593,17 +1584,17 @@ msgid "Organizer: %{organizer}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:92
#: lib/web/templates/email/participation/event_card.html.heex:42
msgid "Participate"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.text.eex:4
#: lib/web/templates/email/participation/event_card.text.eex:5
msgid "Participate:"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.text.eex:7
#: lib/web/templates/email/participation/event_card.text.eex:9
msgid "Read more : %{url}"
msgstr ""
@ -1669,12 +1660,21 @@ msgstr ""
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been rejected."
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/web/templates/email/group_membership_approval.text.eex:3
msgid "Your membership request for group %{group} has been approved."
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been approved."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/pending_participation_notification.html.heex:38
#: lib/web/templates/email/pending_participation_notification.text.eex:4
msgid "You have one pending attendance request to process for the following event:"
msgid_plural "You have %{number_participation_requests} attendance requests to process for the following event:"
msgstr[0] ""
msgstr[1] ""
msgstr[2] ""

View File

@ -803,7 +803,7 @@ msgid "You don't have the right to remove this member."
msgstr ""
#, elixir-format
#: lib/mobilizon/actors/actor.ex:350
#: lib/mobilizon/actors/actor.ex:351
msgid "This username is already taken."
msgstr ""

View File

@ -972,14 +972,6 @@ msgstr[1] ""
"gehe einfach über obenstehenden Link auf die Veranstaltungs-Seite und klicke "
"auf den Teilnahme-Button."
#, elixir-format
#: lib/web/templates/email/pending_participation_notification.html.heex:38
#: lib/web/templates/email/pending_participation_notification.text.eex:4
msgid "You have one pending attendance request to process:"
msgid_plural "You have %{number_participation_requests} attendance requests to process:"
msgstr[0] "Sie haben eine ausstehende Anwesenheitsanforderung zu bearbeiten:"
msgstr[1] "Sie haben %{Anzahl_Teilnahmeanträge} Teilnahmeanträge zu bearbeiten:"
#, elixir-format
#: lib/web/templates/email/email.text.eex:11
msgid "%{instance} is powered by Mobilizon."
@ -1100,8 +1092,8 @@ msgid "Location address was removed"
msgstr "Adresse wurde entfernt"
#, elixir-format
#: lib/web/templates/email/pending_participation_notification.html.heex:51
#: lib/web/templates/email/pending_participation_notification.text.eex:6
#: lib/web/templates/email/pending_participation_notification.html.heex:56
#: lib/web/templates/email/pending_participation_notification.text.eex:8
msgid "Manage pending requests"
msgstr "Ausstehende Anfragen verwalten"
@ -1222,8 +1214,8 @@ msgstr ""
"Schaltfläche \"Teilnehmen\"."
#, elixir-format
#: lib/web/templates/email/pending_participation_notification.html.heex:64
#: lib/web/templates/email/pending_participation_notification.text.eex:8
#: lib/web/templates/email/pending_participation_notification.html.heex:69
#: lib/web/templates/email/pending_participation_notification.text.eex:10
msgid "You are receiving this email because you chose to get notifications for pending attendance requests to your events. You can disable or change your notification settings in your user account settings under « Notifications »."
msgstr ""
"Sie erhalten diese E-Mail, weil Sie sich dafür entschieden haben, "
@ -1887,7 +1879,7 @@ msgid "On the agenda this week"
msgstr "Ein Event ist für diese Woche geplant"
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:11
#: lib/web/templates/email/participation/event_card.html.heex:58
msgid "Details"
msgstr ""
@ -1898,7 +1890,7 @@ msgid "From the %{start} to the %{end}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:70
#: lib/web/templates/email/participation/event_card.html.heex:20
msgid "Manage your participation"
msgstr ""
@ -1909,7 +1901,7 @@ msgid "On %{date} from %{start_time} to %{end_time}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:19
#: lib/web/templates/email/participation/event_card.html.heex:66
msgid "Read more"
msgstr ""
@ -1940,7 +1932,7 @@ msgid "Date:"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.text.eex:5
#: lib/web/templates/email/participation/event_card.text.eex:7
msgid "Details:"
msgstr ""
@ -1950,7 +1942,7 @@ msgid "Manage your notification settings"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.text.eex:4
#: lib/web/templates/email/participation/event_card.text.eex:5
msgid "Manage your participation:"
msgstr ""
@ -1961,17 +1953,17 @@ msgid "Organizer: %{organizer}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:92
#: lib/web/templates/email/participation/event_card.html.heex:42
msgid "Participate"
msgstr "Teilnahme bestätigt"
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.text.eex:4
#: lib/web/templates/email/participation/event_card.text.eex:5
msgid "Participate:"
msgstr "Teilnahme bestätigt"
#, elixir-format
#: lib/web/templates/email/participation/event_card.text.eex:7
#: lib/web/templates/email/participation/event_card.text.eex:9
msgid "Read more : %{url}"
msgstr ""
@ -2037,12 +2029,20 @@ msgstr ""
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been rejected."
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/web/templates/email/group_membership_approval.text.eex:3
msgid "Your membership request for group %{group} has been approved."
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been approved."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/pending_participation_notification.html.heex:38
#: lib/web/templates/email/pending_participation_notification.text.eex:4
msgid "You have one pending attendance request to process for the following event:"
msgid_plural "You have %{number_participation_requests} attendance requests to process for the following event:"
msgstr[0] "Sie haben eine ausstehende Anwesenheitsanforderung zu bearbeiten:"
msgstr[1] "Sie haben %{Anzahl_Teilnahmeanträge} Teilnahmeanträge zu bearbeiten:"

View File

@ -831,7 +831,7 @@ msgid "You don't have the right to remove this member."
msgstr "Sie haben nicht das Recht, dieses Mitglied zu entfernen."
#, elixir-format
#: lib/mobilizon/actors/actor.ex:350
#: lib/mobilizon/actors/actor.ex:351
msgid "This username is already taken."
msgstr "Dieser Benutzername ist bereits vergeben."

View File

@ -748,14 +748,6 @@ msgid_plural "Would you wish to cancel your attendance to one or several events,
msgstr[0] ""
msgstr[1] ""
#, elixir-format
#: lib/web/templates/email/pending_participation_notification.html.heex:38
#: lib/web/templates/email/pending_participation_notification.text.eex:4
msgid "You have one pending attendance request to process:"
msgid_plural "You have %{number_participation_requests} attendance requests to process:"
msgstr[0] ""
msgstr[1] ""
#, elixir-format
#: lib/web/templates/email/email.text.eex:11
msgid "%{instance} is powered by Mobilizon."
@ -858,8 +850,8 @@ msgid "Location address was removed"
msgstr ""
#, elixir-format
#: lib/web/templates/email/pending_participation_notification.html.heex:51
#: lib/web/templates/email/pending_participation_notification.text.eex:6
#: lib/web/templates/email/pending_participation_notification.html.heex:56
#: lib/web/templates/email/pending_participation_notification.text.eex:8
msgid "Manage pending requests"
msgstr ""
@ -970,8 +962,8 @@ msgid "Would you wish to update or cancel your attendance, simply access the eve
msgstr ""
#, elixir-format
#: lib/web/templates/email/pending_participation_notification.html.heex:64
#: lib/web/templates/email/pending_participation_notification.text.eex:8
#: lib/web/templates/email/pending_participation_notification.html.heex:69
#: lib/web/templates/email/pending_participation_notification.text.eex:10
msgid "You are receiving this email because you chose to get notifications for pending attendance requests to your events. You can disable or change your notification settings in your user account settings under « Notifications »."
msgstr ""
@ -1498,7 +1490,7 @@ msgid "On the agenda this week"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:11
#: lib/web/templates/email/participation/event_card.html.heex:58
msgid "Details"
msgstr ""
@ -1509,7 +1501,7 @@ msgid "From the %{start} to the %{end}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:70
#: lib/web/templates/email/participation/event_card.html.heex:20
msgid "Manage your participation"
msgstr ""
@ -1520,7 +1512,7 @@ msgid "On %{date} from %{start_time} to %{end_time}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:19
#: lib/web/templates/email/participation/event_card.html.heex:66
msgid "Read more"
msgstr ""
@ -1551,7 +1543,7 @@ msgid "Date:"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.text.eex:5
#: lib/web/templates/email/participation/event_card.text.eex:7
msgid "Details:"
msgstr ""
@ -1561,7 +1553,7 @@ msgid "Manage your notification settings"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.text.eex:4
#: lib/web/templates/email/participation/event_card.text.eex:5
msgid "Manage your participation:"
msgstr ""
@ -1572,17 +1564,17 @@ msgid "Organizer: %{organizer}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:92
#: lib/web/templates/email/participation/event_card.html.heex:42
msgid "Participate"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.text.eex:4
#: lib/web/templates/email/participation/event_card.text.eex:5
msgid "Participate:"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.text.eex:7
#: lib/web/templates/email/participation/event_card.text.eex:9
msgid "Read more : %{url}"
msgstr ""
@ -1657,3 +1649,11 @@ msgstr ""
#: lib/web/templates/email/group_membership_approval.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been approved."
msgstr ""
#, elixir-format
#: lib/web/templates/email/pending_participation_notification.html.heex:38
#: lib/web/templates/email/pending_participation_notification.text.eex:4
msgid "You have one pending attendance request to process for the following event:"
msgid_plural "You have %{number_participation_requests} attendance requests to process for the following event:"
msgstr[0] ""
msgstr[1] ""

View File

@ -801,14 +801,6 @@ msgid_plural "Would you wish to cancel your attendance to one or several events,
msgstr[0] "If you need to cancel your participation, just access the event page through link above and click on the participation button."
msgstr[1] "If you need to cancel your participation, just access the event page through link above and click on the participation button."
#, elixir-format
#: lib/web/templates/email/pending_participation_notification.html.heex:38
#: lib/web/templates/email/pending_participation_notification.text.eex:4
msgid "You have one pending attendance request to process:"
msgid_plural "You have %{number_participation_requests} attendance requests to process:"
msgstr[0] ""
msgstr[1] ""
#, elixir-format
#: lib/web/templates/email/email.text.eex:11
msgid "%{instance} is powered by Mobilizon."
@ -911,8 +903,8 @@ msgid "Location address was removed"
msgstr ""
#, elixir-format
#: lib/web/templates/email/pending_participation_notification.html.heex:51
#: lib/web/templates/email/pending_participation_notification.text.eex:6
#: lib/web/templates/email/pending_participation_notification.html.heex:56
#: lib/web/templates/email/pending_participation_notification.text.eex:8
msgid "Manage pending requests"
msgstr ""
@ -1023,8 +1015,8 @@ msgid "Would you wish to update or cancel your attendance, simply access the eve
msgstr ""
#, elixir-format
#: lib/web/templates/email/pending_participation_notification.html.heex:64
#: lib/web/templates/email/pending_participation_notification.text.eex:8
#: lib/web/templates/email/pending_participation_notification.html.heex:69
#: lib/web/templates/email/pending_participation_notification.text.eex:10
msgid "You are receiving this email because you chose to get notifications for pending attendance requests to your events. You can disable or change your notification settings in your user account settings under « Notifications »."
msgstr ""
@ -1551,7 +1543,7 @@ msgid "On the agenda this week"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:11
#: lib/web/templates/email/participation/event_card.html.heex:58
msgid "Details"
msgstr ""
@ -1562,7 +1554,7 @@ msgid "From the %{start} to the %{end}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:70
#: lib/web/templates/email/participation/event_card.html.heex:20
msgid "Manage your participation"
msgstr ""
@ -1573,7 +1565,7 @@ msgid "On %{date} from %{start_time} to %{end_time}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.html.heex:19
#: lib/web/templates/email/participation/event_card.html.heex:66
msgid "Read more"
msgstr ""
@ -1604,7 +1596,7 @@ msgid "Date:"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/event_card.text.eex:5
#: lib/web/templates/email/participation/event_card.text.eex:7
msgid "Details:"
msgstr ""
@ -1614,7 +1606,7 @@ msgid "Manage your notification settings"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.text.eex:4
#: lib/web/templates/email/participation/event_card.text.eex:5
msgid "Manage your participation:"
msgstr ""
@ -1625,17 +1617,17 @@ msgid "Organizer: %{organizer}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:92
#: lib/web/templates/email/participation/event_card.html.heex:42
msgid "Participate"
msgstr "Participant"
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.text.eex:4
#: lib/web/templates/email/participation/event_card.text.eex:5
msgid "Participate:"
msgstr "Participant"
#, elixir-format
#: lib/web/templates/email/participation/event_card.text.eex:7
#: lib/web/templates/email/participation/event_card.text.eex:9
msgid "Read more : %{url}"
msgstr ""
@ -1701,12 +1693,20 @@ msgstr ""
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been rejected."
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/web/templates/email/group_membership_approval.text.eex:3
msgid "Your membership request for group %{group} has been approved."
msgstr ""
#, elixir-format, fuzzy
#, elixir-format
#: lib/web/templates/email/group_membership_approval.html.heex:38
msgid "Your membership request for group %{link_start}<b>%{group}</b>%{link_end} has been approved."
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/pending_participation_notification.html.heex:38
#: lib/web/templates/email/pending_participation_notification.text.eex:4
msgid "You have one pending attendance request to process for the following event:"
msgid_plural "You have %{number_participation_requests} attendance requests to process for the following event:"
msgstr[0] ""
msgstr[1] ""

View File

@ -807,7 +807,7 @@ msgid "You don't have the right to remove this member."
msgstr ""
#, elixir-format
#: lib/mobilizon/actors/actor.ex:350
#: lib/mobilizon/actors/actor.ex:351
msgid "This username is already taken."
msgstr ""

View File

@ -804,7 +804,7 @@ msgid "You don't have the right to remove this member."
msgstr ""
#, elixir-format
#: lib/mobilizon/actors/actor.ex:350
#: lib/mobilizon/actors/actor.ex:351
msgid "This username is already taken."
msgstr ""

View File

@ -18,324 +18,324 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.8.1\n"
#, elixir-format
#: lib/service/activity/renderer/member.ex:38
#: lib/web/templates/email/activity/_member_activity_item.html.heex:19 lib/web/templates/email/activity/_member_activity_item.text.eex:12
#, elixir-format
msgid "%{member} accepted the invitation to join the group."
msgstr "%{member} aceptó la invitación para unirse al grupo."
#, elixir-format
#: lib/service/activity/renderer/member.ex:42
#: lib/web/templates/email/activity/_member_activity_item.html.heex:26 lib/web/templates/email/activity/_member_activity_item.text.eex:17