Merge pull request #819 from cisagov/ab/394-session-bug-fix

Session bug fix
This commit is contained in:
rachidatecs 2023-07-28 13:13:37 -04:00 committed by GitHub
commit 7209e74f41
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 5 deletions

View file

@ -145,7 +145,6 @@ class DomainApplicationTests(TestWithUser, WebTest):
# ---- TYPE PAGE ---- # ---- TYPE PAGE ----
type_form = type_page.form type_form = type_page.form
type_form["organization_type-organization_type"] = "federal" type_form["organization_type-organization_type"] = "federal"
# test next button and validate data # test next button and validate data
self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id)
type_result = type_page.form.submit() type_result = type_page.form.submit()
@ -161,6 +160,7 @@ class DomainApplicationTests(TestWithUser, WebTest):
# ---- FEDERAL BRANCH PAGE ---- # ---- FEDERAL BRANCH PAGE ----
# Follow the redirect to the next form page # Follow the redirect to the next form page
self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id) self.app.set_cookie(settings.SESSION_COOKIE_NAME, session_id)
federal_page = type_result.follow() federal_page = type_result.follow()
federal_form = federal_page.form federal_form = federal_page.form
federal_form["organization_federal-federal_type"] = "executive" federal_form["organization_federal-federal_type"] = "executive"

View file

@ -67,7 +67,7 @@ class ApplicationWizard(TemplateView):
URL_NAMESPACE = "application" URL_NAMESPACE = "application"
# name for accessing /application/<id>/edit # name for accessing /application/<id>/edit
EDIT_URL_NAME = "edit-application" EDIT_URL_NAME = "edit-application"
NEW_URL_NAME = "/register/"
# We need to pass our human-readable step titles as context to the templates. # We need to pass our human-readable step titles as context to the templates.
TITLES = { TITLES = {
Step.ORGANIZATION_TYPE: _("Type of organization"), Step.ORGANIZATION_TYPE: _("Type of organization"),
@ -144,6 +144,7 @@ class ApplicationWizard(TemplateView):
self._application = DomainApplication.objects.create( self._application = DomainApplication.objects.create(
creator=self.request.user, # type: ignore creator=self.request.user, # type: ignore
) )
self.storage["application_id"] = self._application.id self.storage["application_id"] = self._application.id
return self._application return self._application
@ -195,7 +196,6 @@ class ApplicationWizard(TemplateView):
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
"""This method handles GET requests.""" """This method handles GET requests."""
current_url = resolve(request.path_info).url_name current_url = resolve(request.path_info).url_name
# if user visited via an "edit" url, associate the id of the # if user visited via an "edit" url, associate the id of the
@ -213,12 +213,15 @@ class ApplicationWizard(TemplateView):
# send users "to the application wizard" without needing to # send users "to the application wizard" without needing to
# know which view is first in the list of steps. # know which view is first in the list of steps.
if self.__class__ == ApplicationWizard: if self.__class__ == ApplicationWizard:
# if starting a new application, clear the storage
if request.path_info == self.NEW_URL_NAME:
del self.storage
return self.goto(self.steps.first) return self.goto(self.steps.first)
self.steps.current = current_url self.steps.current = current_url
context = self.get_context_data() context = self.get_context_data()
context["forms"] = self.get_forms() context["forms"] = self.get_forms()
return render(request, self.template_name, context) return render(request, self.template_name, context)
def get_all_forms(self, **kwargs) -> list: def get_all_forms(self, **kwargs) -> list:
@ -242,7 +245,6 @@ class ApplicationWizard(TemplateView):
and from the database if `use_db` is True (provided that record exists). and from the database if `use_db` is True (provided that record exists).
An empty form will be provided if neither of those are true. An empty form will be provided if neither of those are true.
""" """
kwargs = { kwargs = {
"files": files, "files": files,
"prefix": self.steps.current, "prefix": self.steps.current,