Skip to content

Commit 43678ed

Browse files
committed
Make Education use simpler view pattern
1 parent ce18b9c commit 43678ed

2 files changed

Lines changed: 9 additions & 47 deletions

File tree

features/education.feature

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
@Education
12
Feature: Education page
23
Scenario: The page is accessible
34
Given I am logged in
@@ -28,6 +29,7 @@ Feature: Education page
2829
And I see "/education?change=True" as a link to change "Highest level of education" under "About you"
2930
When I click the link to change "Highest level of education" under "About you"
3031
Then I am on "/education?change=True"
32+
And I see "A-levels" selected
3133
When I fill in and submit my education with "GCSEs"
3234
Then I am on "/check-your-answers"
3335
And I see "GCSEs" as a response to "Highest level of education" under "About you"
Lines changed: 7 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,13 @@
1-
from django.shortcuts import render
2-
from django.urls import reverse
1+
from django.urls import reverse_lazy
32

43
from .question_base_view import QuestionBaseView
5-
6-
from ..models.education_response import EducationResponse
74
from ..forms.education_form import EducationForm
5+
from ..models.education_response import EducationResponse
86

97

108
class EducationView(QuestionBaseView):
11-
def get(self, request):
12-
response, _ = EducationResponse.objects.get_or_build(
13-
response_set=request.response_set
14-
)
15-
return render_template(
16-
request,
17-
EducationForm(instance=response)
18-
)
19-
20-
def post(self, request):
21-
response, _ = EducationResponse.objects.get_or_build(
22-
response_set=request.response_set
23-
)
24-
form = EducationForm(
25-
instance=response,
26-
data=request.POST
27-
)
28-
29-
if form.is_valid():
30-
response.value = form.cleaned_data["value"]
31-
response.save()
32-
return self.redirect_to_response_or_next_question(
33-
request,
34-
"questions:respiratory_conditions"
35-
)
36-
else:
37-
return render_template(
38-
request,
39-
form,
40-
status=422
41-
)
42-
43-
44-
def render_template(request, form, status=200):
45-
return render(
46-
request,
47-
"education.jinja",
48-
{
49-
"form": form,
50-
"back_link_url": reverse("questions:ethnicity")
51-
},
52-
status=status
53-
)
9+
template_name = "education.jinja"
10+
form_class = EducationForm
11+
model = EducationResponse
12+
success_url = reverse_lazy("questions:respiratory_conditions")
13+
back_link_url = reverse_lazy("questions:ethnicity")

0 commit comments

Comments
 (0)