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

pulibrary / tigerdata-app / e9e1d56b-9fad-4f88-9a30-650eb058f3b9

30 Oct 2025 10:22PM UTC coverage: 79.713% (-11.6%) from 91.355%
e9e1d56b-9fad-4f88-9a30-650eb058f3b9

Pull #2125

circleci

JaymeeH
Replace layout
update request presenter
Pull Request #2125: Change layout of draft request details

3 of 12 new or added lines in 1 file covered. (25.0%)

272 existing lines in 21 files now uncovered.

2503 of 3140 relevant lines covered (79.71%)

197.68 hits per line

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

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

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

17
  def data_sponsor
3✔
18
    full_name(request.data_sponsor)
1✔
19
  end
20

21
  def data_manager
3✔
22
    full_name(request.data_manager)
2✔
23
  end
24

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

29
  def departments_list
3✔
NEW
30
    dept_list = []
×
NEW
31
    request.departments.each do |dept|
×
NEW
32
      dept_list << "#{dept['name']} (#{dept['code']})"
×
33
    end
NEW
34
    dept_list.join(", ")
×
35
  end
36

37
  def user_list
3✔
NEW
38
    usr_list = []
×
NEW
39
    request.user_roles.each do |usr|
×
NEW
40
      usr_list << "#{full_name(usr['uid'])} #{usr['role']}"
×
41
    end
NEW
42
    usr_list.join(", ")
×
43
  end
44

45
  def full_name(uid)
3✔
46
    return "" if uid.blank?
6✔
47
    user = User.find_by(uid: uid)
4✔
48
    user.display_name_safe.to_s
4✔
49
  end
50

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

69
  private
3✔
70

71
    def step1_css_suffix(controller_name, substep = nil)
3✔
72
      css_suffix = "-incomplete"
20✔
73
      if substep.nil?
20✔
74
        return "-current" if controller_name.start_with?("project_information")
10✔
75
        if step1_valid?
6✔
76
          css_suffix = "-completed"
×
77
        end
78
      elsif substep == "Basic Details"
10✔
79
        return "-current" if controller_name == "project_information"
10✔
80
        if step1_valid?
8✔
81
          css_suffix = "-completed"
×
82
        end
83
      end
84
      css_suffix
14✔
85
    end
86

87
    def step2_css_suffix(controller_name)
3✔
88
      return "-current" if controller_name == "roles_and_people"
10✔
89
      if step2_valid?
9✔
90
        "-completed"
×
91
      else
92
        "-incomplete"
9✔
93
      end
94
    end
95

96
    def step3_css_suffix(controller_name)
3✔
97
      return "-current" if controller_name == "storage_and_access"
10✔
98
      if step3_valid?
10✔
99
        "-completed"
×
100
      else
101
        "-incomplete"
10✔
102
      end
103
    end
104

105
    def step4_css_suffix(controller_name)
3✔
106
      return "-current" if controller_name == "review_and_submit"
10✔
107
      if step4_valid?
8✔
108
        "-completed"
×
109
      else
110
        "-incomplete"
8✔
111
      end
112
    end
113

114
    def step1_valid?
3✔
115
      return false if request.project_title.blank? || request.project_folder.blank? || request.project_purpose.blank? || request.description.blank? || request.departments.blank?
22✔
116
      true
×
117
    end
118

119
    def step2_valid?
3✔
120
      return false if request.data_manager.blank? || request.data_sponsor.blank?
9✔
121
      true
×
122
    end
123

124
    def step3_valid?
3✔
125
      return false if request.storage_size.nil?
10✔
126
      true
×
127
    end
128

129
    def step4_valid?
3✔
130
      step1_valid? && step2_valid? && step3_valid?
8✔
131
    end
132
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