Embed json-ld metadata on events in emails
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
@@ -18,6 +18,7 @@ defmodule Mobilizon.Web.Email do
|
||||
|> put_header("Reply-To", Config.instance_email_reply_to())
|
||||
|> maybe_put_date_header()
|
||||
|> maybe_put_message_id()
|
||||
|> assign(:jsonLDMetadata, nil)
|
||||
|> assign(:instance_name, Config.instance_name())
|
||||
|> put_html_layout({EmailView, "email.html"})
|
||||
|> put_text_layout({EmailView, "email.text"})
|
||||
|
||||
@@ -47,6 +47,11 @@ defmodule Mobilizon.Web.Email.Event do
|
||||
title: old_event.title
|
||||
)
|
||||
|
||||
json_ld =
|
||||
"participation.json"
|
||||
|> ObjectView.render(%{participant: %Participant{participant | event: event, actor: actor}})
|
||||
|> Jason.encode!()
|
||||
|
||||
Email.base_email(to: {Actor.display_name(actor), email}, subject: subject)
|
||||
|> assign(:locale, locale)
|
||||
|> assign(:event, event)
|
||||
@@ -54,6 +59,7 @@ defmodule Mobilizon.Web.Email.Event do
|
||||
|> assign(:changes, changes)
|
||||
|> assign(:subject, subject)
|
||||
|> assign(:timezone, timezone)
|
||||
|> assign(:jsonLDMetadata, json_ld)
|
||||
|> Email.add_event_attachment(event)
|
||||
|> render(:event_updated)
|
||||
end
|
||||
|
||||
@@ -8,11 +8,11 @@ defmodule Mobilizon.Web.Email.Participation do
|
||||
import Mobilizon.Web.Gettext
|
||||
|
||||
alias Mobilizon.Actors.Actor
|
||||
alias Mobilizon.Config
|
||||
alias Mobilizon.{Config, Events, Users}
|
||||
alias Mobilizon.Events.{Event, Participant}
|
||||
alias Mobilizon.Users
|
||||
alias Mobilizon.Users.User
|
||||
alias Mobilizon.Web.Email
|
||||
alias Mobilizon.Web.JsonLD.ObjectView
|
||||
|
||||
@doc """
|
||||
Send participation emails to local user
|
||||
@@ -117,6 +117,7 @@ defmodule Mobilizon.Web.Email.Participation do
|
||||
|> assign(:locale, locale)
|
||||
|> assign(:event, event)
|
||||
|> assign(:subject, subject)
|
||||
|> assign(:jsonLDMetadata, json_ld(participant))
|
||||
|> Email.add_event_attachment(event)
|
||||
|> render(:event_participation_approved)
|
||||
end
|
||||
@@ -139,7 +140,16 @@ defmodule Mobilizon.Web.Email.Participation do
|
||||
Email.base_email(to: email, subject: subject)
|
||||
|> assign(:locale, locale)
|
||||
|> assign(:participant, participant)
|
||||
|> assign(:jsonLDMetadata, json_ld(participant))
|
||||
|> assign(:subject, subject)
|
||||
|> render(:anonymous_participation_confirmation)
|
||||
end
|
||||
|
||||
defp json_ld(participant) do
|
||||
event = Events.get_event_with_preload!(participant.event_id)
|
||||
|
||||
"participation.json"
|
||||
|> ObjectView.render(%{participant: %Participant{participant | event: event}})
|
||||
|> Jason.encode!()
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user