• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pulibrary / tigerdata-app / 3adf0141-f9b7-4323-942e-2224cea0bc77

31 Oct 2025 04:31PM UTC coverage: 91.372% (+0.02%) from 91.355%
3adf0141-f9b7-4323-942e-2224cea0bc77

Pull #2125

circleci

JaymeeH
update system specs
Pull Request #2125: Change layout of draft request details

13 of 14 new or added lines in 1 file covered. (92.86%)

486 existing lines in 30 files now uncovered.

2817 of 3083 relevant lines covered (91.37%)

479.14 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

97.4
/app/presenters/request_presenter.rb
1
# frozen_string_literal: true
2
class RequestPresenter
5✔
3
  attr_reader :request
5✔
4
  def initialize(request)
5✔
5
    @request = request
105✔
6
  end
7

8
  def eligible_to_edit?(user)
5✔
9
    return false if user.nil?
22✔
10
    if request.submitted?
22✔
11
      user.eligible_sysadmin?
12✔
12
    else
13
      user.uid == request.requested_by || user.eligible_sysadmin?
10✔
14
    end
15
  end
16

17
  def data_sponsor
5✔
18
    full_name(request.data_sponsor)
13✔
19
  end
20

21
  def data_manager
5✔
22
    full_name(request.data_manager)
14✔
23
  end
24

25
  def project_directory
5✔
NEW
26
    request.parent_folder.present? ? File.join(request.parent_folder, request.project_folder) : request.project_folder
12✔
27
  end
28

29
  def departments_list
5✔
30
    return "" if request.departments.blank?
14✔
31
    dept_list = []
12✔
32
    request.departments.each do |dept|
12✔
33
      dept_list << "#{dept['name']} (#{dept['code']})"
21✔
34
    end
35
    dept_list.join(", ")
12✔
36
  end
37

38
  def user_list
5✔
39
    return "" if request.user_roles.blank?
14✔
40
    usr_list = []
10✔
41
    request.user_roles.each do |usr|
10✔
42
      usr_list << "#{full_name(usr['uid'])} #{usr['role']}"
10✔
43
    end
44
    usr_list.join(", ")
10✔
45
  end
46

47
  def full_name(uid)
5✔
48
    return "" if uid.blank?
40✔
49
    user = User.find_by(uid: uid)
36✔
50
    user.display_name_safe.to_s
36✔
51
  end
52

53
  # Returns the correct CSS class suffix for the sidebar navigation progress for a given
54
  # step/substep.
55
  def sidebar_progress(controller, step, substep = nil)
5✔
56
    controller_name = controller.controller_name
270✔
57
    case step
270✔
58
    when 1
59
      step1_css_suffix(controller_name, substep)
108✔
60
    when 2
61
      step2_css_suffix(controller_name)
54✔
62
    when 3
63
      step3_css_suffix(controller_name)
54✔
64
    when 4
65
      step4_css_suffix(controller_name)
54✔
66
    else
67
      "-incomplete"
×
68
    end
69
  end
70

71
  private
5✔
72

73
    def step1_css_suffix(controller_name, substep = nil)
5✔
74
      css_suffix = "-incomplete"
108✔
75
      if substep.nil?
108✔
76
        return "-current" if controller_name.start_with?("project_information")
54✔
77
        if step1_valid?
35✔
78
          css_suffix = "-completed"
12✔
79
        end
80
      elsif substep == "Basic Details"
54✔
81
        return "-current" if controller_name == "project_information"
54✔
82
        if step1_valid?
37✔
83
          css_suffix = "-completed"
12✔
84
        end
85
      end
86
      css_suffix
72✔
87
    end
88

89
    def step2_css_suffix(controller_name)
5✔
90
      return "-current" if controller_name == "roles_and_people"
54✔
91
      if step2_valid?
43✔
92
        "-completed"
7✔
93
      else
94
        "-incomplete"
36✔
95
      end
96
    end
97

98
    def step3_css_suffix(controller_name)
5✔
99
      return "-current" if controller_name == "storage_and_access"
54✔
100
      if step3_valid?
48✔
101
        "-completed"
9✔
102
      else
103
        "-incomplete"
39✔
104
      end
105
    end
106

107
    def step4_css_suffix(controller_name)
5✔
108
      return "-current" if controller_name == "review_and_submit"
54✔
109
      if step4_valid?
40✔
110
        "-completed"
×
111
      else
112
        "-incomplete"
40✔
113
      end
114
    end
115

116
    def step1_valid?
5✔
117
      return false if request.project_title.blank? || request.project_folder.blank? || request.project_purpose.blank? || request.description.blank? || request.departments.blank?
112✔
118
      true
33✔
119
    end
120

121
    def step2_valid?
5✔
122
      return false if request.data_manager.blank? || request.data_sponsor.blank?
52✔
123
      true
10✔
124
    end
125

126
    def step3_valid?
5✔
127
      return false if request.storage_size.nil?
51✔
128
      true
9✔
129
    end
130

131
    def step4_valid?
5✔
132
      step1_valid? && step2_valid? && step3_valid?
40✔
133
    end
134
end
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc