diff --git a/caseworker/advice/services.py b/caseworker/advice/services.py
index e89479fea0..0c9b056ef2 100644
--- a/caseworker/advice/services.py
+++ b/caseworker/advice/services.py
@@ -374,6 +374,23 @@ def post_approval_advice(request, case, data, level="user-advice"):
return response.json(), response.status_code
+def post_f680_approval_advice(request, case, data, level="user-advice"):
+ json = [
+ {
+ "type": "proviso" if data.get("proviso", False) else "approve",
+ "text": data["approval_reasons"],
+ "proviso": data.get("proviso", ""),
+ "note": data.get("instructions_to_exporter", ""),
+ "footnote_required": True if data.get("footnote_details") else False,
+ "footnote": data.get("footnote_details", ""),
+ "denial_reasons": [],
+ }
+ ]
+ response = client.post(request, f"/cases/{case['id']}/{level}/", json)
+ response.raise_for_status()
+ return response.json(), response.status_code
+
+
def post_refusal_advice(request, case, data, level="user-advice"):
json = [
{
diff --git a/caseworker/advice/views/approval.py b/caseworker/advice/views/approval.py
index e9531a282a..8155be6b7f 100644
--- a/caseworker/advice/views/approval.py
+++ b/caseworker/advice/views/approval.py
@@ -77,6 +77,8 @@ def get_context_data(self, **kwargs):
"Unexpected error adding approval advice",
)
def post_approval_advice(self, data):
+ if self.case['case_type']['reference']['key'] == 'f680':
+ return services.post_f680_approval_advice(self.request, self.case, data)
return services.post_approval_advice(self.request, self.case, data)
def get_payload(self, form_dict):
diff --git a/caseworker/advice/views/mixins.py b/caseworker/advice/views/mixins.py
index 08d2b11a2c..8bfc265d11 100644
--- a/caseworker/advice/views/mixins.py
+++ b/caseworker/advice/views/mixins.py
@@ -46,10 +46,10 @@ def caseworker(self):
@property
def goods(self):
- for index, good_on_application in enumerate(self.case["data"]["goods"], start=1):
+ for index, good_on_application in enumerate(self.case["data"].get("goods", []), start=1):
good_on_application["line_number"] = index
- return self.case["data"]["goods"]
+ return self.case["data"].get("goods", [])
def get_context(self, **kwargs):
return {}
diff --git a/caseworker/advice/views/views.py b/caseworker/advice/views/views.py
index 9fd9e8bd71..6a9ee3418e 100644
--- a/caseworker/advice/views/views.py
+++ b/caseworker/advice/views/views.py
@@ -139,7 +139,7 @@ class AdviceDetailView(LoginRequiredMixin, CaseTabsMixin, CaseContextMixin, DESN
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
my_advice = services.get_my_advice(self.case.advice, self.caseworker_id, self.caseworker["team"]["alias"])
- nlr_products = services.filter_nlr_products(self.case["data"]["goods"])
+ nlr_products = services.filter_nlr_products(self.case["data"].get("goods", []))
advice_completed = services.unadvised_countries(self.caseworker, self.case) == {}
title = f"View recommendation for this case - {self.case.reference_code} - {self.case.organisation['name']}"
diff --git a/caseworker/core/rules.py b/caseworker/core/rules.py
index 479d133769..32fff2631d 100644
--- a/caseworker/core/rules.py
+++ b/caseworker/core/rules.py
@@ -35,6 +35,8 @@ def get_logged_in_caseworker(request):
@rules.predicate
def has_available_sub_statuses(request, case):
+ if case.reference != "siel":
+ return False
return bool(get_case_sub_statuses(request, case["id"]))
diff --git a/caseworker/f680/templates/f680/case/recommendation/recommendation.html b/caseworker/f680/templates/f680/case/recommendation/recommendation.html
new file mode 100644
index 0000000000..fbbb70ce32
--- /dev/null
+++ b/caseworker/f680/templates/f680/case/recommendation/recommendation.html
@@ -0,0 +1,9 @@
+{% extends 'layouts/case.html' %}
+
+
+{% block details %}
+
+
+Make recommendation
+
+{% endblock %}
diff --git a/caseworker/f680/urls.py b/caseworker/f680/urls.py
index 6377f2fe62..ad6c025234 100644
--- a/caseworker/f680/urls.py
+++ b/caseworker/f680/urls.py
@@ -11,4 +11,9 @@
views.CaseDetailView.as_view(),
name="details",
),
+ path(
+ "recommendation/",
+ views.CaseRecommendationView.as_view(),
+ name="recommendation",
+ ),
]
diff --git a/caseworker/f680/views.py b/caseworker/f680/views.py
index 26bbde145d..bbd1fd60d3 100644
--- a/caseworker/f680/views.py
+++ b/caseworker/f680/views.py
@@ -25,3 +25,20 @@ def get_context_data(self, **kwargs):
self.case["data"]["submitted_by"] = " ".join([submitted_by["first_name"], submitted_by["last_name"]])
context_data["case"] = self.case
return context_data
+
+
+class CaseRecommendationView(LoginRequiredMixin, CaseworkerMixin, TemplateView):
+ template_name = "f680/case/recommendation/recommendation.html"
+
+ def setup(self, request, *args, **kwargs):
+ super().setup(request, *args, **kwargs)
+
+ self.case_id = str(kwargs["pk"])
+ self.case = get_case(request, self.case_id)
+ self.queue_id = kwargs["queue_pk"]
+ self.queue = get_queue(request, self.queue_id)
+
+ def get_context_data(self, **kwargs):
+ context_data = super().get_context_data(**kwargs)
+ context_data["case"] = self.case
+ return context_data