demarches-normaliennes/app/serializers/dossier_serializer.rb
gregoirenovel d0a59058e8 Remove the mandataire_social guess
Rationale:
- is true for only 0.06% of Dossiers
- is not displayed anymore anyways
- will be a rare case for now
  * FC adoption is not insane
  * FC used more for personal than professional
    matters
  * not always the mandataires sociaux that fill
    dossiers for their companies, so not that
    relevant
- we can add it back later
2018-03-20 16:09:00 +01:00

88 lines
1.6 KiB
Ruby

class DossierSerializer < ActiveModel::Serializer
attributes :id,
:created_at,
:updated_at,
:archived,
:email,
:state,
:simplified_state,
:initiated_at,
:received_at,
:processed_at,
:motivation,
:accompagnateurs,
:invites
has_one :individual
has_one :entreprise
has_one :etablissement
has_many :cerfa
has_many :commentaires
has_many :champs_private
has_many :pieces_justificatives
has_many :types_de_piece_justificative
has_many :champs do
champs = object.champs + object.quartier_prioritaires + object.cadastres
if object.user_geometry.present?
champs << object.user_geometry
end
champs
end
def email
object.user.try(:email)
end
def state
case object.state
when 'en_construction'
'initiated'
when 'en_instruction'
'received'
when 'accepte'
'closed'
when 'refuse'
'refused'
when 'sans_suite'
'without_continuation'
else
object.state
end
end
def simplified_state
object.decorate.display_state
end
def initiated_at
object.en_construction_at
end
def received_at
object.en_instruction_at
end
def accompagnateurs
object.followers_gestionnaires.pluck(:email)
end
def invites
object.invites_gestionnaires.pluck(:email)
end
private
def user_geometry(dossier)
{
value: dossier.geometry,
type_de_champ: {
id: -1,
libelle: 'user_geometry',
type_champ: 'user_geometry',
order_place: -1,
descripton: ''
}
}
end
end