Class: Workarea::Admin::ChangesetViewModel

Inherits:
ApplicationViewModel
  • Object
show all
Defined in:
app/view_models/workarea/admin/changeset_view_model.rb

Instance Method Summary collapse

Instance Method Details

#currency_change?(field, value) ⇒ Boolean

Returns:

  • (Boolean)


30
31
32
33
34
35
36
# File 'app/view_models/workarea/admin/changeset_view_model.rb', line 30

def currency_change?(field, value)
  field = field.to_s

  !!releasable.class.fields[field] &&
    releasable.class.fields[field].options[:type] == Money &&
    value.is_a?(Hash)
end

#localized_change?(field, value) ⇒ Boolean

Returns:

  • (Boolean)


22
23
24
25
26
27
28
# File 'app/view_models/workarea/admin/changeset_view_model.rb', line 22

def localized_change?(field, value)
  field = field.to_s

  !!releasable.class.fields[field] &&
    !!releasable.class.fields[field].options[:localize] &&
    value.is_a?(Hash)
end

#nameObject



8
9
10
11
12
13
14
15
# File 'app/view_models/workarea/admin/changeset_view_model.rb', line 8

def name
  [root, releasable]
    .reject(&:blank?)
    .uniq
    .map(&:name)
    .reject(&:blank?)
    .join(' - ')
end

#new_value_for(field) ⇒ Object



38
39
40
# File 'app/view_models/workarea/admin/changeset_view_model.rb', line 38

def new_value_for(field)
  get_localized_value(field, changeset[field])
end

#old_value_for(field) ⇒ Object



42
43
44
45
46
47
48
49
50
# File 'app/view_models/workarea/admin/changeset_view_model.rb', line 42

def old_value_for(field)
  if release.previous.present?
    old_value_from_release_for(release.previous, field)
  elsif release.undoes?
    old_value_from_release_for(release.undoes, field)
  else
    current_releasable.send(field)
  end
end

#publish_humanizedObject



60
61
62
63
64
65
66
67
68
# File 'app/view_models/workarea/admin/changeset_view_model.rb', line 60

def publish_humanized
  if release.published?
    t('workarea.admin.changesets.published_on')
  elsif release.scheduled?
    t('workarea.admin.changesets.publishes_on')
  else
    t('workarea.admin.changesets.unscheduled')
  end
end

#releasableObject



4
5
6
# File 'app/view_models/workarea/admin/changeset_view_model.rb', line 4

def releasable
  @releasable ||= Mongoid::DocumentPath.find(model.document_path)
end

#release_dateObject



52
53
54
55
56
57
58
# File 'app/view_models/workarea/admin/changeset_view_model.rb', line 52

def release_date
  if release.scheduled?
    release.publish_at
  elsif release.published?
    release.published_at
  end
end

#rootObject



17
18
19
20
# File 'app/view_models/workarea/admin/changeset_view_model.rb', line 17

def root
  return @root if defined?(@root)
  @root = Mongoid::DocumentPath.find(model.document_path.take(1)) rescue nil
end