scinote-web/app/serializers/form_field_value_serializer.rb

35 lines
1.2 KiB
Ruby

# frozen_string_literal: true
class FormFieldValueSerializer < ActiveModel::Serializer
include Canaid::Helpers::PermissionsHelper
attributes :id, :form_field_id, :type, :value, :submitted_at, :submitted_by_full_name,
:unit, :not_applicable, :selection, :datetime, :datetime_to
def submitted_by_full_name
object.submitted_by.full_name
end
def submitted_at
I18n.l(object.submitted_at, format: :full) if object.submitted_at
end
def value
if object.type == 'FormRepositoryRowsFieldValue'
object.value.map do |value|
row_code = "#{RepositoryRow::ID_PREFIX}#{value['id']}"
repository = Repository.find_by(id: value['repository_id'])
value[:has_access] = repository.nil? || can_read_repository?(scope[:user], repository)
value[:name] = if value[:has_access]
"#{value['name']} (#{row_code})"
else
I18n.t('my_modules.assigned_items.repository.private_repository_row_name', repository_row_code: "#{RepositoryRow::ID_PREFIX}#{value['id']}")
end
value
end
else
object.value
end
end
end