extract computation to controller

This commit is contained in:
Christophe Robillard 2022-11-10 15:35:01 +01:00
parent 3a15178cee
commit cc35788d26
6 changed files with 95 additions and 127 deletions

View file

@ -334,14 +334,29 @@ module Administrateurs
def all
@filter = ProceduresFilter.new(current_administrateur, params)
@procedures = paginate(filter_procedures(@filter), published_at: :desc)
end
def administrateurs
@filter = ProceduresFilter.new(current_administrateur, params)
@admins = Administrateur.includes(:user, :procedures).where(id: AdministrateursProcedure.where(procedure: filter_procedures(@filter)).select(:administrateur_id))
@admins = paginate(@admins, 'users.email')
end
private
def filter_procedures(filter)
procedures_result = Procedure.joins(:procedures_zones).publiees_ou_closes
procedures_result = procedures_result.where(procedures_zones: { zone_id: filter.zone_ids }) if filter.zone_ids.present?
procedures_result = procedures_result.where(aasm_state: filter.statuses) if filter.statuses.present?
procedures_result = procedures_result.where('published_at >= ?', filter.from_publication_date) if filter.from_publication_date.present?
procedures_result
end
def paginate(result, ordered_by)
result.page(params[:page]).per(ITEMS_PER_PAGE).order(ordered_by)
end
def draft_valid?
if procedure_without_control.draft_revision.invalid?
flash.alert = t('preview_unavailable', scope: 'administrateurs.procedures')