' )">
## Displays the "Samples" grid
- <%
- trans.sa_session.refresh( request )
- is_admin = cntrller == 'requests_admin' and trans.user_is_admin()
- is_complete = request.is_complete
- is_rejected = request.is_rejected
- is_submitted = request.is_submitted
- is_unsubmitted = request.is_unsubmitted
- can_add_samples = request.is_unsubmitted
- can_delete_samples = not adding_new_samples and request.samples and ( ( is_admin and not is_complete ) or is_unsubmitted )
- can_edit_samples = request.samples and ( is_admin or not is_complete )
- can_select_datasets = is_admin and displayable_sample_widgets and ( is_submitted or is_complete )
- can_transfer_datasets = is_admin and request.samples and not request.is_rejected
- display_checkboxes = not adding_new_samples and ( is_complete or is_rejected or is_submitted )
- display_bar_code = request.samples and ( is_complete or is_rejected or is_submitted )
- display_datasets = request.samples and ( is_complete or is_submitted )
- %>
+<%
+ trans.sa_session.refresh( request )
+ is_admin = cntrller == 'requests_admin' and trans.user_is_admin()
+ is_complete = request.is_complete
+ is_rejected = request.is_rejected
+ is_submitted = request.is_submitted
+ is_unsubmitted = request.is_unsubmitted
+ if is_admin:
+ can_add_samples = not is_complete
+ else:
+ can_add_samples = is_unsubmitted
+ can_delete_samples = not adding_new_samples and request.samples and ( ( is_admin and not is_complete ) or is_unsubmitted )
+ can_edit_samples = request.samples and ( is_admin or not is_complete )
+ can_select_datasets = is_admin and displayable_sample_widgets and ( is_submitted or is_complete )
+ can_transfer_datasets = is_admin and request.samples and not request.is_rejected
+ display_checkboxes = not adding_new_samples and ( is_complete or is_rejected or is_submitted )
+ display_bar_code = request.samples and ( is_complete or is_rejected or is_submitted )
+ display_datasets = request.samples and ( is_complete or is_submitted )
+%>
${grid_header}
%if render_buttons and ( can_add_samples or can_edit_samples ):
diff --git a/templates/requests/common/edit_samples.mako b/templates/requests/common/edit_samples.mako
index 98cd7d998d4..458458aaa96 100644
--- a/templates/requests/common/edit_samples.mako
+++ b/templates/requests/common/edit_samples.mako
@@ -37,7 +37,10 @@
is_complete = request.is_complete
is_submitted = request.is_submitted
is_unsubmitted = request.is_unsubmitted
- can_add_samples = is_unsubmitted
+ if is_admin:
+ can_add_samples = not is_complete
+ else:
+ can_add_samples = is_unsubmitted
can_delete_samples = request.samples and not is_complete
can_edit_request = ( is_admin and not request.is_complete ) or request.is_unsubmitted
can_reject = is_admin and is_submitted
diff --git a/templates/requests/common/view_request.mako b/templates/requests/common/view_request.mako
index fae30863eff..b77b33ddb0c 100644
--- a/templates/requests/common/view_request.mako
+++ b/templates/requests/common/view_request.mako
@@ -22,13 +22,16 @@
is_complete = request.is_complete
is_submitted = request.is_submitted
is_unsubmitted = request.is_unsubmitted
- can_add_samples = is_unsubmitted
can_edit_request = ( is_admin and not request.is_complete ) or request.is_unsubmitted
can_delete_samples = request.samples and not is_complete
can_edit_samples = request.samples and ( is_admin or not is_complete )
can_reject = is_admin and is_submitted
can_submit = request.samples and is_unsubmitted
can_undelete = request.deleted
+ if is_admin:
+ can_add_samples = not is_complete
+ else:
+ can_add_samples = is_unsubmitted
%>
diff --git a/test/functional/test_sample_tracking.py b/test/functional/test_sample_tracking.py
index f260d72be32..25fa6f424d8 100644
--- a/test/functional/test_sample_tracking.py
+++ b/test/functional/test_sample_tracking.py
@@ -563,11 +563,12 @@ class TestFormsAndSampleTracking( TwillTestCase ):
state=request1.states.SUBMITTED,
strings_displayed=[ request1.name ] )
strings_displayed = [ request1.states.SUBMITTED,
- 'Reject this request' ]
- strings_not_displayed = [ 'Add sample' ]
+ 'Reject this request',
+ 'Add sample',
+ 'Edit samples' ]
self.view_request( cntrller='requests_admin',
request_id=self.security.encode_id( request1.id ),
- strings_not_displayed=strings_not_displayed )
+ strings_displayed=strings_displayed )
# Set bar codes for the samples
bar_codes = [ '10001', '10002', '10003' ]
strings_displayed_after_submit = [ 'Changes made to the samples have been saved.' ]