scinote-web/app/models/form_datetime_field_value.rb

36 lines
850 B
Ruby

# frozen_string_literal: true
class FormDatetimeFieldValue < FormFieldValue
def value=(val)
if val.is_a?(Array)
self.datetime = val[0]
self.datetime_to = val[1]
else
self.datetime = val
end
end
def value
range? ? [datetime, datetime_to] : datetime
end
def range?
datetime_to.present?
end
def formatted
if form_field.data['time']
range? ? [datetime&.utc, datetime_to&.utc].join(' - ') : datetime&.utc.to_s
else
range? ? [datetime&.to_date, datetime_to&.to_date].join(' - ') : datetime&.to_date.to_s
end
end
def formatted_localize
format = form_field.data['time'] ? :full : :full_date
from = datetime ? I18n.l(datetime, format: format) : ''
to = datetime_to ? I18n.l(datetime_to, format: format) : ''
range? ? [from, to].join(' - ') : from
end
end