mirror of
https://github.com/LaCasemate/fab-manager.git
synced 2025-02-21 15:54:22 +01:00
fixed availabilities controller
This commit is contained in:
parent
5a09453ac2
commit
65892684a8
@ -28,7 +28,7 @@ class API::AvailabilitiesController < API::ApiController
|
|||||||
.where('slots.start_at >= ? AND slots.end_at <= ?', start_date, end_date)
|
.where('slots.start_at >= ? AND slots.end_at <= ?', start_date, end_date)
|
||||||
|
|
||||||
machine_ids = params[:m] || []
|
machine_ids = params[:m] || []
|
||||||
service = PublicAvailabilitiesService.new(current_user)
|
service = Availabilities::PublicAvailabilitiesService.new(current_user)
|
||||||
@availabilities = service.public_availabilities(
|
@availabilities = service.public_availabilities(
|
||||||
start_date,
|
start_date,
|
||||||
end_date,
|
end_date,
|
||||||
@ -75,19 +75,19 @@ class API::AvailabilitiesController < API::ApiController
|
|||||||
def machine
|
def machine
|
||||||
@current_user_role = current_user.admin? ? 'admin' : 'user'
|
@current_user_role = current_user.admin? ? 'admin' : 'user'
|
||||||
|
|
||||||
service = AvailabilitiesService(current_user, other: @visi_max_other, year: @visi_max_year)
|
service = Availabilities::AvailabilitiesService.new(current_user, other: @visi_max_other, year: @visi_max_year)
|
||||||
@slots = service.machines(params[:machine_id], user)
|
@slots = service.machines(params[:machine_id], user)
|
||||||
end
|
end
|
||||||
|
|
||||||
def trainings
|
def trainings
|
||||||
service = AvailabilitiesService(current_user, other: @visi_max_other, year: @visi_max_year)
|
service = Availabilities::AvailabilitiesService.new(current_user, other: @visi_max_other, year: @visi_max_year)
|
||||||
@availabilities = service.trainings(params[:training_id], @user)
|
@availabilities = service.trainings(params[:training_id], user)
|
||||||
end
|
end
|
||||||
|
|
||||||
def spaces
|
def spaces
|
||||||
@current_user_role = current_user.admin? ? 'admin' : 'user'
|
@current_user_role = current_user.admin? ? 'admin' : 'user'
|
||||||
|
|
||||||
service = AvailabilitiesService(current_user, other: @visi_max_other, year: @visi_max_year)
|
service = Availabilities::AvailabilitiesService.new(current_user, other: @visi_max_other, year: @visi_max_year)
|
||||||
@slots = service.spaces(params[:space_id], user)
|
@slots = service.spaces(params[:space_id], user)
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -148,16 +148,6 @@ class API::AvailabilitiesController < API::ApiController
|
|||||||
params.require(:lock)
|
params.require(:lock)
|
||||||
end
|
end
|
||||||
|
|
||||||
def reserved?(start_at, reservations)
|
|
||||||
is_reserved = false
|
|
||||||
reservations.each do |r|
|
|
||||||
r.slots.each do |s|
|
|
||||||
is_reserved = true if s.start_at == start_at
|
|
||||||
end
|
|
||||||
end
|
|
||||||
is_reserved
|
|
||||||
end
|
|
||||||
|
|
||||||
def filter_availabilites(availabilities)
|
def filter_availabilites(availabilities)
|
||||||
availabilities_filtered = []
|
availabilities_filtered = []
|
||||||
availabilities.to_ary.each do |a|
|
availabilities.to_ary.each do |a|
|
||||||
@ -191,7 +181,7 @@ class API::AvailabilitiesController < API::ApiController
|
|||||||
end
|
end
|
||||||
|
|
||||||
def remove_completed?(availability)
|
def remove_completed?(availability)
|
||||||
params[:dispo] == 'false' && (availability.reserved? || (availability.try(:completed?) && availability.completed?))
|
params[:dispo] == 'false' && (availability.is_reserved || (availability.try(:completed?) && availability.completed?))
|
||||||
end
|
end
|
||||||
|
|
||||||
def define_max_visibility
|
def define_max_visibility
|
||||||
|
@ -39,7 +39,7 @@ class Availabilities::AvailabilitiesService
|
|||||||
def spaces(space_id, user)
|
def spaces(space_id, user)
|
||||||
space = Space.friendly.find(space_id)
|
space = Space.friendly.find(space_id)
|
||||||
reservations = reservations(space)
|
reservations = reservations(space)
|
||||||
availabilities = availabilities(machine, 'machines', user)
|
availabilities = availabilities(space, 'space', user)
|
||||||
|
|
||||||
slots = []
|
slots = []
|
||||||
availabilities.each do |a|
|
availabilities.each do |a|
|
||||||
@ -72,11 +72,11 @@ class Availabilities::AvailabilitiesService
|
|||||||
reservations = reservations.joins(:slots).where('slots.start_at > ?', Time.now)
|
reservations = reservations.joins(:slots).where('slots.start_at > ?', Time.now)
|
||||||
|
|
||||||
# visible availabilities depends on multiple parameters
|
# visible availabilities depends on multiple parameters
|
||||||
availabilities = training_availabilities(training_id, @user)
|
availabilities = training_availabilities(training_id, user)
|
||||||
|
|
||||||
# finally, we merge the availabilities with the reservations
|
# finally, we merge the availabilities with the reservations
|
||||||
availabilities.each do |a|
|
availabilities.each do |a|
|
||||||
a.merge!(@service.training_event_reserved_status(a, reservations, user))
|
a = @service.training_event_reserved_status(a, reservations, user)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -117,7 +117,7 @@ class Availabilities::AvailabilitiesService
|
|||||||
|
|
||||||
def training_availabilities(training_id, user)
|
def training_availabilities(training_id, user)
|
||||||
availabilities = if training_id.is_number? || (training_id.length.positive? && training_id != 'all')
|
availabilities = if training_id.is_number? || (training_id.length.positive? && training_id != 'all')
|
||||||
Training.friendly.find(params[:training_id]).availabilities
|
Training.friendly.find(training_id).availabilities
|
||||||
else
|
else
|
||||||
Availability.trainings
|
Availability.trainings
|
||||||
end
|
end
|
||||||
|
@ -57,7 +57,7 @@ class Availabilities::PublicAvailabilitiesService
|
|||||||
space: space,
|
space: space,
|
||||||
title: space.name
|
title: space.name
|
||||||
)
|
)
|
||||||
slot = @service.space_reserved_status(slot, reservations, @current_user, @user_role)
|
slot = @service.space_reserved_status(slot, reservations, @current_user)
|
||||||
slots << slot
|
slots << slot
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -88,7 +88,7 @@ class Availabilities::PublicAvailabilitiesService
|
|||||||
.where(lock: false)
|
.where(lock: false)
|
||||||
avails.each do |a|
|
avails.each do |a|
|
||||||
if a.available_type == 'training' || a.available_type == 'event'
|
if a.available_type == 'training' || a.available_type == 'event'
|
||||||
a.merge!(@service.training_event_reserved_status(a, reservations, user))
|
a = @service.training_event_reserved_status(a, reservations, @current_user)
|
||||||
elsif a.available_type == 'space'
|
elsif a.available_type == 'space'
|
||||||
a.is_reserved = @service.reserved_availability?(a, @current_user)
|
a.is_reserved = @service.reserved_availability?(a, @current_user)
|
||||||
end
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user