Use form_cache.from_request
This commit is contained in:
parent
2f04571767
commit
7d78ba4d65
@ -91,20 +91,15 @@ class FinancialVerificationBase(object):
|
||||
raise FormValidationError(form)
|
||||
|
||||
|
||||
def existing_form_data():
|
||||
key = http_request.args.get("formCache")
|
||||
if key:
|
||||
return app.form_cache.read(key)
|
||||
|
||||
|
||||
class GetFinancialVerificationForm(FinancialVerificationBase):
|
||||
def __init__(self, user, request, is_extended=False):
|
||||
def __init__(self, user, request, cached_data=None, is_extended=False):
|
||||
self.user = user
|
||||
self.request = request
|
||||
self.cached_data = cached_data or {}
|
||||
self.is_extended = is_extended
|
||||
|
||||
def execute(self):
|
||||
form = self._get_form(self.request, self.is_extended, formdata=existing_form_data())
|
||||
form = self._get_form(self.request, self.is_extended, formdata=self.cached_data)
|
||||
form.reset()
|
||||
return form
|
||||
|
||||
@ -199,7 +194,10 @@ def financial_verification(request_id):
|
||||
)
|
||||
|
||||
form = GetFinancialVerificationForm(
|
||||
g.current_user, request, is_extended=is_extended
|
||||
g.current_user,
|
||||
request,
|
||||
is_extended=is_extended,
|
||||
cached_data=app.form_cache.from_request(http_request),
|
||||
).execute()
|
||||
|
||||
return render_template(
|
||||
|
@ -1,4 +1,11 @@
|
||||
from flask import g, redirect, render_template, url_for, request as http_request, current_app
|
||||
from flask import (
|
||||
g,
|
||||
redirect,
|
||||
render_template,
|
||||
url_for,
|
||||
request as http_request,
|
||||
current_app,
|
||||
)
|
||||
|
||||
from . import requests_bp
|
||||
from atst.domain.requests import Requests
|
||||
@ -30,7 +37,9 @@ def option_data():
|
||||
@requests_bp.route("/requests/new/<int:screen>", methods=["GET"])
|
||||
def requests_form_new(screen):
|
||||
cached_data = current_app.form_cache.from_request(http_request)
|
||||
jedi_flow = JEDIRequestFlow(screen, request=None, current_user=g.current_user, post_data=cached_data)
|
||||
jedi_flow = JEDIRequestFlow(
|
||||
screen, request=None, current_user=g.current_user, post_data=cached_data
|
||||
)
|
||||
|
||||
return render_template(
|
||||
"requests/screen-%d.html" % int(screen),
|
||||
|
@ -7,7 +7,6 @@ DEFAULT_CACHE_NAME = "formcache"
|
||||
|
||||
|
||||
class FormCache(object):
|
||||
|
||||
def __init__(self, redis):
|
||||
self.redis = redis
|
||||
|
||||
@ -19,7 +18,9 @@ class FormCache(object):
|
||||
def write(self, formdata, expiry_seconds=3600, key_prefix=DEFAULT_CACHE_NAME):
|
||||
value = pickle.dumps(formdata)
|
||||
hash_ = hashlib.sha1(os.urandom(64)).hexdigest()
|
||||
self.redis.setex(name=self._key(key_prefix, hash_), value=value, time=expiry_seconds)
|
||||
self.redis.setex(
|
||||
name=self._key(key_prefix, hash_), value=value, time=expiry_seconds
|
||||
)
|
||||
return hash_
|
||||
|
||||
def read(self, formdata_key, key_prefix=DEFAULT_CACHE_NAME):
|
||||
|
@ -8,6 +8,7 @@ from atst.utils.form_cache import DEFAULT_CACHE_NAME, FormCache
|
||||
def form_cache(app):
|
||||
return FormCache(app.redis)
|
||||
|
||||
|
||||
def test_cache_form_data(app, form_cache):
|
||||
data = ImmutableDict({"kessel_run": "12 parsecs"})
|
||||
key = form_cache.write(data)
|
||||
|
Loading…
x
Reference in New Issue
Block a user