Use url param instead
This commit is contained in:
parent
62a5d4a983
commit
a9afad0a7f
@ -21,6 +21,10 @@ class ApiClient(object):
|
|||||||
def post(self, path, **kwargs):
|
def post(self, path, **kwargs):
|
||||||
return (yield self.make_request('POST', self.base_url + path, **kwargs))
|
return (yield self.make_request('POST', self.base_url + path, **kwargs))
|
||||||
|
|
||||||
|
@tornado.gen.coroutine
|
||||||
|
def patch(self, path, **kwargs):
|
||||||
|
return (yield self.make_request('PATCH', self.base_url + path, **kwargs))
|
||||||
|
|
||||||
@tornado.gen.coroutine
|
@tornado.gen.coroutine
|
||||||
def delete(self, path, **kwargs):
|
def delete(self, path, **kwargs):
|
||||||
return (yield self.make_request('DELETE', self.base_url + path, **kwargs))
|
return (yield self.make_request('DELETE', self.base_url + path, **kwargs))
|
||||||
|
@ -44,7 +44,13 @@ def make_app(config, deps, **kwargs):
|
|||||||
r"/requests/new/([0-9])",
|
r"/requests/new/([0-9])",
|
||||||
RequestNew,
|
RequestNew,
|
||||||
{"page": "requests_new", "requests_client": deps["requests_client"]},
|
{"page": "requests_new", "requests_client": deps["requests_client"]},
|
||||||
name="request_form",
|
name="request_form_new",
|
||||||
|
),
|
||||||
|
url(
|
||||||
|
r"/requests/new/([0-9])/(\S+)",
|
||||||
|
RequestNew,
|
||||||
|
{"page": "requests_new", "requests_client": deps["requests_client"]},
|
||||||
|
name="request_form_update",
|
||||||
),
|
),
|
||||||
url(r"/users", MainHandler, {"page": "users"}, name="users"),
|
url(r"/users", MainHandler, {"page": "users"}, name="users"),
|
||||||
url(r"/reports", MainHandler, {"page": "reports"}, name="reports"),
|
url(r"/reports", MainHandler, {"page": "reports"}, name="reports"),
|
||||||
|
@ -47,15 +47,15 @@ class RequestNew(BaseHandler):
|
|||||||
|
|
||||||
@tornado.web.authenticated
|
@tornado.web.authenticated
|
||||||
@tornado.gen.coroutine
|
@tornado.gen.coroutine
|
||||||
def post(self, screen=1):
|
def post(self, screen=1, request_id=None):
|
||||||
self.check_xsrf_cookie()
|
self.check_xsrf_cookie()
|
||||||
screen = int(screen)
|
screen = int(screen)
|
||||||
form = self.screens[ screen - 1 ]['form'](self.request.arguments)
|
form = self.screens[ screen - 1 ]['form'](self.request.arguments)
|
||||||
if form.validate():
|
if form.validate():
|
||||||
response = yield self.create_or_update_request(form.data, self.request_id())
|
response = yield self.create_or_update_request(form.data, request_id)
|
||||||
if response.ok:
|
if response.ok:
|
||||||
url = self.application.default_router.reverse_url('request_form', str(screen + 1))
|
where = self.application.default_router.reverse_url(
|
||||||
where = '{}?request_id={}'.format(url, response.json['id'])
|
'request_form_update', str(screen + 1), request_id or response.json['id'])
|
||||||
self.redirect(where)
|
self.redirect(where)
|
||||||
else:
|
else:
|
||||||
self.set_status(response.code)
|
self.set_status(response.code)
|
||||||
@ -64,31 +64,30 @@ class RequestNew(BaseHandler):
|
|||||||
|
|
||||||
@tornado.web.authenticated
|
@tornado.web.authenticated
|
||||||
@tornado.gen.coroutine
|
@tornado.gen.coroutine
|
||||||
def get(self, screen=1):
|
def get(self, screen=1, request_id=None):
|
||||||
form = None
|
form = None
|
||||||
request_id = self.request_id()
|
|
||||||
if request_id:
|
if request_id:
|
||||||
request = yield self.get_request(request_id)
|
request = yield self.get_request(request_id)
|
||||||
form_data = request['body'] if request else {}
|
form_data = request['body'] if request else {}
|
||||||
from pprint import pprint; pprint(form_data)
|
|
||||||
form = self.screens[ int(screen) - 1 ]['form'](data=form_data)
|
form = self.screens[ int(screen) - 1 ]['form'](data=form_data)
|
||||||
self.show_form(screen=screen, form=form)
|
self.show_form(screen=screen, request_id=request_id, form=form)
|
||||||
|
|
||||||
def show_form(self, screen=1, form=None):
|
def show_form(self, screen=1, request_id=None, form=None):
|
||||||
if not form:
|
if not form:
|
||||||
form = self.screens[ int(screen) - 1 ]['form'](self.request.arguments)
|
form = self.screens[ int(screen) - 1 ]['form'](self.request.arguments)
|
||||||
self.render( 'requests/screen-%d.html.to' % int(screen),
|
self.render('requests/screen-%d.html.to' % int(screen),
|
||||||
f = form,
|
f=form,
|
||||||
page = self.page,
|
page=self.page,
|
||||||
screens = self.screens,
|
screens=self.screens,
|
||||||
current = int(screen),
|
current=int(screen),
|
||||||
next_screen = int(screen) + 1 )
|
next_screen=int(screen) + 1,
|
||||||
|
request_id=request_id)
|
||||||
|
|
||||||
@tornado.gen.coroutine
|
@tornado.gen.coroutine
|
||||||
def get_request(self, request_id):
|
def get_request(self, request_id):
|
||||||
try:
|
try:
|
||||||
request = yield self.requests_client.get('/requests/{}'.format(request_id))
|
request = yield self.requests_client.get('/requests/{}'.format(request_id))
|
||||||
except HTTPError as http_error:
|
except HTTPError:
|
||||||
request = None
|
request = None
|
||||||
return request.json
|
return request.json
|
||||||
|
|
||||||
@ -100,15 +99,8 @@ class RequestNew(BaseHandler):
|
|||||||
}
|
}
|
||||||
if request_id:
|
if request_id:
|
||||||
response = yield self.requests_client.patch(
|
response = yield self.requests_client.patch(
|
||||||
'/requests/{}'.format(request_id), request_data)
|
'/requests/{}'.format(request_id), json=request_data)
|
||||||
else:
|
else:
|
||||||
response = yield self.requests_client.post(
|
response = yield self.requests_client.post(
|
||||||
'/requests', json=request_data)
|
'/requests', json=request_data)
|
||||||
return response
|
return response
|
||||||
|
|
||||||
def request_id(self):
|
|
||||||
arg = self.request.arguments.get('request_id')
|
|
||||||
if arg:
|
|
||||||
return arg[0].decode('utf-8')
|
|
||||||
else:
|
|
||||||
return None
|
|
||||||
|
@ -5,8 +5,8 @@
|
|||||||
|
|
||||||
<p class="usa-font-lead">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Natus error omnis a, tenetur similique quo officiis voluptates eum recusandae dolorem minus dignissimos, magni consequatur, maxime debitis reprehenderit sint non iusto?</p>
|
<p class="usa-font-lead">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Natus error omnis a, tenetur similique quo officiis voluptates eum recusandae dolorem minus dignissimos, magni consequatur, maxime debitis reprehenderit sint non iusto?</p>
|
||||||
|
|
||||||
<a class='usa-button usa-button-secondary' href='{{ reverse_url('request_form',next_screen) }}'>New Application</a>
|
<a class='usa-button usa-button-secondary' href='{{ reverse_url('request_form_new',next_screen) }}'>New Application</a>
|
||||||
<a class='usa-button usa-button-secondary' href='{{ reverse_url('request_form',next_screen) }}'>Existing Application</a>
|
<a class='usa-button usa-button-secondary' href='{{ reverse_url('request_form_new',next_screen) }}'>Existing Application</a>
|
||||||
<a class='usa-button usa-button-secondary' href='{{ reverse_url('request_form',next_screen) }}'>Sandbox Environment</a>
|
<a class='usa-button usa-button-secondary' href='{{ reverse_url('request_form_new',next_screen) }}'>Sandbox Environment</a>
|
||||||
|
|
||||||
{% end %}
|
{% end %}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
{% for i,s in enumerate(screens) %}
|
{% for i,s in enumerate(screens) %}
|
||||||
<li>
|
<li>
|
||||||
{% if i+1==current %}
|
{% if i+1==current %}
|
||||||
<a class="usa-current" href="{{ reverse_url('request_form',i+1) }}">
|
<a class="usa-current" href="{{ reverse_url('request_form_update', i+1, request_id) if request_id else reverse_url('request_form_new',i+1) }}">
|
||||||
{{ i+1 }}. {{ s['title'] }}
|
{{ i+1 }}. {{ s['title'] }}
|
||||||
</a>
|
</a>
|
||||||
{% if s.get('subitems') %}
|
{% if s.get('subitems') %}
|
||||||
@ -14,10 +14,10 @@
|
|||||||
{% end %}
|
{% end %}
|
||||||
|
|
||||||
{% else %}
|
{% else %}
|
||||||
<a href='{{ reverse_url('request_form',i+1) }}'>
|
<a href="{{ reverse_url('request_form_update', i+1, request_id) if request_id else reverse_url('request_form_new',i+1) }}">
|
||||||
{{ i+1 }}. {{ s['title'] }}
|
{{ i+1 }}. {{ s['title'] }}
|
||||||
</a>
|
</a>
|
||||||
{% end %}
|
{% end %}
|
||||||
</li>
|
</li>
|
||||||
{% end %}
|
{% end %}
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -14,7 +14,12 @@
|
|||||||
|
|
||||||
<main class="main-content usa-width-two-thirds">
|
<main class="main-content usa-width-two-thirds">
|
||||||
|
|
||||||
<form method='POST' action='{{ reverse_url('request_form', current) }}'>
|
{% if request_id %}
|
||||||
|
<form method='POST' action="{{ reverse_url('request_form_update', current, request_id) }}">
|
||||||
|
{% else %}
|
||||||
|
<form method='POST' action="{{ reverse_url('request_form_new', current) }}">
|
||||||
|
{% end %}
|
||||||
|
|
||||||
{% module xsrf_form_html() %}
|
{% module xsrf_form_html() %}
|
||||||
{% block form %}
|
{% block form %}
|
||||||
form goes here
|
form goes here
|
||||||
|
Loading…
x
Reference in New Issue
Block a user