autofill user data even if request does not exist yet
This commit is contained in:
parent
f68e5a5ed2
commit
239dcb90a1
@ -33,10 +33,8 @@ class JEDIRequestFlow(object):
|
|||||||
def _form(self):
|
def _form(self):
|
||||||
if self.is_post:
|
if self.is_post:
|
||||||
return self.form_class()(self.post_data)
|
return self.form_class()(self.post_data)
|
||||||
elif self.request:
|
|
||||||
return self.form_class()(data=self.current_step_data)
|
|
||||||
else:
|
else:
|
||||||
return self.form_class()()
|
return self.form_class()(data=self.current_step_data)
|
||||||
|
|
||||||
def validate(self):
|
def validate(self):
|
||||||
return self.form.validate()
|
return self.form.validate()
|
||||||
@ -63,15 +61,12 @@ class JEDIRequestFlow(object):
|
|||||||
# maps user data to fields in OrgForm; this should be moved into the
|
# maps user data to fields in OrgForm; this should be moved into the
|
||||||
# request initialization process when we have a request schema, or we just
|
# request initialization process when we have a request schema, or we just
|
||||||
# shouldn't record this data on the request
|
# shouldn't record this data on the request
|
||||||
def map_current_user(self):
|
def map_user_data(self, user):
|
||||||
if self.request:
|
return {
|
||||||
return {
|
"fname_request": user.first_name,
|
||||||
"fname_request": self.request.creator.first_name,
|
"lname_request": user.last_name,
|
||||||
"lname_request": self.request.creator.last_name,
|
"email_request": user.email
|
||||||
"email_request": self.request.creator.email
|
}
|
||||||
}
|
|
||||||
else:
|
|
||||||
return {}
|
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def current_step_data(self):
|
def current_step_data(self):
|
||||||
@ -85,9 +80,11 @@ class JEDIRequestFlow(object):
|
|||||||
data = self.request.body
|
data = self.request.body
|
||||||
if self.form_section == "information_about_you":
|
if self.form_section == "information_about_you":
|
||||||
form_data = self.request.body.get(self.form_section, {})
|
form_data = self.request.body.get(self.form_section, {})
|
||||||
data = { **self.map_current_user(), **form_data }
|
data = { **self.map_user_data(self.request.creator), **form_data }
|
||||||
else:
|
else:
|
||||||
data = self.request.body.get(self.form_section, {})
|
data = self.request.body.get(self.form_section, {})
|
||||||
|
elif self.form_section == "information_about_you":
|
||||||
|
data = self.map_user_data(self.current_user)
|
||||||
|
|
||||||
return defaultdict(lambda: defaultdict(lambda: "Input required"), data)
|
return defaultdict(lambda: defaultdict(lambda: "Input required"), data)
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ from atst.domain.exceptions import UnauthorizedError
|
|||||||
|
|
||||||
@requests_bp.route("/requests/new/<int:screen>", methods=["GET"])
|
@requests_bp.route("/requests/new/<int:screen>", methods=["GET"])
|
||||||
def requests_form_new(screen):
|
def requests_form_new(screen):
|
||||||
jedi_flow = JEDIRequestFlow(screen, request=None)
|
jedi_flow = JEDIRequestFlow(screen, request=None, current_user=g.current_user)
|
||||||
|
|
||||||
return render_template(
|
return render_template(
|
||||||
"requests/screen-%d.html" % int(screen),
|
"requests/screen-%d.html" % int(screen),
|
||||||
|
@ -80,6 +80,17 @@ def test_creator_info_is_autopopulated(monkeypatch, client, user_session):
|
|||||||
assert 'value="{}"'.format(user.email) in body
|
assert 'value="{}"'.format(user.email) in body
|
||||||
|
|
||||||
|
|
||||||
|
def test_creator_info_is_autopopulated_for_new_request(monkeypatch, client, user_session):
|
||||||
|
user = UserFactory.create()
|
||||||
|
user_session(user)
|
||||||
|
|
||||||
|
response = client.get("/requests/new/2")
|
||||||
|
body = response.data.decode()
|
||||||
|
assert 'value="{}"'.format(user.first_name) in body
|
||||||
|
assert 'value="{}"'.format(user.last_name) in body
|
||||||
|
assert 'value="{}"'.format(user.email) in body
|
||||||
|
|
||||||
|
|
||||||
def test_non_creator_info_is_not_autopopulated(monkeypatch, client, user_session):
|
def test_non_creator_info_is_not_autopopulated(monkeypatch, client, user_session):
|
||||||
user = UserFactory.create()
|
user = UserFactory.create()
|
||||||
creator = UserFactory.create()
|
creator = UserFactory.create()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user