Class: Workarea::Admin::TimelineViewModel

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

Instance Method Summary collapse

Instance Method Details

#activityObject



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

def activity
  @activity ||= ActivityViewModel.new(nil, id: model.id)
end

#activity_by_dayObject



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

def activity_by_day
  @days ||= activity.entries.reduce({}) do |memo, entry|
    day = entry.created_at.to_date
    memo[day] ||= []
    memo[day] << entry
    memo
  end
end

#empty?Boolean

Returns:

  • (Boolean)


35
36
37
# File 'app/view_models/workarea/admin/timeline_view_model.rb', line 35

def empty?
  upcoming_changesets.empty? && activity.entries.empty?
end

#subjectObject



39
40
41
# File 'app/view_models/workarea/admin/timeline_view_model.rb', line 39

def subject
  @subject ||= ApplicationController.wrap_in_view_model(model, options)
end

#today_has_activityObject



31
32
33
# File 'app/view_models/workarea/admin/timeline_view_model.rb', line 31

def today_has_activity
  activity_by_day[Time.zone.today].present?
end

#unscheduled_changesetsObject



12
13
14
15
16
# File 'app/view_models/workarea/admin/timeline_view_model.rb', line 12

def unscheduled_changesets
  @unscheduled_changesets ||= ChangesetViewModel.wrap(
    unscheduled_model_changesets + unscheduled_content_changesets
  )
end

#upcoming_changesetsObject



4
5
6
7
8
9
10
# File 'app/view_models/workarea/admin/timeline_view_model.rb', line 4

def upcoming_changesets
  @upcoming_changesets ||= ChangesetViewModel.wrap(
    (model_changesets + content_changesets)
      .sort { |c| c.release.publish_at }
      .reverse
  )
end