2018-08-14 15:17:22 +02:00
|
|
|
|
module ProcedureHelper
|
|
|
|
|
def procedure_lien(procedure)
|
2019-09-16 16:59:10 +02:00
|
|
|
|
if procedure.brouillon?
|
|
|
|
|
commencer_test_url(path: procedure.path)
|
|
|
|
|
else
|
|
|
|
|
commencer_url(path: procedure.path)
|
2018-08-14 15:17:22 +02:00
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def procedure_libelle(procedure)
|
2022-10-06 18:08:00 +02:00
|
|
|
|
parts = procedure.brouillon? ? [procedure_badge(procedure)] : []
|
2018-09-18 14:10:15 +02:00
|
|
|
|
parts << procedure.libelle
|
|
|
|
|
safe_join(parts, ' ')
|
2018-08-14 15:17:22 +02:00
|
|
|
|
end
|
|
|
|
|
|
2022-10-06 18:08:00 +02:00
|
|
|
|
def procedure_badge(procedure)
|
|
|
|
|
return nil unless procedure.brouillon?
|
|
|
|
|
|
|
|
|
|
tag.span(t('helpers.procedure.testing_procedure'), class: 'fr-badge')
|
|
|
|
|
end
|
|
|
|
|
|
2021-10-12 16:17:01 +02:00
|
|
|
|
def procedure_publish_label(procedure, key)
|
2021-02-02 15:48:53 +01:00
|
|
|
|
# i18n-tasks-use t('modal.publish.body.publish')
|
|
|
|
|
# i18n-tasks-use t('modal.publish.body.reopen')
|
|
|
|
|
# i18n-tasks-use t('modal.publish.submit.publish')
|
|
|
|
|
# i18n-tasks-use t('modal.publish.submit.reopen')
|
|
|
|
|
# i18n-tasks-use t('modal.publish.title.publish')
|
|
|
|
|
# i18n-tasks-use t('modal.publish.title.reopen')
|
2019-11-14 09:43:45 +01:00
|
|
|
|
action = procedure.close? ? :reopen : :publish
|
2018-08-14 15:17:22 +02:00
|
|
|
|
t(action, scope: [:modal, :publish, key])
|
|
|
|
|
end
|
2018-12-27 13:29:39 +01:00
|
|
|
|
|
2021-11-24 11:09:58 +01:00
|
|
|
|
# Returns a hash of { attribute: full_message } errors.
|
|
|
|
|
def procedure_publication_errors(procedure)
|
|
|
|
|
procedure.validate(:publication)
|
|
|
|
|
procedure.errors.to_hash(full_messages: true).except(:path)
|
|
|
|
|
end
|
|
|
|
|
|
2020-05-27 18:04:22 +02:00
|
|
|
|
def procedure_auto_archive_date(procedure)
|
2020-05-27 11:25:43 +02:00
|
|
|
|
I18n.l(procedure.auto_archive_on - 1.day, format: '%-d %B %Y')
|
|
|
|
|
end
|
|
|
|
|
|
2020-05-27 18:04:22 +02:00
|
|
|
|
def procedure_auto_archive_time(procedure)
|
|
|
|
|
"à 23 h 59 (heure de " + Rails.application.config.time_zone + ")"
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
def procedure_auto_archive_datetime(procedure)
|
|
|
|
|
procedure_auto_archive_date(procedure) + ' ' + procedure_auto_archive_time(procedure)
|
|
|
|
|
end
|
2021-09-15 10:37:19 +02:00
|
|
|
|
|
|
|
|
|
def can_manage_groupe_instructeurs?(procedure)
|
2021-09-27 14:55:26 +02:00
|
|
|
|
procedure.routee? && current_administrateur&.owns?(procedure)
|
2021-09-15 10:37:19 +02:00
|
|
|
|
end
|
2021-09-23 15:03:20 +02:00
|
|
|
|
|
|
|
|
|
def can_send_groupe_message?(procedure)
|
|
|
|
|
procedure.dossiers
|
|
|
|
|
.state_brouillon
|
|
|
|
|
.includes(:groupe_instructeur)
|
|
|
|
|
.exists?(groupe_instructeur: current_instructeur.groupe_instructeurs)
|
|
|
|
|
end
|
2022-04-25 17:38:30 +02:00
|
|
|
|
|
|
|
|
|
def url_or_email_to_lien_dpo(procedure)
|
|
|
|
|
URI::MailTo.build([procedure.lien_dpo, "subject="]).to_s
|
|
|
|
|
rescue URI::InvalidComponentError
|
|
|
|
|
uri = URI.parse(procedure.lien_dpo)
|
|
|
|
|
return "//#{uri}" if uri.scheme.nil?
|
|
|
|
|
uri.to_s
|
|
|
|
|
end
|
2022-05-24 11:39:03 +02:00
|
|
|
|
|
|
|
|
|
def estimated_fill_duration_minutes(procedure)
|
2022-05-24 14:17:10 +02:00
|
|
|
|
seconds = procedure.active_revision.estimated_fill_duration
|
|
|
|
|
minutes = (seconds / 60.0).round
|
2022-05-24 11:39:03 +02:00
|
|
|
|
[1, minutes].max
|
|
|
|
|
end
|
2018-08-14 15:17:22 +02:00
|
|
|
|
end
|