Class: RequestPresenter

Inherits:
Object
  • Object
show all
Defined in:
app/presenters/request_presenter.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(request) ⇒ RequestPresenter

Returns a new instance of RequestPresenter.



4
5
6
# File 'app/presenters/request_presenter.rb', line 4

def initialize(request)
  @request = request
end

Instance Attribute Details

#requestObject (readonly)

Returns the value of attribute request.



3
4
5
# File 'app/presenters/request_presenter.rb', line 3

def request
  @request
end

Instance Method Details

#data_managerObject



21
22
23
# File 'app/presenters/request_presenter.rb', line 21

def data_manager
  full_name(request.data_manager)
end

#data_sponsorObject



17
18
19
# File 'app/presenters/request_presenter.rb', line 17

def data_sponsor
  full_name(request.data_sponsor)
end

#departments_listObject



29
30
31
32
33
34
35
36
# File 'app/presenters/request_presenter.rb', line 29

def departments_list
  return "" if request.departments.blank?
  dept_list = []
  request.departments.each do |dept|
    dept_list << "#{dept['name']} (#{dept['code']})"
  end
  dept_list.join(", ")
end

#eligible_to_edit?(user) ⇒ Boolean

Returns:

  • (Boolean)


8
9
10
11
12
13
14
15
# File 'app/presenters/request_presenter.rb', line 8

def eligible_to_edit?(user)
  return false if user.nil?
  if request.
    user.eligible_sysadmin?
  else
    user.uid == request.requested_by || user.eligible_sysadmin?
  end
end

#full_name(uid) ⇒ Object



49
50
51
52
53
# File 'app/presenters/request_presenter.rb', line 49

def full_name(uid)
  return "" if uid.blank?
  user = User.find_by(uid: uid)
  user.display_name_safe.to_s
end

#project_directoryObject



25
26
27
# File 'app/presenters/request_presenter.rb', line 25

def project_directory
  request.parent_folder.present? ? File.join(request.parent_folder, request.project_folder) : request.project_folder
end

Returns the correct CSS class suffix for the sidebar navigation progress for a given step/substep.



57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'app/presenters/request_presenter.rb', line 57

def sidebar_progress(controller, step, substep = nil)
  controller_name = controller.controller_name
  case step
  when 1
    step1_css_suffix(controller_name, substep)
  when 2
    step2_css_suffix(controller_name)
  when 3
    step3_css_suffix(controller_name)
  when 4
    step4_css_suffix(controller_name)
  else
    "-incomplete"
  end
end

#user_listObject



38
39
40
41
42
43
44
45
46
47
# File 'app/presenters/request_presenter.rb', line 38

def user_list
  return "" if request.user_roles.blank?
  usr_list = []
  request.user_roles.each do |usr|
    name = full_name(usr["uid"])
    name += " read only" if usr["read_only"]
    usr_list << name
  end
  usr_list.join(", ")
end