63 lines
1.2 KiB
Ruby
63 lines
1.2 KiB
Ruby
class DossierSerializer < ActiveModel::Serializer
|
|
attributes :id,
|
|
:created_at,
|
|
:updated_at,
|
|
:archived,
|
|
:email,
|
|
:mandataire_social,
|
|
:state,
|
|
:simplified_state,
|
|
:initiated_at,
|
|
:received_at,
|
|
:processed_at,
|
|
:motivation,
|
|
:accompagnateurs,
|
|
:invites
|
|
|
|
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 simplified_state
|
|
object.decorate.display_state
|
|
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
|