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)