1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2025-02-20 14:54:15 +01:00

fixed availabilities controller

This commit is contained in:
Sylvain 2019-01-17 16:55:25 +01:00
parent 5a09453ac2
commit 65892684a8
3 changed files with 12 additions and 22 deletions

View File

@ -28,7 +28,7 @@ class API::AvailabilitiesController < API::ApiController
.where('slots.start_at >= ? AND slots.end_at <= ?', start_date, end_date)
machine_ids = params[:m] || []
service = PublicAvailabilitiesService.new(current_user)
service = Availabilities::PublicAvailabilitiesService.new(current_user)
@availabilities = service.public_availabilities(
start_date,
end_date,
@ -75,19 +75,19 @@ class API::AvailabilitiesController < API::ApiController
def machine
@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)
end
def trainings
service = AvailabilitiesService(current_user, other: @visi_max_other, year: @visi_max_year)
@availabilities = service.trainings(params[:training_id], @user)
service = Availabilities::AvailabilitiesService.new(current_user, other: @visi_max_other, year: @visi_max_year)
@availabilities = service.trainings(params[:training_id], user)
end
def spaces
@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)
end
@ -148,16 +148,6 @@ class API::AvailabilitiesController < API::ApiController
params.require(:lock)
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)
availabilities_filtered = []
availabilities.to_ary.each do |a|
@ -191,7 +181,7 @@ class API::AvailabilitiesController < API::ApiController
end
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
def define_max_visibility

View File

@ -39,7 +39,7 @@ class Availabilities::AvailabilitiesService
def spaces(space_id, user)
space = Space.friendly.find(space_id)
reservations = reservations(space)
availabilities = availabilities(machine, 'machines', user)
availabilities = availabilities(space, 'space', user)
slots = []
availabilities.each do |a|
@ -72,11 +72,11 @@ class Availabilities::AvailabilitiesService
reservations = reservations.joins(:slots).where('slots.start_at > ?', Time.now)
# 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
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
@ -117,7 +117,7 @@ class Availabilities::AvailabilitiesService
def training_availabilities(training_id, user)
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
Availability.trainings
end

View File

@ -57,7 +57,7 @@ class Availabilities::PublicAvailabilitiesService
space: space,
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
end
end
@ -88,7 +88,7 @@ class Availabilities::PublicAvailabilitiesService
.where(lock: false)
avails.each do |a|
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'
a.is_reserved = @service.reserved_availability?(a, @current_user)
end