diff --git a/coldfront/core/user/views_/request_hub_views.py b/coldfront/core/user/views_/request_hub_views.py index 60764a19f0..05bda7c824 100644 --- a/coldfront/core/user/views_/request_hub_views.py +++ b/coldfront/core/user/views_/request_hub_views.py @@ -144,11 +144,19 @@ def get_faculty_storage_allocation_request(self): status__name__in=complete_status_names, *args ).order_by('-request_time') - # Add requested_amount_tb to each request for template display + # Add amounts to each request for template display for request in fsa_request_list_pending: request.requested_amount_tb = request.requested_amount_gb // 1000 + request.approved_amount_tb = ( + request.approved_amount_gb // 1000 + if request.approved_amount_gb else None + ) for request in fsa_request_list_complete: request.requested_amount_tb = request.requested_amount_gb // 1000 + request.approved_amount_tb = ( + request.approved_amount_gb // 1000 + if request.approved_amount_gb else None + ) fsa_request_obj.num = self.paginators fsa_request_obj.pending_queryset = self.create_paginator( diff --git a/coldfront/plugins/faculty_storage_allocations/templates/faculty_storage_allocations/approval/fsa_request_list_table.html b/coldfront/plugins/faculty_storage_allocations/templates/faculty_storage_allocations/approval/fsa_request_list_table.html index 7cadc6fc0a..4a4a7c731b 100644 --- a/coldfront/plugins/faculty_storage_allocations/templates/faculty_storage_allocations/approval/fsa_request_list_table.html +++ b/coldfront/plugins/faculty_storage_allocations/templates/faculty_storage_allocations/approval/fsa_request_list_table.html @@ -7,7 +7,7 @@ Project PI Name PI Email - Requested Amount (TB) + Amount (TB) Status @@ -22,7 +22,7 @@ {{ request_obj.project.name }} {{ request_obj.pi.first_name }} {{ request_obj.pi.last_name }} {{ request_obj.pi.email }} - {{ request_obj.requested_amount_tb }} TB + {{ request_obj.approved_amount_tb|default:request_obj.requested_amount_tb }} TB {% with request_status=request_obj.status.name %} {% include 'faculty_storage_allocations/approval/fsa_request_status_badge.html' with status=request_status %} diff --git a/coldfront/plugins/faculty_storage_allocations/tests/pytest/test_views/test_approval_views_integration.py b/coldfront/plugins/faculty_storage_allocations/tests/pytest/test_views/test_approval_views_integration.py index 79589c68b8..07d0c9ddc6 100644 --- a/coldfront/plugins/faculty_storage_allocations/tests/pytest/test_views/test_approval_views_integration.py +++ b/coldfront/plugins/faculty_storage_allocations/tests/pytest/test_views/test_approval_views_integration.py @@ -1076,3 +1076,52 @@ def test_list_filters_by_status( fsa_requests = list(response.context['fsa_requests']) assert request1 in fsa_requests assert request2 not in fsa_requests + + def test_list_includes_both_requested_and_approved_amounts_in_context( + self, client, test_project, test_pi, test_user + ): + """Test list view includes both requested_amount_tb and approved_amount_tb in context.""" + # Create request with only requested amount (no approved amount) + request1 = create_fsa_request( + status='Under Review', + project=test_project, + requester=test_user, + pi=test_pi, + requested_amount_gb=2000 + ) + + # Create request with approved amount different from requested + request2 = create_fsa_request( + status='Approved - Complete', + project=test_project, + requester=test_user, + pi=test_pi, + requested_amount_gb=5000 + ) + request2.approved_amount_gb = 3000 + request2.save() + + superuser = User.objects.create_superuser( + username='admin', + email='admin@test.com', + password='adminpass' + ) + client.force_login(superuser) + + url = reverse('faculty-storage-allocation-request-list') + response = client.get(url) + + # Get the requests from the paginated context + fsa_requests = list(response.context['fsa_requests']) + + # Find our requests in the list + req1_in_list = next(r for r in fsa_requests if r.pk == request1.pk) + req2_in_list = next(r for r in fsa_requests if r.pk == request2.pk) + + # Request 1: no approved amount, should show requested amount + assert req1_in_list.requested_amount_tb == 2 + assert req1_in_list.approved_amount_tb is None + + # Request 2: has approved amount, should show approved amount + assert req2_in_list.requested_amount_tb == 5 + assert req2_in_list.approved_amount_tb == 3