diff --git a/app/frontend/templates/events/show.html b/app/frontend/templates/events/show.html index bc6138d30..9145c51e0 100644 --- a/app/frontend/templates/events/show.html +++ b/app/frontend/templates/events/show.html @@ -91,7 +91,7 @@
{{ 'app.public.events_show.all_day' }}
{{ 'app.public.events_show.from_time' | translate }} {{event.start_time}} {{ 'app.public.events_show.to_time' | translate }} {{event.end_time}}
{{ 'app.public.events_show.pre_registration_end_date' | translate }}
-
{{ 'app.public.events_show.ending' | translate }} {{event.pre_registration_end_date | amDateFormat:'L'}}
+
{{event.pre_registration_end_date | amDateFormat:'L'}}
@@ -222,7 +222,7 @@ {{ 'app.public.events_show.you_can_find_your_reservation_s_details_on_your_' | translate }} {{ 'app.public.events_show.dashboard' }}
{{ 'app.public.events_show.thank_you_your_pre_registration_has_been_successfully_saved' | translate }}
- {{ 'app.public.events_show.you_can_find_your_reservation_s_details_on_your_' | translate }} {{ 'app.public.events_show.dashboard' }} + {{ 'app.public.events_show.informed_by_email_your_pre_registration' | translate }}
diff --git a/app/models/reservation.rb b/app/models/reservation.rb index 9b9d0ff4f..37a00563d 100644 --- a/app/models/reservation.rb +++ b/app/models/reservation.rb @@ -131,15 +131,27 @@ class Reservation < ApplicationRecord end def notify_member_create_reservation - NotificationCenter.call type: 'notify_member_create_reservation', - receiver: user, - attached_object: self + if reservable_type == 'Event' && reservable.pre_registration? + NotificationCenter.call type: 'notify_member_pre_booked_reservation', + receiver: user, + attached_object: self + else + NotificationCenter.call type: 'notify_member_create_reservation', + receiver: user, + attached_object: self + end end def notify_admin_member_create_reservation - NotificationCenter.call type: 'notify_admin_member_create_reservation', - receiver: User.admins_and_managers, - attached_object: self + if reservable_type == 'Event' && reservable.pre_registration? + NotificationCenter.call type: 'notify_admin_member_pre_booked_reservation', + receiver: User.admins_and_managers, + attached_object: self + else + NotificationCenter.call type: 'notify_admin_member_create_reservation', + receiver: User.admins_and_managers, + attached_object: self + end end def notify_member_limitation_reached diff --git a/app/views/api/notifications/_notify_admin_member_pre_booked_reservation.json.jbuilder b/app/views/api/notifications/_notify_admin_member_pre_booked_reservation.json.jbuilder new file mode 100644 index 000000000..5488d620f --- /dev/null +++ b/app/views/api/notifications/_notify_admin_member_pre_booked_reservation.json.jbuilder @@ -0,0 +1,5 @@ +json.title notification.notification_type +json.description t('.a_RESERVABLE_reservation_was_made_by_USER_html', + RESERVABLE: notification.attached_object.reservable.name, + USER: notification.attached_object.user&.profile&.full_name || t('api.notifications.deleted_user')) + diff --git a/app/views/api/notifications/_notify_member_pre_booked_reservation.json.jbuilder b/app/views/api/notifications/_notify_member_pre_booked_reservation.json.jbuilder new file mode 100644 index 000000000..7e212d607 --- /dev/null +++ b/app/views/api/notifications/_notify_member_pre_booked_reservation.json.jbuilder @@ -0,0 +1,3 @@ +json.title notification.notification_type +json.description t('.your_reservation_RESERVABLE_was_successfully_saved_html', + RESERVABLE: notification.attached_object.reservable.name) diff --git a/app/views/notifications_mailer/notify_admin_member_pre_booked_reservation.html.erb b/app/views/notifications_mailer/notify_admin_member_pre_booked_reservation.html.erb new file mode 100644 index 000000000..46dc4812c --- /dev/null +++ b/app/views/notifications_mailer/notify_admin_member_pre_booked_reservation.html.erb @@ -0,0 +1,19 @@ +<%= render 'notifications_mailer/shared/hello', recipient: @recipient %> + +

+ <%= t('.body.member_reserved_html', + NAME: @attached_object.user&.profile&.full_name || t('api.notifications.deleted_user'), + RESERVABLE: @attached_object.reservable.name) %> +

+

<%= t('.body.reserved_slots') %>

+ diff --git a/app/views/notifications_mailer/notify_member_pre_booked_reservation.html.erb b/app/views/notifications_mailer/notify_member_pre_booked_reservation.html.erb new file mode 100644 index 000000000..ff507953e --- /dev/null +++ b/app/views/notifications_mailer/notify_member_pre_booked_reservation.html.erb @@ -0,0 +1,16 @@ +<%= render 'notifications_mailer/shared/hello', recipient: @recipient %> + +

<%= t('.body.reservation_saved_html', RESERVATION: @attached_object.reservable.name) %>

+ +

<%= t('.body.your_reserved_slots') %>

+ diff --git a/config/locales/app.public.en.yml b/config/locales/app.public.en.yml index 5213b4a30..a7ea3ec94 100644 --- a/config/locales/app.public.en.yml +++ b/config/locales/app.public.en.yml @@ -332,9 +332,10 @@ en: thank_you_your_payment_has_been_successfully_registered: "Thank you. Your payment has been successfully registered!" thank_you_your_pre_registration_has_been_successfully_saved: "Thank you. Your pre-registration has been successfully saved!" you_can_find_your_reservation_s_details_on_your_: "You can find your reservation's details on your" + informed_by_email_your_pre_registration: "You will be kept informed by email of the progress made regarding your pre-registration." dashboard: "dashboard" you_booked_DATE: "You booked ({DATE}):" - you_pre_booked_DATE: "You pre-booked ({DATE}):" + you_pre_booked_DATE: "Your pre-registration ({DATE}):" canceled_reservation_SEATS: "Reservation canceled ({SEATS} seats)" book: "Book" confirm_and_pay: "Confirm and pay" @@ -364,7 +365,7 @@ en: share_on_twitter: "Share on Twitter" last_name_and_first_name: "Last name and first name" pre_book: "Pre-book" - pre_registration_end_date: "Pre-registration end date" + pre_registration_end_date: "Deadline for pre-registration" pre_registration: "Pre-registration" #public calendar calendar: diff --git a/config/locales/app.public.fr.yml b/config/locales/app.public.fr.yml index fa31475d7..303b3ca8b 100644 --- a/config/locales/app.public.fr.yml +++ b/config/locales/app.public.fr.yml @@ -330,11 +330,12 @@ fr: ticket: "{NUMBER, plural, =0{place} one{place} other{places}}" make_a_gift_of_this_reservation: "Offrir cette réservation" thank_you_your_payment_has_been_successfully_registered: "Merci. Votre paiement a bien été pris en compte !" - thank_you_your_pre_registration_has_been_successfully_saved: "Merci. Votre pré-inscription a bien été pris en compte !" + thank_you_your_pre_registration_has_been_successfully_saved: "Merci. Votre demande a bien été pris en compte !" you_can_find_your_reservation_s_details_on_your_: "Vous pouvez retrouver le détail de votre réservation sur votre" + informed_by_email_your_pre_registration: "vous serez tenu informé par email de la suite donnée à votre pré-inscription" dashboard: "tableau de bord" you_booked_DATE: "Vous avez réservé ({DATE}) :" - you_pre_booked_DATE: "Vous avez pré-réservé ({DATE}) :" + you_pre_booked_DATE: "Votre pré-inscription ({DATE}) :" canceled_reservation_SEATS: "Réservation annulée ({SEATS} places)" book: "Réserver" confirm_and_pay: "Valider et payer" @@ -363,8 +364,8 @@ fr: share_on_facebook: "Partager sur Facebook" share_on_twitter: "Partager sur Twitter" last_name_and_first_name: "Nom et prénom" - pre_book: "Pré-réserver" - pre_registration_end_date: "Date de fin de pré-réservation" + pre_book: "Pré-inscrire" + pre_registration_end_date: "Date limite de pré-inscription" pre_registration: "Pré-réservation" #public calendar calendar: diff --git a/config/locales/en.yml b/config/locales/en.yml index 6d389fcda..428cb324f 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -286,6 +286,8 @@ en: an_abuse_was_reported_on_TYPE_ID_NAME_html: "An abuse was reported on %{TYPE} %{ID}: %{NAME}." notify_admin_member_create_reservation: a_RESERVABLE_reservation_was_made_by_USER_html: "A %{RESERVABLE} reservation was made by %{USER}." + notify_admin_member_pre_booked_reservation: + a_RESERVABLE_reservation_was_made_by_USER_html: "A %{RESERVABLE} pre-registration was made by %{USER}." notify_admin_profile_complete: account_imported_from_PROVIDER_UID_has_completed_its_information_html: "Account imported from %{PROVIDER} (%{UID}) has completed its information." notify_admin_slot_is_canceled: @@ -320,6 +322,8 @@ en: a_new_user_account_has_been_imported_from_PROVIDER_UID_html: "A new user account has been imported from: %{PROVIDER} (%{UID})." notify_member_create_reservation: your_reservation_RESERVABLE_was_successfully_saved_html: "Your reservation %{RESERVABLE} was successfully saved." + notify_member_pre_booked_reservation: + your_reservation_RESERVABLE_was_successfully_saved_html: "Your pre-registration %{RESERVABLE} was successfully saved." notify_member_reservation_reminder: reminder_you_have_a_reservation_RESERVABLE_to_be_held_on_DATE_html: "Reminder: You have a reservation %{RESERVABLE} to be held on %{DATE}" notify_member_slot_is_canceled: diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 2ed92fc91..f1446c56d 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -286,6 +286,8 @@ fr: an_abuse_was_reported_on_TYPE_ID_NAME_html: "Un abus a été signalé sur %{TYPE} %{ID} : %{NAME}." notify_admin_member_create_reservation: a_RESERVABLE_reservation_was_made_by_USER_html: "Une réservation %{RESERVABLE} a été effectuée par %{USER}." + notify_admin_member_pre_booked_reservation: + a_RESERVABLE_reservation_was_made_by_USER_html: "Une pre-inscription %{RESERVABLE} a été effectuée par %{USER}." notify_admin_profile_complete: account_imported_from_PROVIDER_UID_has_completed_its_information_html: "Le compte importé depuis %{PROVIDER} (%{UID}) a complété ses informations." notify_admin_slot_is_canceled: @@ -320,6 +322,8 @@ fr: a_new_user_account_has_been_imported_from_PROVIDER_UID_html: "Un nouveau compte utilisateur vient d'être importé depuis : %{PROVIDER} (%{UID})." notify_member_create_reservation: your_reservation_RESERVABLE_was_successfully_saved_html: "Votre réservation %{RESERVABLE} a bien été enregistrée." + notify_member_pre_booked_reservation: + your_reservation_RESERVABLE_was_successfully_saved_html: "Votre pré-inscription %{RESERVABLE} a bien été pris en compte." notify_member_reservation_reminder: reminder_you_have_a_reservation_RESERVABLE_to_be_held_on_DATE_html: "Rappel : Vous avez une réservation %{RESERVABLE} qui aura lieu le %{DATE}" notify_member_slot_is_canceled: diff --git a/config/locales/mails.en.yml b/config/locales/mails.en.yml index 63a6c2969..3cefad918 100644 --- a/config/locales/mails.en.yml +++ b/config/locales/mails.en.yml @@ -78,6 +78,11 @@ en: body: reservation_saved_html: "You reservation %{RESERVATION} has been successfully saved" your_reserved_slots: "Your reserved slots are:" + notify_member_pre_booked_reservation: + subject: "Your pre-registration has been successfully saved" + body: + reservation_saved_html: "You pre-registration %{RESERVATION} has been successfully saved" + your_reserved_slots: "Your pre-booked slots are:" notify_member_subscribed_plan_is_changed: subject: "Your subscription has been updated" body: @@ -87,6 +92,11 @@ en: body: member_reserved_html: "User %{NAME} has reserved %{RESERVABLE}." reserved_slots: "Reserved slots are:" + notify_admin_member_pre_booked_reservation: + subject: "New pre-registration" + body: + member_reserved_html: "User %{NAME} has pre-reserved %{RESERVABLE}." + reserved_slots: "Pre-reserved slots are:" notify_member_slot_is_modified: subject: "Your reservation slot has been successfully changed" body: diff --git a/config/locales/mails.fr.yml b/config/locales/mails.fr.yml index 1c7470606..b874511c3 100644 --- a/config/locales/mails.fr.yml +++ b/config/locales/mails.fr.yml @@ -78,6 +78,11 @@ fr: body: reservation_saved_html: "Votre réservation %{RESERVATION} a bien été enregistrée." your_reserved_slots: "Les créneaux que vous avez réservés sont :" + notify_member_pre_booked_reservation: + subject: "Votre pré-inscription a bien été pris en compte" + body: + reservation_saved_html: "Votre réservation %{RESERVATION} a bien été pris en compte." + your_reserved_slots: "Les créneaux que vous avez pré-inscrit sont :" notify_member_subscribed_plan_is_changed: subject: "Votre abonnement a été mis à jour" body: @@ -87,6 +92,11 @@ fr: body: member_reserved_html: "Le membre %{NAME} a réservé %{RESERVABLE}." reserved_slots: "Les créneaux réservés sont :" + notify_admin_member_pre_booked_reservation: + subject: "Nouvelle pre-inscription" + body: + member_reserved_html: "Le membre %{NAME} a pre-inscrit %{RESERVABLE}." + reserved_slots: "Les créneaux pre-inscrit sont :" notify_member_slot_is_modified: subject: "Votre créneau de réservation a bien été modifié" body: diff --git a/db/seeds/notification_types.rb b/db/seeds/notification_types.rb index 01e3ac99d..9cce6a6a5 100644 --- a/db/seeds/notification_types.rb +++ b/db/seeds/notification_types.rb @@ -90,7 +90,9 @@ NOTIFICATIONS_TYPES = [ { name: 'notify_admin_user_child_supporting_document_files_created', category: 'supporting_documents', is_configurable: true }, { name: 'notify_member_reservation_validated', category: 'agenda', is_configurable: false }, - { name: 'notify_admin_reservation_validated', category: 'agenda', is_configurable: true } + { name: 'notify_admin_reservation_validated', category: 'agenda', is_configurable: true }, + { name: 'notify_member_pre_booked_reservation', category: 'agenda', is_configurable: false }, + { name: 'notify_admin_member_pre_booked_reservation', category: 'agenda', is_configurable: true } ].freeze NOTIFICATIONS_TYPES.each do |notification_type|