mirror of
https://github.com/LaCasemate/fab-manager.git
synced 2025-02-09 03:54:23 +01:00
Merge branch 'pre_inscription' into staging
This commit is contained in:
commit
b82d91f537
@ -100,6 +100,9 @@ export const EventForm: React.FC<EventFormProps> = ({ action, event, onError, on
|
|||||||
* Callback triggered when the user validates the machine form: handle create or update
|
* Callback triggered when the user validates the machine form: handle create or update
|
||||||
*/
|
*/
|
||||||
const onSubmit: SubmitHandler<Event> = (data: Event) => {
|
const onSubmit: SubmitHandler<Event> = (data: Event) => {
|
||||||
|
if (data.pre_registration_end_date.toString() === 'Invalid Date') {
|
||||||
|
data.pre_registration_end_date = null;
|
||||||
|
}
|
||||||
if (action === 'update') {
|
if (action === 'update') {
|
||||||
if (event?.recurrence_events?.length > 0) {
|
if (event?.recurrence_events?.length > 0) {
|
||||||
setUpdatingEvent(data);
|
setUpdatingEvent(data);
|
||||||
|
@ -116,6 +116,7 @@ export const ChildForm: React.FC<ChildFormProps> = ({ child, onSubmit, supportin
|
|||||||
defaultFile={sf as FileType}
|
defaultFile={sf as FileType}
|
||||||
id={`supporting_document_files_attributes.${index}`}
|
id={`supporting_document_files_attributes.${index}`}
|
||||||
accept="application/pdf"
|
accept="application/pdf"
|
||||||
|
rules={{ required: true }}
|
||||||
setValue={setValue}
|
setValue={setValue}
|
||||||
label={getSupportingDocumentsTypeName(sf.supporting_document_type_id)}
|
label={getSupportingDocumentsTypeName(sf.supporting_document_type_id)}
|
||||||
showRemoveButton={false}
|
showRemoveButton={false}
|
||||||
|
@ -28,14 +28,15 @@ export const ChildModal: React.FC<ChildModalProps> = ({ child, isOpen, toggleMod
|
|||||||
* Save the child to the API
|
* Save the child to the API
|
||||||
*/
|
*/
|
||||||
const handleSaveChild = async (data: Child): Promise<void> => {
|
const handleSaveChild = async (data: Child): Promise<void> => {
|
||||||
|
let c: Child = data;
|
||||||
try {
|
try {
|
||||||
if (child?.id) {
|
if (child?.id) {
|
||||||
await ChildAPI.update(data);
|
c = await ChildAPI.update(data);
|
||||||
} else {
|
} else {
|
||||||
await ChildAPI.create(data);
|
c = await ChildAPI.create(data);
|
||||||
}
|
}
|
||||||
toggleModal();
|
toggleModal();
|
||||||
onSuccess(data, '');
|
onSuccess(c, '');
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
onError(error);
|
onError(error);
|
||||||
}
|
}
|
||||||
@ -56,7 +57,7 @@ export const ChildModal: React.FC<ChildModalProps> = ({ child, isOpen, toggleMod
|
|||||||
onSubmit={handleSaveChild}
|
onSubmit={handleSaveChild}
|
||||||
supportingDocumentsTypes={supportingDocumentsTypes}
|
supportingDocumentsTypes={supportingDocumentsTypes}
|
||||||
operator={operator}
|
operator={operator}
|
||||||
onSuccess={onSuccess}
|
onSuccess={(msg) => onSuccess(child, msg)}
|
||||||
onError={onError}
|
onError={onError}
|
||||||
/>
|
/>
|
||||||
</FabModal>
|
</FabModal>
|
||||||
|
@ -9,7 +9,7 @@ import { TDateISO } from '../../typings/date-iso';
|
|||||||
|
|
||||||
interface ChildValidationProps {
|
interface ChildValidationProps {
|
||||||
child: Child
|
child: Child
|
||||||
onSuccess: (message: string) => void,
|
onSuccess: (child: Child, msg: string) => void;
|
||||||
onError: (message: string) => void,
|
onError: (message: string) => void,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -37,8 +37,8 @@ export const ChildValidation: React.FC<ChildValidationProps> = ({ child, onSucce
|
|||||||
_child.validated_at = null;
|
_child.validated_at = null;
|
||||||
}
|
}
|
||||||
ChildAPI.validate(_child)
|
ChildAPI.validate(_child)
|
||||||
.then(() => {
|
.then((c) => {
|
||||||
onSuccess(t(`app.admin.child_validation.${_value ? 'validate' : 'invalidate'}_child_success`));
|
onSuccess(c, t(`app.admin.child_validation.${_value ? 'validate' : 'invalidate'}_child_success`));
|
||||||
}).catch(err => {
|
}).catch(err => {
|
||||||
setValue(!_value);
|
setValue(!_value);
|
||||||
onError(t(`app.admin.child_validation.${_value ? 'validate' : 'invalidate'}_child_error`) + err);
|
onError(t(`app.admin.child_validation.${_value ? 'validate' : 'invalidate'}_child_error`) + err);
|
||||||
|
@ -30,8 +30,15 @@ export const MembersListItem: React.FC<MembersListItemProps> = ({ member, onErro
|
|||||||
window.location.href = `/#!/admin/members/${memberId}/edit`;
|
window.location.href = `/#!/admin/members/${memberId}/edit`;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* member and all his children are validated
|
||||||
|
*/
|
||||||
|
const memberIsValidated = (): boolean => {
|
||||||
|
return member.validated_at && member.children.every((child) => child.validated_at);
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div key={member.id} className={`members-list-item ${member.validated_at ? 'is-validated' : ''} ${member.need_completion ? 'is-incomplet' : ''}`}>
|
<div key={member.id} className={`members-list-item ${memberIsValidated() ? 'is-validated' : ''} ${member.need_completion ? 'is-incomplet' : ''}`}>
|
||||||
<div className="left-col">
|
<div className="left-col">
|
||||||
<div className='status'>
|
<div className='status'>
|
||||||
{(member.children.length > 0)
|
{(member.children.length > 0)
|
||||||
|
@ -609,10 +609,11 @@ Application.Controllers.controller('ShowEventReservationsController', ['$scope',
|
|||||||
if (r.id === reservation.id) {
|
if (r.id === reservation.id) {
|
||||||
return reservation;
|
return reservation;
|
||||||
}
|
}
|
||||||
|
growl.success(_t('app.admin.event_reservations.reservation_was_successfully_paid'));
|
||||||
return r;
|
return r;
|
||||||
});
|
});
|
||||||
}, function () {
|
}, function () {
|
||||||
$log.info('Pay reservation modal dismissed at: ' + new Date());
|
console.log('Pay reservation modal dismissed at: ' + new Date());
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
}]);
|
}]);
|
||||||
|
@ -322,7 +322,6 @@ Application.Controllers.controller('AdminMembersController', ['$scope', '$sce',
|
|||||||
}
|
}
|
||||||
return c;
|
return c;
|
||||||
});
|
});
|
||||||
console.log(member.children);
|
|
||||||
return member;
|
return member;
|
||||||
}
|
}
|
||||||
return member;
|
return member;
|
||||||
|
@ -303,7 +303,8 @@ Application.Controllers.controller('ShowEventController', ['$scope', '$state', '
|
|||||||
$scope.now.isBefore($scope.eventEndDateTime) &&
|
$scope.now.isBefore($scope.eventEndDateTime) &&
|
||||||
helpers.isUserValidatedByType($scope.ctrl.member, $scope.settings, 'event');
|
helpers.isUserValidatedByType($scope.ctrl.member, $scope.settings, 'event');
|
||||||
if ($scope.event.pre_registration) {
|
if ($scope.event.pre_registration) {
|
||||||
return bookable && $scope.event.pre_registration_end_date && $scope.now.isSameOrBefore($scope.event.pre_registration_end_date, 'day');
|
const endDate = $scope.event.pre_registration_end_date || $scope.event.end_date
|
||||||
|
return bookable && $scope.now.isSameOrBefore(endDate, 'day');
|
||||||
} else {
|
} else {
|
||||||
return bookable;
|
return bookable;
|
||||||
}
|
}
|
||||||
|
@ -50,10 +50,10 @@
|
|||||||
</td>
|
</td>
|
||||||
|
|
||||||
<td>
|
<td>
|
||||||
<span ng-if="event.event_type === 'standard'" class="v-middle badge text-base bg-stage" translate="">{{ 'app.admin.events.event_type.standard' }}</span>
|
<span ng-if="event.event_type === 'standard'" class="v-middle badge text-sm bg-stage" translate="">{{ 'app.admin.events.event_type.standard' }}</span>
|
||||||
<span ng-if="event.event_type === 'nominative'" class="v-middle badge text-base bg-event" translate="">{{ 'app.admin.events.event_type.nominative' }}</span>
|
<span ng-if="event.event_type === 'nominative'" class="v-middle badge text-sm bg-event" translate="">{{ 'app.admin.events.event_type.nominative' }}</span>
|
||||||
<span ng-if="event.event_type === 'family'" class="v-middle badge text-base bg-atelier" translate="">{{ 'app.admin.events.event_type.family' }}</span>
|
<span ng-if="event.event_type === 'family'" class="v-middle badge text-sm bg-atelier" translate="">{{ 'app.admin.events.event_type.family' }}</span>
|
||||||
<span ng-if="event.pre_registration" class="v-middle badge text-base bg-info" translate="">{{ 'app.admin.events.pre_registration' }}</span>
|
<span ng-if="event.pre_registration" class="v-middle badge text-sm bg-info" translate="">{{ 'app.admin.events.pre_registration' }}</span>
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
<td style="vertical-align:middle">
|
<td style="vertical-align:middle">
|
||||||
|
@ -46,10 +46,10 @@
|
|||||||
<span ng-repeat="ticket in reservation.tickets_attributes">{{ticket.event_price_category.price_category.name}} : {{ticket.booked}}</span>
|
<span ng-repeat="ticket in reservation.tickets_attributes">{{ticket.event_price_category.price_category.name}} : {{ticket.booked}}</span>
|
||||||
</td>
|
</td>
|
||||||
<td ng-if="event.pre_registration">
|
<td ng-if="event.pre_registration">
|
||||||
<span ng-if="!isValidated(reservation) && !isCancelled(reservation) && !reservation.is_paid" class="v-middle badge text-base bg-info" translate="">{{ 'app.admin.event_reservations.event_status.pre_registered' }}</span>
|
<span ng-if="!isValidated(reservation) && !isCancelled(reservation) && !reservation.is_paid" class="v-middle badge text-sm bg-info" translate="">{{ 'app.admin.event_reservations.event_status.pre_registered' }}</span>
|
||||||
<span ng-if="isValidated(reservation) && !isCancelled(reservation) && !reservation.is_paid" class="v-middle badge text-base bg-stage" translate="">{{ 'app.admin.event_reservations.event_status.to_pay' }}</span>
|
<span ng-if="isValidated(reservation) && !isCancelled(reservation) && !reservation.is_paid" class="v-middle badge text-sm bg-stage" translate="">{{ 'app.admin.event_reservations.event_status.to_pay' }}</span>
|
||||||
<span ng-if="reservation.is_paid && !isCancelled(reservation)" class="v-middle badge text-base bg-success" translate="">{{ 'app.admin.event_reservations.event_status.paid' }}</span>
|
<span ng-if="reservation.is_paid && !isCancelled(reservation)" class="v-middle badge text-sm bg-success" translate="">{{ 'app.admin.event_reservations.event_status.paid' }}</span>
|
||||||
<span ng-if="isCancelled(reservation)" class="v-middle badge text-base bg-event" translate="">{{ 'app.admin.event_reservations.event_status.canceled' }}</span>
|
<span ng-if="isCancelled(reservation)" class="v-middle badge text-sm bg-event" translate="">{{ 'app.admin.event_reservations.event_status.canceled' }}</span>
|
||||||
</td>
|
</td>
|
||||||
<td ng-if="event.pre_registration">
|
<td ng-if="event.pre_registration">
|
||||||
<button class="btn btn-default" ng-click="validateReservation(reservation)" ng-if="!isValidated(reservation) && !isCancelled(reservation) && !reservation.is_paid" translate>
|
<button class="btn btn-default" ng-click="validateReservation(reservation)" ng-if="!isValidated(reservation) && !isCancelled(reservation) && !reservation.is_paid" translate>
|
||||||
|
@ -73,8 +73,9 @@
|
|||||||
|
|
||||||
<div class="panel-content wrapper">
|
<div class="panel-content wrapper">
|
||||||
<div>
|
<div>
|
||||||
<span ng-if="event.event_type === 'nominative'" class="v-middle badge text-base bg-event" translate="">{{ 'app.public.events_show.event_type.nominative' }}</span>
|
<span ng-if="event.event_type === 'nominative'" class="v-middle badge text-xs bg-event" translate="">{{ 'app.public.events_show.event_type.nominative' }}</span>
|
||||||
<span ng-if="event.event_type === 'family'" class="v-middle badge text-base bg-event" translate="">{{ 'app.public.events_show.event_type.family' }}</span>
|
<span ng-if="event.event_type === 'family'" class="v-middle badge text-xs bg-event" translate="">{{ 'app.public.events_show.event_type.family' }}</span>
|
||||||
|
<span ng-if="event.pre_registration" class="v-middle badge text-xs bg-info" translate="">{{ 'app.public.events_show.pre_registration' }}</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<dl class="text-sm">
|
<dl class="text-sm">
|
||||||
@ -90,7 +91,7 @@
|
|||||||
<dd ng-if="event.all_day"><span translate>{{ 'app.public.events_show.all_day' }}</span></dd>
|
<dd ng-if="event.all_day"><span translate>{{ 'app.public.events_show.all_day' }}</span></dd>
|
||||||
<dd ng-if="!event.all_day">{{ 'app.public.events_show.from_time' | translate }} <span class="text-u-l">{{event.start_time}}</span> {{ 'app.public.events_show.to_time' | translate }} <span class="text-u-l">{{event.end_time}}</span></dd>
|
<dd ng-if="!event.all_day">{{ 'app.public.events_show.from_time' | translate }} <span class="text-u-l">{{event.start_time}}</span> {{ 'app.public.events_show.to_time' | translate }} <span class="text-u-l">{{event.end_time}}</span></dd>
|
||||||
<dt ng-if="event.pre_registration_end_date"><i class="fa fa-calendar" aria-hidden="true"></i> {{ 'app.public.events_show.pre_registration_end_date' | translate }}</dt>
|
<dt ng-if="event.pre_registration_end_date"><i class="fa fa-calendar" aria-hidden="true"></i> {{ 'app.public.events_show.pre_registration_end_date' | translate }}</dt>
|
||||||
<dd ng-if="event.pre_registration_end_date">{{ 'app.public.events_show.ending' | translate }} <span class="text-u-l">{{event.pre_registration_end_date | amDateFormat:'L'}}</span></dd>
|
<dd ng-if="event.pre_registration_end_date"><span class="text-u-l">{{event.pre_registration_end_date | amDateFormat:'L'}}</span></dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
|
||||||
<div class="text-sm" ng-if="event.amount">
|
<div class="text-sm" ng-if="event.amount">
|
||||||
@ -221,7 +222,7 @@
|
|||||||
{{ 'app.public.events_show.you_can_find_your_reservation_s_details_on_your_' | translate }} <a ui-sref="app.logged.dashboard.invoices" translate>{{ 'app.public.events_show.dashboard' }}</a>
|
{{ 'app.public.events_show.you_can_find_your_reservation_s_details_on_your_' | translate }} <a ui-sref="app.logged.dashboard.invoices" translate>{{ 'app.public.events_show.dashboard' }}</a>
|
||||||
</div>
|
</div>
|
||||||
<div ng-if="reserveSuccess && event.pre_registration" class="alert alert-success">{{ 'app.public.events_show.thank_you_your_pre_registration_has_been_successfully_saved' | translate }}<br>
|
<div ng-if="reserveSuccess && event.pre_registration" class="alert alert-success">{{ 'app.public.events_show.thank_you_your_pre_registration_has_been_successfully_saved' | translate }}<br>
|
||||||
{{ 'app.public.events_show.you_can_find_your_reservation_s_details_on_your_' | translate }} <a ui-sref="app.logged.dashboard.invoices" translate>{{ 'app.public.events_show.dashboard' }}</a>
|
{{ 'app.public.events_show.informed_by_email_your_pre_registration' | translate }}
|
||||||
</div>
|
</div>
|
||||||
<div class="m-t-sm" ng-if="reservations && !reserve.toReserve" ng-repeat="reservation in reservations">
|
<div class="m-t-sm" ng-if="reservations && !reserve.toReserve" ng-repeat="reservation in reservations">
|
||||||
<div ng-hide="isCancelled(reservation)" class="well well-warning">
|
<div ng-hide="isCancelled(reservation)" class="well well-warning">
|
||||||
|
@ -131,16 +131,28 @@ class Reservation < ApplicationRecord
|
|||||||
end
|
end
|
||||||
|
|
||||||
def notify_member_create_reservation
|
def notify_member_create_reservation
|
||||||
|
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',
|
NotificationCenter.call type: 'notify_member_create_reservation',
|
||||||
receiver: user,
|
receiver: user,
|
||||||
attached_object: self
|
attached_object: self
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def notify_admin_member_create_reservation
|
def notify_admin_member_create_reservation
|
||||||
|
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',
|
NotificationCenter.call type: 'notify_admin_member_create_reservation',
|
||||||
receiver: User.admins_and_managers,
|
receiver: User.admins_and_managers,
|
||||||
attached_object: self
|
attached_object: self
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def notify_member_limitation_reached
|
def notify_member_limitation_reached
|
||||||
date = ReservationLimitService.reached_limit_date(self)
|
date = ReservationLimitService.reached_limit_date(self)
|
||||||
|
@ -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'))
|
||||||
|
|
@ -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)
|
@ -0,0 +1,19 @@
|
|||||||
|
<%= render 'notifications_mailer/shared/hello', recipient: @recipient %>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<%= t('.body.member_reserved_html',
|
||||||
|
NAME: @attached_object.user&.profile&.full_name || t('api.notifications.deleted_user'),
|
||||||
|
RESERVABLE: @attached_object.reservable.name) %>
|
||||||
|
</p>
|
||||||
|
<p><%= t('.body.reserved_slots') %></p>
|
||||||
|
<ul>
|
||||||
|
<% @attached_object.slots.each do |slot| %>
|
||||||
|
<% if @attached_object.reservable_type == 'Event' %>
|
||||||
|
<% (slot.start_at.to_date..slot.end_at.to_date).each do |d| %>
|
||||||
|
<li><%= "#{I18n.l d, format: :long} #{I18n.l slot.start_at, format: :hour_minute} - #{I18n.l slot.end_at, format: :hour_minute}" %></li>
|
||||||
|
<% end %>
|
||||||
|
<% else %>
|
||||||
|
<li><%= "#{I18n.l slot.start_at, format: :long} - #{I18n.l slot.end_at, format: :hour_minute}" %></li>
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
</ul>
|
@ -0,0 +1,16 @@
|
|||||||
|
<%= render 'notifications_mailer/shared/hello', recipient: @recipient %>
|
||||||
|
|
||||||
|
<p><%= t('.body.reservation_saved_html', RESERVATION: @attached_object.reservable.name) %></p>
|
||||||
|
|
||||||
|
<p><%= t('.body.your_reserved_slots') %> </p>
|
||||||
|
<ul>
|
||||||
|
<% @attached_object.slots.each do |slot| %>
|
||||||
|
<% if @attached_object.reservable_type == 'Event' %>
|
||||||
|
<% (slot.start_at.to_date..slot.end_at.to_date).each do |d| %>
|
||||||
|
<li><%= "#{I18n.l d, format: :long} #{I18n.l slot.start_at, format: :hour_minute} - #{I18n.l slot.end_at, format: :hour_minute}" %></li>
|
||||||
|
<% end %>
|
||||||
|
<% else %>
|
||||||
|
<li><%= "#{I18n.l slot.start_at, format: :long} - #{I18n.l slot.end_at, format: :hour_minute}" %></li>
|
||||||
|
<% end %>
|
||||||
|
<% end %>
|
||||||
|
</ul>
|
@ -656,6 +656,7 @@ en:
|
|||||||
confirm_payment_of_html: "{ROLE, select, admin{Cash} other{Pay}}: {AMOUNT}" #(contexte : validate a payment of $20,00)
|
confirm_payment_of_html: "{ROLE, select, admin{Cash} other{Pay}}: {AMOUNT}" #(contexte : validate a payment of $20,00)
|
||||||
offer_this_reservation: "I offer this reservation"
|
offer_this_reservation: "I offer this reservation"
|
||||||
i_have_received_the_payment: "I have received the payment"
|
i_have_received_the_payment: "I have received the payment"
|
||||||
|
reservation_was_successfully_paid: "Reservation was successfully paid."
|
||||||
events_settings:
|
events_settings:
|
||||||
title: "Settings"
|
title: "Settings"
|
||||||
generic_text_block: "Editorial text block"
|
generic_text_block: "Editorial text block"
|
||||||
@ -1823,8 +1824,9 @@ en:
|
|||||||
public_registrations: "Public registrations"
|
public_registrations: "Public registrations"
|
||||||
show_username_in_admin_list: "Show the username in the list"
|
show_username_in_admin_list: "Show the username in the list"
|
||||||
family_account: "family account"
|
family_account: "family account"
|
||||||
family_account_info_html: "By activating this option, you offer your members the possibility to add their child(ren) to their own account. You can also request proof if you wish to validate them."
|
family_account_info_html: "The Family account allows your members to add their children under 18 years old to their own account and directly register them for Family events. You can also request supporting documents for each child and validate their account."
|
||||||
enable_family_account: "Enable the Family Account option"
|
enable_family_account: "Enable the Family Account option"
|
||||||
|
child_validation_required: "the account validation option for children"
|
||||||
child_validation_required_label: "Activate the account validation option for children"
|
child_validation_required_label: "Activate the account validation option for children"
|
||||||
overlapping_options:
|
overlapping_options:
|
||||||
training_reservations: "Trainings"
|
training_reservations: "Trainings"
|
||||||
|
@ -656,6 +656,7 @@ fr:
|
|||||||
confirm_payment_of_html: "{ROLE, select, admin{Encaisser} other{Payer}} : {AMOUNT}" #(contexte : validate a payment of $20,00)
|
confirm_payment_of_html: "{ROLE, select, admin{Encaisser} other{Payer}} : {AMOUNT}" #(contexte : validate a payment of $20,00)
|
||||||
offer_this_reservation: "J'offre cette réservation"
|
offer_this_reservation: "J'offre cette réservation"
|
||||||
i_have_received_the_payment: "J'ai reçu le paiement"
|
i_have_received_the_payment: "J'ai reçu le paiement"
|
||||||
|
reservation_was_successfully_paid: "La réservation a bien été payée."
|
||||||
events_settings:
|
events_settings:
|
||||||
title: "Paramètres"
|
title: "Paramètres"
|
||||||
generic_text_block: "Bloc de texte rédactionnel"
|
generic_text_block: "Bloc de texte rédactionnel"
|
||||||
@ -1815,8 +1816,9 @@ fr:
|
|||||||
public_registrations: "Inscriptions publiques"
|
public_registrations: "Inscriptions publiques"
|
||||||
show_username_in_admin_list: "Afficher le nom d'utilisateur dans la liste"
|
show_username_in_admin_list: "Afficher le nom d'utilisateur dans la liste"
|
||||||
family_account: "Compte famille"
|
family_account: "Compte famille"
|
||||||
family_account_info_html: "En activant cette option, vous offrez à vos membres la possibilité d'ajouter sur leur propre compte leur(s) enfants. Vous pouvez aussi demander un justificatif si vous souhaitez les valider."
|
family_account_info_html: "Le compte Famille permet à vos membres d'ajouter leurs enfants de moins de 18 ans sur leur propre compte et de les inscrire directement aux évènements de type Famille. Vous pouvez aussi demander des justificatifs pour chaque enfant et valider leur compte."
|
||||||
enable_family_account: "Activer l'option Compte Famille"
|
enable_family_account: "Activer l'option Compte Famille"
|
||||||
|
child_validation_required: "l'option de validation des comptes enfants"
|
||||||
child_validation_required_label: "Activer l'option de validation des comptes enfants"
|
child_validation_required_label: "Activer l'option de validation des comptes enfants"
|
||||||
overlapping_options:
|
overlapping_options:
|
||||||
training_reservations: "Formations"
|
training_reservations: "Formations"
|
||||||
|
@ -332,9 +332,10 @@ en:
|
|||||||
thank_you_your_payment_has_been_successfully_registered: "Thank you. Your payment has been successfully registered!"
|
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!"
|
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"
|
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"
|
dashboard: "dashboard"
|
||||||
you_booked_DATE: "You booked ({DATE}):"
|
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)"
|
canceled_reservation_SEATS: "Reservation canceled ({SEATS} seats)"
|
||||||
book: "Book"
|
book: "Book"
|
||||||
confirm_and_pay: "Confirm and pay"
|
confirm_and_pay: "Confirm and pay"
|
||||||
@ -364,7 +365,8 @@ en:
|
|||||||
share_on_twitter: "Share on Twitter"
|
share_on_twitter: "Share on Twitter"
|
||||||
last_name_and_first_name: "Last name and first name"
|
last_name_and_first_name: "Last name and first name"
|
||||||
pre_book: "Pre-book"
|
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
|
#public calendar
|
||||||
calendar:
|
calendar:
|
||||||
calendar: "Calendar"
|
calendar: "Calendar"
|
||||||
@ -492,7 +494,7 @@ en:
|
|||||||
edit_child: "Edit child"
|
edit_child: "Edit child"
|
||||||
new_child: "New child"
|
new_child: "New child"
|
||||||
child_form:
|
child_form:
|
||||||
child_form_info: "Please note that you can only add a child under the age of 18. Supporting documents are requested by your administrator, they will be useful to validate your child's account and authorize the reservation of events."
|
child_form_info: "Only children under 18 years old can be added to your Family account. Supporting documents may be requested to validate your child's account and allow you to register them for events."
|
||||||
first_name: "First name"
|
first_name: "First name"
|
||||||
last_name: "Last name"
|
last_name: "Last name"
|
||||||
birthday: "Birthday"
|
birthday: "Birthday"
|
||||||
|
@ -330,11 +330,12 @@ fr:
|
|||||||
ticket: "{NUMBER, plural, =0{place} one{place} other{places}}"
|
ticket: "{NUMBER, plural, =0{place} one{place} other{places}}"
|
||||||
make_a_gift_of_this_reservation: "Offrir cette réservation"
|
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_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"
|
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"
|
dashboard: "tableau de bord"
|
||||||
you_booked_DATE: "Vous avez réservé ({DATE}) :"
|
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)"
|
canceled_reservation_SEATS: "Réservation annulée ({SEATS} places)"
|
||||||
book: "Réserver"
|
book: "Réserver"
|
||||||
confirm_and_pay: "Valider et payer"
|
confirm_and_pay: "Valider et payer"
|
||||||
@ -363,8 +364,9 @@ fr:
|
|||||||
share_on_facebook: "Partager sur Facebook"
|
share_on_facebook: "Partager sur Facebook"
|
||||||
share_on_twitter: "Partager sur Twitter"
|
share_on_twitter: "Partager sur Twitter"
|
||||||
last_name_and_first_name: "Nom et prénom"
|
last_name_and_first_name: "Nom et prénom"
|
||||||
pre_book: "Pré-réserver"
|
pre_book: "Pré-inscrire"
|
||||||
pre_registration_end_date: "Date de fin de pré-réservation"
|
pre_registration_end_date: "Date limite de pré-inscription"
|
||||||
|
pre_registration: "Pré-réservation"
|
||||||
#public calendar
|
#public calendar
|
||||||
calendar:
|
calendar:
|
||||||
calendar: "Calendrier"
|
calendar: "Calendrier"
|
||||||
@ -485,13 +487,14 @@ fr:
|
|||||||
select_a_member: "Sélectionnez un membre"
|
select_a_member: "Sélectionnez un membre"
|
||||||
start_typing: "Commencez à écrire..."
|
start_typing: "Commencez à écrire..."
|
||||||
children_dashboard:
|
children_dashboard:
|
||||||
heading: "Mes enfants"
|
heading: "Enfants"
|
||||||
|
member_heading: "Mes enfants"
|
||||||
add_child: "Ajouter un enfant"
|
add_child: "Ajouter un enfant"
|
||||||
child_modal:
|
child_modal:
|
||||||
edit_child: "Modifier un enfant"
|
edit_child: "Modifier un enfant"
|
||||||
new_child: "Ajouter un enfant"
|
new_child: "Ajouter un enfant"
|
||||||
child_form:
|
child_form:
|
||||||
child_form_info: "Notez que vous ne pouvez ajouter que vos enfants de moins de 18 ans. Des pièces justificatives sont demandés par votre administrateur, elles lui seront utiles pour valider le compte de votre enfant et ainsi autoriser la réservation d'événements."
|
child_form_info: "Seuls les enfants de moins de 18 ans peuvent être ajoutés au sein de votre compte Famille. Des justificatifs peuvent être demandés afin de valider le compte de votre enfant et de vous permettre ensuite de l'inscrire à des évènements."
|
||||||
first_name: "Prénom"
|
first_name: "Prénom"
|
||||||
last_name: "Nom"
|
last_name: "Nom"
|
||||||
birthday: "Date de naissance"
|
birthday: "Date de naissance"
|
||||||
|
@ -286,6 +286,8 @@ en:
|
|||||||
an_abuse_was_reported_on_TYPE_ID_NAME_html: "An abuse was reported on <strong>%{TYPE} %{ID}: <em>%{NAME}</em></strong>."
|
an_abuse_was_reported_on_TYPE_ID_NAME_html: "An abuse was reported on <strong>%{TYPE} %{ID}: <em>%{NAME}</em></strong>."
|
||||||
notify_admin_member_create_reservation:
|
notify_admin_member_create_reservation:
|
||||||
a_RESERVABLE_reservation_was_made_by_USER_html: "A <strong><em>%{RESERVABLE}</em></strong> reservation was made by <strong><em>%{USER}</em></strong>."
|
a_RESERVABLE_reservation_was_made_by_USER_html: "A <strong><em>%{RESERVABLE}</em></strong> reservation was made by <strong><em>%{USER}</em></strong>."
|
||||||
|
notify_admin_member_pre_booked_reservation:
|
||||||
|
a_RESERVABLE_reservation_was_made_by_USER_html: "A <strong><em>%{RESERVABLE}</em></strong> pre-registration was made by <strong><em>%{USER}</em></strong>."
|
||||||
notify_admin_profile_complete:
|
notify_admin_profile_complete:
|
||||||
account_imported_from_PROVIDER_UID_has_completed_its_information_html: "Account imported from <strong><em>%{PROVIDER}</strong> (%{UID})</em> has completed its information."
|
account_imported_from_PROVIDER_UID_has_completed_its_information_html: "Account imported from <strong><em>%{PROVIDER}</strong> (%{UID})</em> has completed its information."
|
||||||
notify_admin_slot_is_canceled:
|
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: <strong><em>%{PROVIDER}</strong> (%{UID})</em>."
|
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:
|
notify_member_create_reservation:
|
||||||
your_reservation_RESERVABLE_was_successfully_saved_html: "Your reservation <strong><em>%{RESERVABLE}</em></strong> was successfully saved."
|
your_reservation_RESERVABLE_was_successfully_saved_html: "Your reservation <strong><em>%{RESERVABLE}</em></strong> was successfully saved."
|
||||||
|
notify_member_pre_booked_reservation:
|
||||||
|
your_reservation_RESERVABLE_was_successfully_saved_html: "Your pre-registration <strong><em>%{RESERVABLE}</em></strong> was successfully saved."
|
||||||
notify_member_reservation_reminder:
|
notify_member_reservation_reminder:
|
||||||
reminder_you_have_a_reservation_RESERVABLE_to_be_held_on_DATE_html: "Reminder: You have a reservation <strong>%{RESERVABLE}</strong> to be held on <em>%{DATE}</em>"
|
reminder_you_have_a_reservation_RESERVABLE_to_be_held_on_DATE_html: "Reminder: You have a reservation <strong>%{RESERVABLE}</strong> to be held on <em>%{DATE}</em>"
|
||||||
notify_member_slot_is_canceled:
|
notify_member_slot_is_canceled:
|
||||||
|
@ -286,6 +286,8 @@ fr:
|
|||||||
an_abuse_was_reported_on_TYPE_ID_NAME_html: "Un abus a été signalé sur <strong>%{TYPE} %{ID} : <em>%{NAME}</em></strong>."
|
an_abuse_was_reported_on_TYPE_ID_NAME_html: "Un abus a été signalé sur <strong>%{TYPE} %{ID} : <em>%{NAME}</em></strong>."
|
||||||
notify_admin_member_create_reservation:
|
notify_admin_member_create_reservation:
|
||||||
a_RESERVABLE_reservation_was_made_by_USER_html: "Une réservation <strong><em>%{RESERVABLE}</em></strong> a été effectuée par <strong><em>%{USER}</em></strong>."
|
a_RESERVABLE_reservation_was_made_by_USER_html: "Une réservation <strong><em>%{RESERVABLE}</em></strong> a été effectuée par <strong><em>%{USER}</em></strong>."
|
||||||
|
notify_admin_member_pre_booked_reservation:
|
||||||
|
a_RESERVABLE_reservation_was_made_by_USER_html: "Une pre-inscription <strong><em>%{RESERVABLE}</em></strong> a été effectuée par <strong><em>%{USER}</em></strong>."
|
||||||
notify_admin_profile_complete:
|
notify_admin_profile_complete:
|
||||||
account_imported_from_PROVIDER_UID_has_completed_its_information_html: "Le compte importé depuis <strong><em>%{PROVIDER}</strong> (%{UID})</em> a complété ses informations."
|
account_imported_from_PROVIDER_UID_has_completed_its_information_html: "Le compte importé depuis <strong><em>%{PROVIDER}</strong> (%{UID})</em> a complété ses informations."
|
||||||
notify_admin_slot_is_canceled:
|
notify_admin_slot_is_canceled:
|
||||||
@ -315,11 +317,13 @@ fr:
|
|||||||
notify_admin_when_user_is_created:
|
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} <%{EMAIL}></strong></em>."
|
a_new_user_account_has_been_created_NAME_EMAIL_html: "Un nouveau compte utilisateur vient d'être créé : <strong><em>%{NAME} <%{EMAIL}></strong></em>."
|
||||||
notify_admin_child_created:
|
notify_admin_child_created:
|
||||||
a_new_child_has_been_created_NAME_html: "Un nouveau enfant vient d'être créé : <strong><em>%{NAME}</em></strong>."
|
a_new_child_has_been_created_NAME_html: "Un nouvel enfant vient d'être créé : <strong><em>%{NAME}</em></strong>."
|
||||||
notify_admin_when_user_is_imported:
|
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>."
|
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:
|
notify_member_create_reservation:
|
||||||
your_reservation_RESERVABLE_was_successfully_saved_html: "Votre réservation <strong><em>%{RESERVABLE}</em></strong> a bien été enregistrée."
|
your_reservation_RESERVABLE_was_successfully_saved_html: "Votre réservation <strong><em>%{RESERVABLE}</em></strong> a bien été enregistrée."
|
||||||
|
notify_member_pre_booked_reservation:
|
||||||
|
your_reservation_RESERVABLE_was_successfully_saved_html: "Votre pré-inscription <strong><em>%{RESERVABLE}</em></strong> a bien été pris en compte."
|
||||||
notify_member_reservation_reminder:
|
notify_member_reservation_reminder:
|
||||||
reminder_you_have_a_reservation_RESERVABLE_to_be_held_on_DATE_html: "Rappel : Vous avez une réservation <strong>%{RESERVABLE}</strong> qui aura lieu le <em>%{DATE}</em>"
|
reminder_you_have_a_reservation_RESERVABLE_to_be_held_on_DATE_html: "Rappel : Vous avez une réservation <strong>%{RESERVABLE}</strong> qui aura lieu le <em>%{DATE}</em>"
|
||||||
notify_member_slot_is_canceled:
|
notify_member_slot_is_canceled:
|
||||||
|
@ -78,6 +78,11 @@ en:
|
|||||||
body:
|
body:
|
||||||
reservation_saved_html: "You reservation <strong><em>%{RESERVATION}</em></strong> has been successfully saved"
|
reservation_saved_html: "You reservation <strong><em>%{RESERVATION}</em></strong> has been successfully saved"
|
||||||
your_reserved_slots: "Your reserved slots are:"
|
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 <strong><em>%{RESERVATION}</em></strong> has been successfully saved"
|
||||||
|
your_reserved_slots: "Your pre-booked slots are:"
|
||||||
notify_member_subscribed_plan_is_changed:
|
notify_member_subscribed_plan_is_changed:
|
||||||
subject: "Your subscription has been updated"
|
subject: "Your subscription has been updated"
|
||||||
body:
|
body:
|
||||||
@ -87,6 +92,11 @@ en:
|
|||||||
body:
|
body:
|
||||||
member_reserved_html: "User %{NAME} has reserved <strong><em>%{RESERVABLE}</em></strong>."
|
member_reserved_html: "User %{NAME} has reserved <strong><em>%{RESERVABLE}</em></strong>."
|
||||||
reserved_slots: "Reserved slots are:"
|
reserved_slots: "Reserved slots are:"
|
||||||
|
notify_admin_member_pre_booked_reservation:
|
||||||
|
subject: "New pre-registration"
|
||||||
|
body:
|
||||||
|
member_reserved_html: "User %{NAME} has pre-reserved <strong><em>%{RESERVABLE}</em></strong>."
|
||||||
|
reserved_slots: "Pre-reserved slots are:"
|
||||||
notify_member_slot_is_modified:
|
notify_member_slot_is_modified:
|
||||||
subject: "Your reservation slot has been successfully changed"
|
subject: "Your reservation slot has been successfully changed"
|
||||||
body:
|
body:
|
||||||
|
@ -78,6 +78,11 @@ fr:
|
|||||||
body:
|
body:
|
||||||
reservation_saved_html: "Votre réservation <strong><em>%{RESERVATION}</em></strong> a bien été enregistrée."
|
reservation_saved_html: "Votre réservation <strong><em>%{RESERVATION}</em></strong> a bien été enregistrée."
|
||||||
your_reserved_slots: "Les créneaux que vous avez réservés sont :"
|
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 <strong><em>%{RESERVATION}</em></strong> a bien été pris en compte."
|
||||||
|
your_reserved_slots: "Les créneaux que vous avez pré-inscrit sont :"
|
||||||
notify_member_subscribed_plan_is_changed:
|
notify_member_subscribed_plan_is_changed:
|
||||||
subject: "Votre abonnement a été mis à jour"
|
subject: "Votre abonnement a été mis à jour"
|
||||||
body:
|
body:
|
||||||
@ -87,6 +92,11 @@ fr:
|
|||||||
body:
|
body:
|
||||||
member_reserved_html: "Le membre %{NAME} a réservé <strong><em>%{RESERVABLE}</em></strong>."
|
member_reserved_html: "Le membre %{NAME} a réservé <strong><em>%{RESERVABLE}</em></strong>."
|
||||||
reserved_slots: "Les créneaux réservés sont :"
|
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 <strong><em>%{RESERVABLE}</em></strong>."
|
||||||
|
reserved_slots: "Les créneaux pre-inscrit sont :"
|
||||||
notify_member_slot_is_modified:
|
notify_member_slot_is_modified:
|
||||||
subject: "Votre créneau de réservation a bien été modifié"
|
subject: "Votre créneau de réservation a bien été modifié"
|
||||||
body:
|
body:
|
||||||
|
@ -90,7 +90,9 @@ NOTIFICATIONS_TYPES = [
|
|||||||
{ name: 'notify_admin_user_child_supporting_document_files_created', category: 'supporting_documents', is_configurable: true },
|
{ 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_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
|
].freeze
|
||||||
|
|
||||||
NOTIFICATIONS_TYPES.each do |notification_type|
|
NOTIFICATIONS_TYPES.each do |notification_type|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user