Class: ProjectDashboardPresenter

Inherits:
ProjectShowPresenter show all
Includes:
ActionView::Helpers::DateHelper
Defined in:
app/presenters/project_dashboard_presenter.rb

Instance Attribute Summary

Attributes inherited from ProjectShowPresenter

#project, #project_metadata

Instance Method Summary collapse

Methods inherited from ProjectShowPresenter

#approved_by_display_name, #approved_by_uid, #approved_on, #created, #data_manager, #data_read_only_users, #data_read_write_users, #data_sponsor, #data_user_names, #data_users, #department_codes, #departments, #description, #formatted_quota_percentage, #formatted_storage_capacity, #globus, #hpc, #number_of_files, #project_directory, #project_id, #project_in_rails?, #project_purpose, #quota_percentage, #quota_usage, #requested_by_display_name, #requested_by_uid, #requested_on, #smb, #storage_capacity, #submission_provenance, #title, #to_xml, #updated, #user_has_access?, #xml_document, xml_presenter_class

Constructor Details

#initialize(project_data, current_user, project: nil) ⇒ ProjectDashboardPresenter

Constructor

Parameters:

  • project_data (Project or Hash)

    the project to be presented

  • current_user (User)

    the user currently logged in



10
11
12
# File 'app/presenters/project_dashboard_presenter.rb', line 10

def initialize(project_data, current_user, project: nil)
  super(project || rails_project(project_data), current_user, project_mf: project_data)
end

Instance Method Details

#last_activityObject



33
34
35
36
37
38
39
# File 'app/presenters/project_dashboard_presenter.rb', line 33

def last_activity
  if .updated_on.nil?
    "Not yet active"
  else
    "#{remove_about time_ago_in_words(.updated_on)} ago"
  end
end

#latest_file_list_timeObject



22
23
24
25
26
27
28
29
30
31
# File 'app/presenters/project_dashboard_presenter.rb', line 22

def latest_file_list_time
  requests = FileInventoryRequest.where(project_id: project.id).order(completion_time: :desc)
  if requests.empty?
    "No Downloads"
  elsif requests.first.completion_time
    "Prepared #{time_ago_in_words(requests.first.completion_time)} ago"
  else
    "Preparing now"
  end
end

#pathObject



51
52
53
# File 'app/presenters/project_dashboard_presenter.rb', line 51

def path
  project_directory
end

#role(user) ⇒ Object



41
42
43
44
45
46
47
48
49
# File 'app/presenters/project_dashboard_presenter.rb', line 41

def role(user)
  if data_sponsor.uid == user.uid
    "Sponsor"
  elsif data_manager.uid == user.uid
    "Data Manager"
  else
    "Data User"
  end
end

#typeObject



14
15
16
17
18
19
20
# File 'app/presenters/project_dashboard_presenter.rb', line 14

def type
  if storage_performance_expectations["approved"].nil?
    "Requested #{storage_performance_expectations['requested']}"
  else
    storage_performance_expectations["approved"]
  end
end