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

pulibrary / tigerdata-app / f82939ce-b3c2-4cd4-a6df-bfb45b001f9d

05 Nov 2025 05:08PM UTC coverage: 86.361% (-5.0%) from 91.403%
f82939ce-b3c2-4cd4-a6df-bfb45b001f9d

Pull #2144

circleci

bess
revert coverage reporter version for circleci
Pull Request #2144: upgrade mflux_dev to v0.18.0

2672 of 3094 relevant lines covered (86.36%)

414.37 hits per line

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

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

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

17
  def data_sponsor
4✔
18
    full_name(request.data_sponsor)
14✔
19
  end
20

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

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

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

38
  def user_list
4✔
39
    return "" if request.user_roles.blank?
14✔
40
    usr_list = []
11✔
41
    request.user_roles.each do |usr|
11✔
42
      name = full_name(usr["uid"])
11✔
43
      name += " read only" if usr["read_only"]
11✔
44
      usr_list << name
11✔
45
    end
46
    usr_list.join(", ")
11✔
47
  end
48

49
  def full_name(uid)
4✔
50
    return "" if uid.blank?
39✔
51
    user = User.find_by(uid: uid)
37✔
52
    user.display_name_safe.to_s
37✔
53
  end
54

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

73
  private
4✔
74

75
    def step1_css_suffix(controller_name, substep = nil)
4✔
76
      css_suffix = "-incomplete"
100✔
77
      if substep.nil?
100✔
78
        return "-current" if controller_name.start_with?("project_information")
50✔
79
        if step1_valid?
33✔
80
          css_suffix = "-completed"
12✔
81
        end
82
      elsif substep == "Basic Details"
50✔
83
        return "-current" if controller_name == "project_information"
50✔
84
        if step1_valid?
35✔
85
          css_suffix = "-completed"
12✔
86
        end
87
      end
88
      css_suffix
68✔
89
    end
90

91
    def step2_css_suffix(controller_name)
4✔
92
      return "-current" if controller_name == "roles_and_people"
50✔
93
      if step2_valid?
39✔
94
        "-completed"
7✔
95
      else
96
        "-incomplete"
32✔
97
      end
98
    end
99

100
    def step3_css_suffix(controller_name)
4✔
101
      return "-current" if controller_name == "storage_and_access"
50✔
102
      if step3_valid?
44✔
103
        "-completed"
9✔
104
      else
105
        "-incomplete"
35✔
106
      end
107
    end
108

109
    def step4_css_suffix(controller_name)
4✔
110
      return "-current" if controller_name == "review_and_submit"
50✔
111
      if step4_valid?
37✔
112
        "-completed"
×
113
      else
114
        "-incomplete"
37✔
115
      end
116
    end
117

118
    def step1_valid?
4✔
119
      return false if request.project_title.blank? || request.project_folder.blank? || request.project_purpose.blank? || request.description.blank? || request.departments.blank?
105✔
120
      true
33✔
121
    end
122

123
    def step2_valid?
4✔
124
      return false if request.data_manager.blank? || request.data_sponsor.blank?
48✔
125
      true
10✔
126
    end
127

128
    def step3_valid?
4✔
129
      return false if request.storage_size.nil?
47✔
130
      true
9✔
131
    end
132

133
    def step4_valid?
4✔
134
      step1_valid? && step2_valid? && step3_valid?
37✔
135
    end
136
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