1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2025-01-22 11:52:21 +01:00

(feat) new child notification

This commit is contained in:
Du Peng 2023-05-26 15:55:38 +02:00
parent 42946effe0
commit d95ef8beb7
12 changed files with 53 additions and 3 deletions

View File

@ -20,7 +20,7 @@ class API::ChildrenController < API::APIController
def create
@child = Child.new(child_params)
authorize @child
if @child.save
if ChildService.create(@child)
render status: :created
else
render json: @child.errors.full_messages, status: :unprocessable_entity

View File

@ -0,0 +1,18 @@
# frozen_string_literal: true
# ChildService
class ChildService
def self.create(child)
if child.save
NotificationCenter.call type: 'notify_admin_child_created',
receiver: User.admins_and_managers,
attached_object: child
return true
end
false
end
def self.update(child, child_params)
child.update(child_params)
end
end

View File

@ -6,7 +6,7 @@ json.supporting_document_files_attributes child.supporting_document_files do |f|
json.supportable_id f.supportable_id
json.supportable_type f.supportable_type
json.supporting_document_type_id f.supporting_document_type_id
json.attachment f.attachment.file.filename
json.attachment f.attachment.file&.filename
json.attachment_name f.attachment_identifier
json.attachment_url "/api/supporting_document_files/#{f.id}/download"
json.attachment_url f.attachment_identifier ? "/api/supporting_document_files/#{f.id}/download" : nil
end

View File

@ -0,0 +1,4 @@
json.title notification.notification_type
json.description t('.a_new_child_has_been_created_NAME_html',
NAME: notification.attached_object&.full_name || t('api.notifications.deleted_user'))

View File

@ -0,0 +1,6 @@
<%= render 'notifications_mailer/shared/hello', recipient: @recipient %>
<p>
<%= t('.body.new_child_created') %>
"<%= @attached_object&.full_name || t('api.notifications.deleted_user') %> &lt;<%= @attached_object.email%>&gt;"
</p>

View File

@ -284,6 +284,7 @@ en:
app_management: "Concerning app management notifications"
notification_form:
notify_admin_when_user_is_created: "A user account has been created"
notify_admin_child_created: "A child has been created"
notify_admin_when_user_is_imported: "A user account has been imported"
notify_admin_profile_complete: "An imported account has completed its profile"
notify_admin_user_merged: "An imported account has been merged with an existing account"

View File

@ -284,6 +284,7 @@ fr:
app_management: "Au sujet de la gestion de l'application"
notification_form:
notify_admin_when_user_is_created: "Un compte utilisateur a été créé"
notify_admin_child_created: "Un compte enfant a été créé"
notify_admin_when_user_is_imported: "Un compte utilisateur a été importé"
notify_admin_profile_complete: "Un compte importé a complété ses informations"
notify_admin_user_merged: "Un compte importé a été fusionné avec un compte existant"

View File

@ -314,6 +314,8 @@ en:
project_NAME_has_been_published_html: "Project <a href='/#!/projects/%{ID}'><strong><em>%{NAME}<em></strong></a> has been published."
notify_admin_when_user_is_created:
a_new_user_account_has_been_created_NAME_EMAIL_html: "A new user account has been created: <strong><em>%{NAME} &lt;%{EMAIL}&gt;</strong></em>."
notify_admin_child_created:
a_new_child_has_been_created_NAME_html: "A new child has been created: <strong><em>%{NAME}</em></strong>."
notify_admin_when_user_is_imported:
a_new_user_account_has_been_imported_from_PROVIDER_UID_html: "A new user account has been imported from: <strong><em>%{PROVIDER}</strong> (%{UID})</em>."
notify_member_create_reservation:

View File

@ -314,6 +314,8 @@ fr:
project_NAME_has_been_published_html: "Le projet <a href='/#!/projects/%{ID}'><strong><em>%{NAME}<em></strong></a> vient d'être publié."
notify_admin_when_user_is_created:
a_new_user_account_has_been_created_NAME_EMAIL_html: "Un nouveau compte utilisateur vient d'être créé : <strong><em>%{NAME} &lt;%{EMAIL}&gt;</strong></em>."
notify_admin_child_created:
a_new_child_has_been_created_NAME_html: "Un nouveau enfant vient d'être créé : <strong><em>%{NAME}</em></strong>."
notify_admin_when_user_is_imported:
a_new_user_account_has_been_imported_from_PROVIDER_UID_html: "Un nouveau compte utilisateur vient d'être importé depuis : <strong><em>%{PROVIDER}</strong> (%{UID})</em>."
notify_member_create_reservation:

View File

@ -104,6 +104,10 @@ en:
new_account_created: "A new user account has been created on the website:"
user_of_group_html: "The user has registered in the group <strong>%{GROUP}</strong>"
account_for_organization: "This account manage an organization:"
notify_admin_child_created:
subject: "A user's child has been created"
body:
new_child_created: "A new user's child has been created on the website"
notify_admin_subscribed_plan:
subject: "A subscription has been purchased"
body:

View File

@ -104,6 +104,10 @@ fr:
new_account_created: "Un nouveau compte utilisateur vient d'être créé sur la plateforme :"
user_of_group_html: "L'utilisateur s'est inscrit dans le groupe <strong>%{GROUP}</strong>"
account_for_organization: "Ce compte gère une structure :"
notify_admin_child_created:
subject: "Un enfant a été créé"
body:
new_child_created: "Un nouveau enfant vient d'être créé sur la plateforme"
notify_admin_subscribed_plan:
subject: "Un abonnement a été souscrit"
body:

View File

@ -47,3 +47,11 @@ unless NotificationType.find_by(name: 'notify_user_child_supporting_document_ref
is_configurable: false
)
end
unless NotificationType.find_by(name: 'notify_admin_child_created')
NotificationType.create!(
name: 'notify_admin_child_created',
category: 'users_accounts',
is_configurable: true
)
end