diff --git a/app/frontend/src/javascript/models/setting.ts b/app/frontend/src/javascript/models/setting.ts
index 6337466d2..27f84db14 100644
--- a/app/frontend/src/javascript/models/setting.ts
+++ b/app/frontend/src/javascript/models/setting.ts
@@ -81,7 +81,10 @@ export const bookingSettings = [
'reminder_delay',
'visibility_yearly',
'visibility_others',
- 'reservation_deadline',
+ 'machine_reservation_deadline',
+ 'training_reservation_deadline',
+ 'event_reservation_deadline',
+ 'space_reservation_deadline',
'display_name_enable',
'book_overlapping_slots',
'slot_duration',
diff --git a/app/frontend/src/javascript/router.js b/app/frontend/src/javascript/router.js
index d54da8537..f2186e456 100644
--- a/app/frontend/src/javascript/router.js
+++ b/app/frontend/src/javascript/router.js
@@ -1175,7 +1175,8 @@ angular.module('application.router', ['ui.router'])
"'renew_pack_threshold', 'pack_only_for_subscription', 'overlapping_categories', 'public_registrations'," +
"'extended_prices_in_same_day', 'recaptcha_site_key', 'recaptcha_secret_key', 'user_validation_required', " +
"'user_validation_required_list', 'machines_module', 'user_change_group', 'show_username_in_admin_list', " +
- "'store_module', 'reservation_deadline']"
+ "'store_module', 'machine_reservation_deadline', 'training_reservation_deadline', 'event_reservation_deadline', " +
+ "'space_reservation_deadline']"
}).$promise;
}],
privacyDraftsPromise: ['Setting', function (Setting) { return Setting.get({ name: 'privacy_draft', history: true }).$promise; }],
diff --git a/app/frontend/templates/admin/settings/reservations.html b/app/frontend/templates/admin/settings/reservations.html
index 6f6469ba1..3307fedd9 100644
--- a/app/frontend/templates/admin/settings/reservations.html
+++ b/app/frontend/templates/admin/settings/reservations.html
@@ -108,9 +108,33 @@
{{ 'app.admin.settings.reservation_deadline' }}
{{ 'app.admin.settings.reservation_deadline_help' }}
-
+
+
+
+
+
+
= ? AND available_type = ?', window_end, window_start, type)
diff --git a/config/locales/app.admin.en.yml b/config/locales/app.admin.en.yml
index c89977d48..c8d48c577 100644
--- a/config/locales/app.admin.en.yml
+++ b/config/locales/app.admin.en.yml
@@ -1578,7 +1578,10 @@ en:
visibility_for_other_members: "For all other members"
reservation_deadline: "Prevent last minute booking"
reservation_deadline_help: "If you increase the prior period, members won't be able to book a slot X minutes before its start."
- deadline_minutes: "Prior period (minutes)"
+ machine_deadline_minutes: "Machine prior period (minutes)"
+ training_deadline_minutes: "Training prior period (minutes)"
+ event_deadline_minutes: "Event prior period (minutes)"
+ space_deadline_minutes: "Space prior period (minutes)"
ability_for_the_users_to_move_their_reservations: "Ability for the users to move their reservations"
reservations_shifting: "Reservations shifting"
prior_period_hours: "Prior period (hours)"
diff --git a/db/seeds/settings.rb b/db/seeds/settings.rb
index 87c5faba0..4df47c23c 100644
--- a/db/seeds/settings.rb
+++ b/db/seeds/settings.rb
@@ -418,7 +418,15 @@ Setting.set('visibility_yearly', 3) unless Setting.find_by(name: 'visibility_yea
Setting.set('visibility_others', 1) unless Setting.find_by(name: 'visibility_others').try(:value)
-Setting.set('reservation_deadline', 0) unless Setting.find_by(name: 'reservation_deadline').try(:value)
+reservation_deadline = Setting.get('reservation_deadline') || 0
+
+Setting.set('machine_reservation_deadline', reservation_deadline) unless Setting.find_by(name: 'machine_reservation_deadline').try(:value)
+
+Setting.set('training_reservation_deadline', reservation_deadline) unless Setting.find_by(name: 'training_reservation_deadline').try(:value)
+
+Setting.set('event_reservation_deadline', reservation_deadline) unless Setting.find_by(name: 'event_reservation_deadline').try(:value)
+
+Setting.set('space_reservation_deadline', reservation_deadline) unless Setting.find_by(name: 'space_reservation_deadline').try(:value)
Setting.set('display_name_enable', false) unless Setting.find_by(name: 'display_name_enable').try(:value)
diff --git a/test/frontend/__fixtures__/settings.ts b/test/frontend/__fixtures__/settings.ts
index 430b439d2..9c45bb421 100644
--- a/test/frontend/__fixtures__/settings.ts
+++ b/test/frontend/__fixtures__/settings.ts
@@ -737,9 +737,27 @@ export const settings: Array = [
localized: 'éviter la génération de factures à 0'
},
{
- name: 'reservation_deadline',
+ name: 'machine_reservation_deadline',
value: '0',
- last_update: '2022-11-29T21:02:47-0300',
+ last_update: '2023-03-01T16:28:23-0300',
+ localized: "Empêcher la réservation avant qu'elle ne commence"
+ },
+ {
+ name: 'training_reservation_deadline',
+ value: '0',
+ last_update: '2023-03-01T16:28:23-0300',
+ localized: "Empêcher la réservation avant qu'elle ne commence"
+ },
+ {
+ name: 'event_reservation_deadline',
+ value: '0',
+ last_update: '2023-03-01T16:28:23-0300',
+ localized: "Empêcher la réservation avant qu'elle ne commence"
+ },
+ {
+ name: 'space_reservation_deadline',
+ value: '0',
+ last_update: '2023-03-01T16:28:23-0300',
localized: "Empêcher la réservation avant qu'elle ne commence"
},
{
diff --git a/test/integration/reservations/last_minute_test.rb b/test/integration/reservations/last_minute_test.rb
index d0910ea37..88b366f75 100644
--- a/test/integration/reservations/last_minute_test.rb
+++ b/test/integration/reservations/last_minute_test.rb
@@ -13,7 +13,7 @@ class Reservations::LastMinuteTest < ActionDispatch::IntegrationTest
end
test 'user cannot reserve last minute booking' do
- Setting.set('reservation_deadline', '120')
+ Setting.set('space_reservation_deadline', '120')
login_as(@user, scope: :user)
@@ -44,7 +44,7 @@ class Reservations::LastMinuteTest < ActionDispatch::IntegrationTest
end
test 'user can reserve last minute booking' do
- Setting.set('reservation_deadline', '0')
+ Setting.set('space_reservation_deadline', '0')
login_as(@user, scope: :user)
@@ -85,7 +85,7 @@ class Reservations::LastMinuteTest < ActionDispatch::IntegrationTest
end
test 'admin can reserve last minute booking anyway' do
- Setting.set('reservation_deadline', '120')
+ Setting.set('space_reservation_deadline', '120')
login_as(@admin, scope: :user)