Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
refactor(views): integrate verifier selection form into flow
Browse files Browse the repository at this point in the history
Make eligibility index handle the EligibilityVerifierSelectionForm, and
remove previous hard-coded logic in core/views.py for setting the
verifier.
angela-tran committed Mar 23, 2022

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
1 parent 92a5229 commit adcd072
Showing 4 changed files with 31 additions and 25 deletions.
2 changes: 1 addition & 1 deletion benefits/core/views.py
Original file line number Diff line number Diff line change
@@ -61,7 +61,7 @@ def index(request):
def agency_index(request, agency):
"""View handler for an agency entry page."""
session.reset(request)
session.update(request, agency=agency, verifier=agency.eligibility_verifiers.all()[0], origin=agency.index_url)
session.update(request, agency=agency, origin=agency.index_url)

page = viewmodels.Page(
content_title=_index_content_title(),
50 changes: 28 additions & 22 deletions benefits/eligibility/views.py
Original file line number Diff line number Diff line change
@@ -8,38 +8,44 @@
from django.utils.translation import pgettext, gettext as _

from benefits.core import middleware, recaptcha, session, viewmodels
from benefits.core.models import EligibilityVerifier
from benefits.core.views import PageTemplateResponse, _index_image
from . import analytics, api, forms


@decorator_from_middleware(middleware.AgencySessionRequired)
@decorator_from_middleware(middleware.VerifierSessionRequired)
def index(request):
"""View handler for the eligibility verification getting started screen."""
"""View handler for the eligibility verifier selection form."""

session.update(request, eligibility_types=[], origin=reverse("eligibility:index"))
agency = session.agency(request)

page = viewmodels.Page(
title=_("eligibility.pages.index.title"),
content_title=_("eligibility.pages.index.content_title"),
media=[
viewmodels.MediaItem(
icon=viewmodels.Icon("idcardcheck", pgettext("image alt text", "core.icons.idcardcheck")),
heading=_("eligibility.pages.index.items[0].title"),
details=_("eligibility.pages.index.items[0].text"),
),
viewmodels.MediaItem(
icon=viewmodels.Icon("bankcardcheck", pgettext("image alt text", "core.icons.bankcardcheck")),
heading=_("eligibility.pages.index.items[1].title"),
details=_("eligibility.pages.index.items[1].text"),
),
],
paragraphs=[_("eligibility.pages.index.p[0]")],
image=_index_image(),
button=viewmodels.Button.primary(text=_("eligibility.pages.index.button"), url=reverse("eligibility:confirm")),
)
eligibility_start = reverse("eligibility:start")

return PageTemplateResponse(request, page)
if request.method == "POST":
form = forms.EligibilityVerifierSelectionForm(data=request.POST, agency=agency)

if not form.is_valid():
return None

verifier_id = form.cleaned_data.get("verifier")
verifier = EligibilityVerifier.objects.get(id=verifier_id)
session.update(request, verifier=verifier)

return redirect(eligibility_start)
else:
if agency.eligibility_verifiers.count() == 1:
verifier = agency.eligibility_verifiers.first()
session.update(request, verifier=verifier)
return redirect(eligibility_start)
else:
page = viewmodels.Page(
title=_("eligibility.pages.index.title"),
content_title=_("eligibility.pages.index.content_title"),
forms=forms.EligibilityVerifierSelectionForm(agency=agency),
image=_index_image(),
)
return PageTemplateResponse(request, page)


@decorator_from_middleware(middleware.AgencySessionRequired)
2 changes: 1 addition & 1 deletion benefits/locale/en/LC_MESSAGES/django.po
Original file line number Diff line number Diff line change
@@ -265,7 +265,7 @@ msgstr "Getting started"

#: benefits/eligibility/views.py:23
msgid "eligibility.pages.index.content_title"
msgstr "Great, you’ll need two things before we get started..."
msgstr "Select the discount option that best applies to you:"

#: benefits/eligibility/views.py:26 benefits/enrollment/views.py:31
msgctxt "image alt text"
2 changes: 1 addition & 1 deletion benefits/locale/es/LC_MESSAGES/django.po
Original file line number Diff line number Diff line change
@@ -267,7 +267,7 @@ msgstr "Preparación"

#: benefits/eligibility/views.py:23
msgid "eligibility.pages.index.content_title"
msgstr "Genial, necesitarás dos cosas antes de comenzar..."
msgstr "TODO"

#: benefits/eligibility/views.py:26 benefits/enrollment/views.py:31
msgctxt "image alt text"

0 comments on commit adcd072

Please sign in to comment.