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

pulibrary / tigerdata-app / a61b3af4-7476-4c06-9800-c86558c32d15

13 Nov 2025 01:29PM UTC coverage: 88.421% (-3.1%) from 91.481%
a61b3af4-7476-4c06-9800-c86558c32d15

push

circleci

web-flow
Updated Search results to show Project information straight from Mediaflux (#2191)

Although the query itself was against Mediaflux, the details for each
project were still coming from our Rails database. This PR updates the
search feature to use the project details from Mediaflux instead. This
has the benefit of fixing the project path that we are showing.

Closes #2127

0 of 22 new or added lines in 2 files covered. (0.0%)

551 existing lines in 31 files now uncovered.

2772 of 3135 relevant lines covered (88.42%)

483.48 hits per line

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

30.43
/app/controllers/edit_requests_controller.rb
1
# frozen_string_literal: true
UNCOV
2
class EditRequestsController < ApplicationController
2✔
UNCOV
3
  layout "edit_request"
2✔
UNCOV
4
  before_action :set_breadcrumbs
2✔
5

UNCOV
6
  before_action :set_request_model, only: %i[edit update]
2✔
UNCOV
7
  before_action :check_access
2✔
8

9
  # GET /edit_requests/1/edit
UNCOV
10
  def edit
2✔
UNCOV
11
    add_breadcrumb(@request_model.project_title, request_path(@request_model))
×
UNCOV
12
    add_breadcrumb("Edit Submitted Request")
×
UNCOV
13
  end
14

15
  # PATCH/PUT /edit_requests/1 or /edit_requests/1.json
UNCOV
16
  def update
2✔
UNCOV
17
    respond_to do |format|
×
UNCOV
18
      if @request_model.update(request_params) && @request_model.valid_to_submit?
×
UNCOV
19
        format.html { redirect_to request_url(@request_model), notice: I18n.t(:successful_update) }
×
UNCOV
20
        format.json { render :show, status: :ok, location: @request_model }
×
UNCOV
21
      else
UNCOV
22
        format.html { render :edit, status: :unprocessable_entity }
×
UNCOV
23
        format.json { render json: @request_model.errors, status: :unprocessable_entity }
×
UNCOV
24
      end
UNCOV
25
    end
UNCOV
26
  end
27

UNCOV
28
  private
2✔
29

30
    # Use callbacks to share common setup or constraints between actions.
UNCOV
31
    def set_request_model
2✔
UNCOV
32
      @princeton_departments = Affiliation.all
×
UNCOV
33
      @project_purposes = [["Research", "research"], ["Administrative", "administrative"], ["Teaching", "teaching"]]
×
UNCOV
34
      @request_model = Request.find(params[:id])
×
UNCOV
35
    end
36

37
    # Only allow a list of trusted parameters through.
UNCOV
38
    def request_params
2✔
UNCOV
39
      request_params = params.fetch(:request, {}).permit(:request_title, :project_title, :state, :data_sponsor, :data_manager,
×
UNCOV
40
                                        :description, :project_purpose, :parent_folder, :project_folder, :project_id, :quota,
UNCOV
41
                                        :requested_by, :storage_size, :storage_unit, :number_of_files, :hpc, :smb, :globus,
UNCOV
42
                                        user_roles: [], departments: [])
43

UNCOV
44
      if request_params[:departments].present?
×
UNCOV
45
        request_params[:departments] = request_params[:departments].compact_blank.map { |dep_str| JSON.parse(dep_str) }
×
UNCOV
46
      end
UNCOV
47
      if request_params[:user_roles].present?
×
48
        request_params[:user_roles] = request_params[:user_roles].compact_blank.map { |role_str| JSON.parse(role_str) }
×
UNCOV
49
      end
UNCOV
50
      move_approved_values(request_params)
×
UNCOV
51
    end
52

UNCOV
53
    def move_approved_values(request_params)
2✔
UNCOV
54
      if request_params[:quota].present?
×
UNCOV
55
        request_params[:approved_quota] = request_params.delete(:quota)
×
UNCOV
56
      end
UNCOV
57
      if request_params[:storage_size].present?
×
58
        request_params[:approved_storage_size] = request_params.delete(:storage_size)
×
UNCOV
59
      end
UNCOV
60
      if request_params[:storage_unit].present?
×
61
        request_params[:approved_storage_unit] = request_params.delete(:storage_unit)
×
UNCOV
62
      end
UNCOV
63
      request_params
×
UNCOV
64
    end
65

UNCOV
66
    def set_breadcrumbs
2✔
UNCOV
67
      add_breadcrumb("Dashboard", dashboard_path)
×
UNCOV
68
      add_breadcrumb("Requests", requests_path)
×
UNCOV
69
    end
70

UNCOV
71
    def check_access
2✔
UNCOV
72
      return if user_eligible_to_modify_request?
×
73

74
      # request can not be modified by this user, redirect to the request
UNCOV
75
      flash[:notice] = I18n.t(:no_modify_submitted)
×
UNCOV
76
      redirect_to request_path(@request_model)
×
UNCOV
77
    end
78

UNCOV
79
    def user_eligible_to_modify_request?
2✔
80
      # elevated privs for the current user
UNCOV
81
      if current_user.sysadmin || (current_user.developer && !Rails.env.production?)
×
UNCOV
82
        true
×
UNCOV
83
      else
UNCOV
84
        false
×
UNCOV
85
      end
UNCOV
86
    end
UNCOV
87
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

© 2026 Coveralls, Inc