Send notification emails to followers and members when a group publishes

a new event

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel
2021-11-10 16:36:32 +01:00
parent 800060a926
commit 5c7067b22b
65 changed files with 5491 additions and 2767 deletions

View File

@@ -28,7 +28,7 @@ msgid "Activate my account"
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:123
#: lib/web/templates/email/email.html.heex:120
#: lib/web/templates/email/email.text.eex:9
msgid "Ask the community on Framacolibri"
msgstr ""
@@ -45,7 +45,7 @@ msgid "Event"
msgstr ""
#, elixir-format
#: lib/web/email/user.ex:48
#: lib/web/email/user.ex:49
msgid "Instructions to reset your password on %{instance}"
msgstr ""
@@ -132,7 +132,7 @@ msgid "You requested a new password for your account on %{instance}."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:91
#: lib/web/templates/email/email.html.heex:88
msgid "Warning"
msgstr ""
@@ -310,17 +310,17 @@ msgid "What information do we collect?"
msgstr ""
#, elixir-format
#: lib/web/email/user.ex:175
#: lib/web/email/user.ex:178
msgid "Mobilizon on %{instance}: confirm your email address"
msgstr ""
#, elixir-format
#: lib/web/email/user.ex:155
#: lib/web/email/user.ex:157
msgid "Mobilizon on %{instance}: email changed"
msgstr ""
#, elixir-format
#: lib/web/email/notification.ex:49
#: lib/web/email/notification.ex:51
msgid "One event planned today"
msgid_plural "%{nb_events} events planned today"
msgstr[0] ""
@@ -348,7 +348,7 @@ msgid "Come along!"
msgstr ""
#, elixir-format
#: lib/web/email/notification.ex:24
#: lib/web/email/notification.ex:25
msgid "Don't forget to go to %{title}"
msgstr ""
@@ -375,12 +375,12 @@ msgid "View the event on: %{link}"
msgstr ""
#, elixir-format
#: lib/web/email/group.ex:31
#: lib/web/email/member.ex:31
msgid "You have been invited by %{inviter} to join group %{group}"
msgstr ""
#, elixir-format
#: lib/web/email/notification.ex:75
#: lib/web/email/notification.ex:78
msgid "One event planned this week"
msgid_plural "%{nb_events} events planned this week"
msgstr[0] ""
@@ -388,7 +388,7 @@ msgstr[1] ""
msgstr[2] ""
#, elixir-format
#: lib/web/email/notification.ex:98
#: lib/web/email/notification.ex:102
msgid "One participation request for event %{title} to process"
msgid_plural "%{number_participation_requests} participation requests for event %{title} to process"
msgstr[0] ""
@@ -726,7 +726,7 @@ msgid "Hi there! You just registered to join this event: « %{title} ». Please
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:120
#: lib/web/templates/email/email.html.heex:117
#: lib/web/templates/email/email.text.eex:8
msgid "Need help? Is something not working as expected?"
msgstr ""
@@ -783,7 +783,7 @@ msgid "%{instance} is powered by Mobilizon."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:148
#: lib/web/templates/email/email.html.heex:152
msgid "<b>%{instance}</b> is powered by Mobilizon."
msgstr ""
@@ -862,7 +862,7 @@ msgid "If you wish to cancel your attendance, visit the event page through the l
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:149
#: lib/web/templates/email/email.html.heex:153
#: lib/web/templates/email/email.text.eex:11
msgid "Learn more about Mobilizon here!"
msgstr ""
@@ -1020,7 +1020,7 @@ msgid "If you didn't trigger the change yourself, please ignore this message."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:95
#: lib/web/templates/email/email.html.heex:92
msgid "<b>Please do not use it for real purposes.</b>"
msgstr ""
@@ -1037,7 +1037,7 @@ msgid "So long, and thanks for the fish!"
msgstr ""
#, elixir-format
#: lib/web/email/group.ex:61
#: lib/web/email/member.ex:61
msgid "You have been removed from group %{group}"
msgstr ""
@@ -1080,7 +1080,7 @@ msgid "Your instance's moderation team has decided to suspend %{group_name} (%{g
msgstr ""
#, elixir-format
#: lib/web/email/group.ex:95
#: lib/web/email/group.ex:87
msgid "The group %{group} has been suspended on %{instance}"
msgstr ""
@@ -1328,14 +1328,14 @@ msgid "We're sorry, but something went wrong on our end."
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:94
#: lib/web/templates/email/email.html.heex:91
#: lib/web/templates/email/email.text.eex:4
msgid "This is a demonstration site to test Mobilizon."
msgstr ""
#, elixir-format
#: lib/service/metadata/actor.ex:67 lib/service/metadata/actor.ex:75
#: lib/service/metadata/instance.ex:54 lib/service/metadata/instance.ex:60
#: lib/service/metadata/actor.ex:91 lib/service/metadata/actor.ex:99
#: lib/service/metadata/instance.ex:56 lib/service/metadata/instance.ex:62
msgid "%{name}'s feed"
msgstr ""
@@ -1416,7 +1416,7 @@ msgstr ""
#. File name template for exported list of participants. Should NOT contain spaces. Make sure the output is going to be something standardized that is acceptable as a file name on most systems.
#, elixir-format
#: lib/service/export/participants/csv.ex:73
#: lib/service/export/participants/ods.ex:79 lib/service/export/participants/pdf.ex:93
#: lib/service/export/participants/ods.ex:77 lib/service/export/participants/pdf.ex:91
msgid "%{event}_participants"
msgstr ""
@@ -1498,6 +1498,7 @@ msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date.html.heex:6
#: lib/web/templates/email/date/event_tz_date_range.html.heex:7 lib/web/templates/email/date/event_tz_date_range.html.heex:12
#: lib/web/templates/email/date/event_tz_date_range.text.eex:1 lib/web/templates/email/date/event_tz_date_range.text.eex:1
msgid "🌐 %{timezone} %{offset}"
msgstr ""
@@ -1524,16 +1525,18 @@ msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:10
#: lib/web/templates/email/date/event_tz_date_range.text.eex:1
msgid "From the %{start} to the %{end}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:68
#: lib/web/templates/email/participation/card/_metadata.html.heex:70
msgid "Manage your participation"
msgstr ""
#, elixir-format
#: lib/web/templates/email/date/event_tz_date_range.html.heex:5
#: lib/web/templates/email/date/event_tz_date_range.text.eex:1
msgid "On %{date} from %{start_time} to %{end_time}"
msgstr ""
@@ -1544,5 +1547,72 @@ msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.html.heex:50
#: lib/web/templates/email/participation/card/_metadata.text.eex:2
msgid "Online event"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_group_follower_notification.html.heex:13
msgid "%{group} scheduled a new event"
msgstr ""
#, elixir-format
#: lib/web/templates/email/event_group_follower_notification.text.eex:1
msgid "%{group} scheduled a new event:"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.text.eex:2
msgid "Address:"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_metadata.text.eex:1
msgid "Date:"
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/participation/event_card.text.eex:5
msgid "Details:"
msgstr ""
#, elixir-format
#: lib/web/templates/email/email.html.heex:147
msgid "Manage your notification settings"
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/participation/card/_metadata.text.eex:4
msgid "Manage your participation:"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_title.text.eex:3
#: lib/web/templates/email/participation/card/_title.text.eex:3
msgid "Organizer: %{organizer}"
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/participation/card/_metadata.html.heex:92
msgid "Participate"
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/participation/card/_metadata.text.eex:4
msgid "Participate:"
msgstr ""
#, elixir-format, fuzzy
#: lib/web/templates/email/participation/event_card.text.eex:7
msgid "Read more : %{url}"
msgstr ""
#, elixir-format
#: lib/web/templates/email/participation/card/_title.text.eex:1
msgid "Title: %{title}"
msgstr ""
#, elixir-format
#: lib/web/email/group.ex:42
msgid "📅 Just scheduled by %{group}: %{event}"
msgstr ""

View File

@@ -109,13 +109,14 @@ msgid "Current profile is not an administrator of the selected group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/user.ex:592
#: lib/graphql/resolvers/user.ex:593
msgid "Error while saving user settings"
msgstr ""
#, elixir-format
#: lib/graphql/error.ex:99 lib/graphql/resolvers/group.ex:242
#: lib/graphql/resolvers/group.ex:274 lib/graphql/resolvers/group.ex:311 lib/graphql/resolvers/member.ex:79
#: lib/graphql/resolvers/group.ex:274 lib/graphql/resolvers/group.ex:311 lib/graphql/resolvers/group.ex:342
#: lib/graphql/resolvers/group.ex:391 lib/graphql/resolvers/member.ex:79
msgid "Group not found"
msgstr ""
@@ -153,6 +154,7 @@ msgstr ""
#: lib/graphql/resolvers/feed_token.ex:28
#: lib/graphql/resolvers/participant.ex:32 lib/graphql/resolvers/participant.ex:210 lib/graphql/resolvers/person.ex:236
#: lib/graphql/resolvers/person.ex:353 lib/graphql/resolvers/person.ex:380 lib/graphql/resolvers/person.ex:397
#: lib/graphql/resolvers/person.ex:425 lib/graphql/resolvers/person.ex:440
msgid "Profile is not owned by authenticated user"
msgstr ""
@@ -162,33 +164,33 @@ msgid "Registrations are not open"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/user.ex:407
#: lib/graphql/resolvers/user.ex:408
msgid "The current password is invalid"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/user.ex:450
#: lib/graphql/resolvers/user.ex:451
msgid "The new email doesn't seem to be valid"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/user.ex:453
#: lib/graphql/resolvers/user.ex:454
msgid "The new email must be different"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/user.ex:410
#: lib/graphql/resolvers/user.ex:411
msgid "The new password must be different"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/user.ex:457 lib/graphql/resolvers/user.ex:519
#: lib/graphql/resolvers/user.ex:522
#: lib/graphql/resolvers/user.ex:458 lib/graphql/resolvers/user.ex:520
#: lib/graphql/resolvers/user.ex:523
msgid "The password provided is invalid"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/user.ex:414
#: lib/graphql/resolvers/user.ex:415
msgid "The password you have chosen is too short. Please make sure your password contains at least 6 characters."
msgstr ""
@@ -208,12 +210,12 @@ msgid "Unable to validate user"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/user.ex:500
#: lib/graphql/resolvers/user.ex:501
msgid "User already disabled"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/user.ex:567
#: lib/graphql/resolvers/user.ex:568
msgid "User requested is not logged-in"
msgstr ""
@@ -238,12 +240,12 @@ msgid "You may not list groups unless moderator."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/user.ex:465
#: lib/graphql/resolvers/user.ex:466
msgid "You need to be logged-in to change your email"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/user.ex:422
#: lib/graphql/resolvers/user.ex:423
msgid "You need to be logged-in to change your password"
msgstr ""
@@ -253,7 +255,7 @@ msgid "You need to be logged-in to delete a group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/user.ex:527
#: lib/graphql/resolvers/user.ex:528
msgid "You need to be logged-in to delete your account"
msgstr ""
@@ -349,7 +351,7 @@ msgid "Comment is already deleted"
msgstr ""
#, elixir-format
#: lib/graphql/error.ex:101 lib/graphql/resolvers/discussion.ex:75
#: lib/graphql/error.ex:101 lib/graphql/resolvers/discussion.ex:69
msgid "Discussion not found"
msgstr ""
@@ -369,8 +371,8 @@ msgid "Event id not found"
msgstr ""
#, elixir-format
#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:355
#: lib/graphql/resolvers/event.ex:407
#: lib/graphql/error.ex:98 lib/graphql/resolvers/event.ex:360
#: lib/graphql/resolvers/event.ex:412
msgid "Event not found"
msgstr ""
@@ -387,7 +389,7 @@ msgid "Internal Error"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:225
#: lib/graphql/resolvers/discussion.ex:219
msgid "No discussion with ID %{id}"
msgstr ""
@@ -499,7 +501,7 @@ msgid "Token is not a valid UUID"
msgstr ""
#, elixir-format
#: lib/graphql/error.ex:96 lib/graphql/resolvers/person.ex:415
#: lib/graphql/error.ex:96 lib/graphql/resolvers/person.ex:458
msgid "User not found"
msgstr ""
@@ -565,7 +567,7 @@ msgid "You cannot delete this comment"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/event.ex:403
#: lib/graphql/resolvers/event.ex:408
msgid "You cannot delete this event"
msgstr ""
@@ -600,22 +602,22 @@ msgid "You need to be logged-in and a moderator to view a report"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/admin.ex:246
#: lib/graphql/resolvers/admin.ex:255
msgid "You need to be logged-in and an administrator to access admin settings"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/admin.ex:230
#: lib/graphql/resolvers/admin.ex:239
msgid "You need to be logged-in and an administrator to access dashboard statistics"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/admin.ex:272
#: lib/graphql/resolvers/admin.ex:281
msgid "You need to be logged-in and an administrator to save admin settings"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:90
#: lib/graphql/resolvers/discussion.ex:84
msgid "You need to be logged-in to access discussions"
msgstr ""
@@ -625,7 +627,7 @@ msgid "You need to be logged-in to access resources"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/event.ex:313
#: lib/graphql/resolvers/event.ex:318
msgid "You need to be logged-in to create events"
msgstr ""
@@ -645,7 +647,7 @@ msgid "You need to be logged-in to create resources"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/event.ex:412
#: lib/graphql/resolvers/event.ex:417
msgid "You need to be logged-in to delete an event"
msgstr ""
@@ -670,7 +672,7 @@ msgid "You need to be logged-in to leave an event"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/event.ex:369
#: lib/graphql/resolvers/event.ex:374
msgid "You need to be logged-in to update an event"
msgstr ""
@@ -775,12 +777,12 @@ msgid "Profile is not administrator for the group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/event.ex:358
#: lib/graphql/resolvers/event.ex:363
msgid "You can't edit this event."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/event.ex:361
#: lib/graphql/resolvers/event.ex:366
msgid "You can't attribute this event to this profile."
msgstr ""
@@ -800,17 +802,17 @@ msgid "You don't have the right to remove this member."
msgstr ""
#, elixir-format
#: lib/mobilizon/actors/actor.ex:349
#: lib/mobilizon/actors/actor.ex:350
msgid "This username is already taken."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:87
#: lib/graphql/resolvers/discussion.ex:81
msgid "You must provide either an ID or a slug to access a discussion"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/event.ex:308
#: lib/graphql/resolvers/event.ex:313
msgid "Organizer profile is not owned by the user"
msgstr ""
@@ -836,7 +838,7 @@ msgid "Error while creating resource"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/user.ex:483
#: lib/graphql/resolvers/user.ex:484
msgid "Invalid activation token"
msgstr ""
@@ -846,18 +848,18 @@ msgid "Unable to fetch resource details from this URL."
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/event.ex:173 lib/graphql/resolvers/participant.ex:253
#: lib/graphql/resolvers/event.ex:164 lib/graphql/resolvers/participant.ex:253
#: lib/graphql/resolvers/participant.ex:328
msgid "Provided profile doesn't have moderator permissions on this event"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/event.ex:294
#: lib/graphql/resolvers/event.ex:299
msgid "Organizer profile doesn't have permission to create an event on behalf of this group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/event.ex:349
#: lib/graphql/resolvers/event.ex:354
msgid "This profile doesn't have permission to update an event on behalf of this group"
msgstr ""
@@ -872,12 +874,12 @@ msgid "Comment not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/discussion.ex:129
#: lib/graphql/resolvers/discussion.ex:123
msgid "Error while creating a discussion"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/user.ex:606
#: lib/graphql/resolvers/user.ex:607
msgid "Error while updating locale"
msgstr ""
@@ -897,12 +899,12 @@ msgid "Failed to update the group"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/user.ex:447
#: lib/graphql/resolvers/user.ex:448
msgid "Failed to update user email"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/user.ex:479
#: lib/graphql/resolvers/user.ex:480
msgid "Failed to validate user email"
msgstr ""
@@ -922,7 +924,7 @@ msgid "You are not the comment creator"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/user.ex:404
#: lib/graphql/resolvers/user.ex:405
msgid "You cannot change your password."
msgstr ""
@@ -952,16 +954,56 @@ msgid "Only admins can create groups"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/event.ex:301
#: lib/graphql/resolvers/event.ex:306
msgid "Only groups can create events"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/event.ex:287
#: lib/graphql/resolvers/event.ex:292
msgid "Unknown error while creating event"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/user.ex:460
#: lib/graphql/resolvers/user.ex:461
msgid "User cannot change email"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:364
msgid "Follow does not match your account"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:368
msgid "Follow not found"
msgstr ""
#, elixir-format, fuzzy
#: lib/graphql/resolvers/user.ex:327
msgid "Profile with username %{username} not found"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/user.ex:322
msgid "This profile does not belong to you"
msgstr ""
#, elixir-format
#: lib/graphql/resolvers/group.ex:338
msgid "You are already following this group"
msgstr ""
#, elixir-format, fuzzy
#: lib/graphql/resolvers/group.ex:347
msgid "You need to be logged-in to follow a group"
msgstr ""
#, elixir-format, fuzzy
#: lib/graphql/resolvers/group.ex:396
msgid "You need to be logged-in to unfollow a group"
msgstr ""
#, elixir-format, fuzzy
#: lib/graphql/resolvers/group.ex:373
msgid "You need to be logged-in to update a group follow"
msgstr ""