From 4844afa2f198fa4331b26ea9a755b182fe137fee Mon Sep 17 00:00:00 2001
From: Pete Andrew <peter.andrew@torchbox.com>
Date: Thu, 9 Apr 2020 15:25:12 +0100
Subject: [PATCH] Ref 1903: Improve display of screen application primary
 action

    - Added 'Change' link to 'Screening Status' sidebar block
    - Only display 'Screen application' primary action when application hasn't yet been screened
    - Added test to ensure primary action is displayed correctly for staff
---
 .../funds/templates/funds/includes/actions.html    |  4 +++-
 .../funds/includes/screening_status_block.html     |  2 +-
 hypha/apply/funds/tests/test_views.py              | 14 ++++++++++++++
 .../src/sass/apply/components/_link.scss           |  5 +++++
 4 files changed, 23 insertions(+), 2 deletions(-)

diff --git a/hypha/apply/funds/templates/funds/includes/actions.html b/hypha/apply/funds/templates/funds/includes/actions.html
index 3aca979d6..56c86171f 100644
--- a/hypha/apply/funds/templates/funds/includes/actions.html
+++ b/hypha/apply/funds/templates/funds/includes/actions.html
@@ -12,7 +12,9 @@
 {% endif %}
 {% endif %}
 
-<a data-fancybox data-src="#screen-application" class="button button--bottom-space button--primary button--full-width {% if screening_form.should_show %}is-not-disabled{% else %}is-disabled{% endif %}" href="#">Screen application</a>
+{% if not object.screening_status %}
+    <a data-fancybox data-src="#screen-application" class="button button--bottom-space button--primary button--full-width is-not-disabled" href="#">Screen application</a>
+{% endif %}
 
 {% if object.ready_for_determination %}
     {% include 'determinations/includes/determination_button.html' with submission=object class="button--bottom-space" draft_text="Complete draft determination" %}
diff --git a/hypha/apply/funds/templates/funds/includes/screening_status_block.html b/hypha/apply/funds/templates/funds/includes/screening_status_block.html
index b0ee680e1..6026ffa86 100644
--- a/hypha/apply/funds/templates/funds/includes/screening_status_block.html
+++ b/hypha/apply/funds/templates/funds/includes/screening_status_block.html
@@ -1,6 +1,6 @@
 <div class="sidebar__inner">
     <h5>Screening Status</h5>
     <p>
-        {{ object.screening_status|default:"Awaiting Screen status" }}
+        {{ object.screening_status|default:"Awaiting Screen status" }} <a data-fancybox data-src="#screen-application" class="link link--secondary-change" href="#">Change</a>
     </p>
 </div>
diff --git a/hypha/apply/funds/tests/test_views.py b/hypha/apply/funds/tests/test_views.py
index 9b3734a11..e4015cb94 100644
--- a/hypha/apply/funds/tests/test_views.py
+++ b/hypha/apply/funds/tests/test_views.py
@@ -251,6 +251,20 @@ class TestStaffSubmissionView(BaseSubmissionViewTestCase):
         assert_add_determination_not_displayed(submission, 'Add determination')
         assert_add_determination_not_displayed(submission, 'Complete draft determination')
 
+    def test_screen_application_primary_action_is_displayed(self):
+        # Submission not screened
+        response = self.get_page(self.submission)
+        buttons = BeautifulSoup(response.content, 'html5lib').find(class_='sidebar').find_all('a', text='Screen application')
+        self.assertEqual(len(buttons), 1)
+
+    def test_screen_application_primary_action_is_not_displayed(self):
+        # Submission screened
+        self.submission.screening_status = ScreeningStatusFactory()
+        self.submission.save()
+        response = self.get_page(self.submission)
+        buttons = BeautifulSoup(response.content, 'html5lib').find(class_='sidebar').find_all('a', text='Screen application')
+        self.assertEqual(len(buttons), 0)
+
 
 class TestReviewersUpdateView(BaseSubmissionViewTestCase):
     user_factory = StaffFactory
diff --git a/hypha/static_src/src/sass/apply/components/_link.scss b/hypha/static_src/src/sass/apply/components/_link.scss
index 195c1ca54..934e69953 100644
--- a/hypha/static_src/src/sass/apply/components/_link.scss
+++ b/hypha/static_src/src/sass/apply/components/_link.scss
@@ -260,4 +260,9 @@
             }
         }
     }
+
+    &--secondary-change {
+        font-size: 95%;
+        margin-left: 5px;
+    }
 }
-- 
GitLab