ProcedureOverview: reboot model and layout

This commit is contained in:
Simon Lehericey 2017-06-27 18:00:05 +02:00
parent 689d0c2dd7
commit 603e2dd020
6 changed files with 138 additions and 138 deletions

View file

@ -1,82 +1,72 @@
class ProcedureOverview
include Rails.application.routes.url_helpers
attr_accessor :libelle, :notifications_count, :received_dossiers_count, :created_dossiers_count, :processed_dossiers_count, :date
attr_accessor :procedure,
:created_dossiers_count,
:dossiers_en_instruction_count,
:old_dossiers_en_instruction,
:dossiers_en_construction_count,
:old_dossiers_en_construction
def initialize(procedure, start_date, notifications_count)
@libelle = procedure.libelle
@procedure_url = backoffice_dossiers_procedure_url(procedure)
@notifications_count = notifications_count
def initialize(procedure, start_date)
@start_date = start_date
@procedure = procedure
@received_dossiers_count = procedure.dossiers.where(state: :received).count
@created_dossiers_count = procedure.dossiers
@dossiers_en_instruction_count = procedure.dossiers.state_en_instruction.count
@old_dossiers_en_instruction = procedure
.dossiers
.state_en_instruction
.where('received_at < ?', 1.week.ago)
@dossiers_en_construction_count = procedure.dossiers.state_en_construction.count
@old_dossiers_en_construction = procedure
.dossiers
.state_en_construction
.where('initiated_at < ?', 1.week.ago)
@created_dossiers_count = procedure
.dossiers
.where(created_at: start_date..DateTime.now)
.where.not(state: :draft)
.state_not_brouillon
.count
@processed_dossiers_count = procedure.dossiers.where(processed_at: start_date..DateTime.now).count
end
def had_some_activities?
[received_dossiers_count,
created_dossiers_count,
processed_dossiers_count,
notifications_count].reduce(:+) > 0
[@dossiers_en_instruction_count,
@dossiers_en_construction_count,
@created_dossiers_count].reduce(:+) > 0
end
def to_html
[libelle_description,
dossiers_en_instruction_description,
created_dossier_description,
processed_dossier_description,
notifications_description].compact.join('<br>')
end
private
def libelle_description
"<a href='#{@procedure_url}'><strong>#{libelle}</strong></a>"
end
def dossiers_en_instruction_description
case received_dossiers_count
def dossiers_en_construction_description
case @dossiers_en_construction_count
when 0
nil
when 1
"1 dossier est en cours d'instruction"
'dossier suivi en construction'
else
"#{received_dossiers_count} dossiers sont en cours d'instruction"
'dossiers suivis en construction'
end
end
def dossiers_en_instruction_description
case @dossiers_en_instruction_count
when 0
nil
when 1
"dossier est en cours d'instruction"
else
"dossiers sont en cours d'instruction"
end
end
def created_dossier_description
case created_dossiers_count
when 0
nil
when 1
'1 nouveau dossier a été déposé'
else
"#{created_dossiers_count} nouveaux dossiers ont été déposés"
end
end
formated_date = I18n.l(@start_date, format: '%d %B %Y')
def processed_dossier_description
case processed_dossiers_count
case @created_dossiers_count
when 0
nil
when 1
'1 dossier a été instruit'
"nouveau dossier a été déposé depuis le #{formated_date}"
else
"#{processed_dossiers_count} dossiers ont été instruits"
end
end
def notifications_description
case notifications_count
when 0
nil
when 1
'1 notification en attente sur les dossiers que vous suivez'
else
"#{notifications_count} notifications en attente sur les dossiers que vous suivez"
"nouveaux dossiers ont été déposés depuis le #{formated_date}"
end
end
end