Merge pull request #9 from dod-ccpo/request_screens

Add backend support for a multi-page form
This commit is contained in:
briandds 2018-05-29 15:24:01 -04:00 committed by GitHub
commit a675b9c0f0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 107 additions and 3 deletions

View File

@ -1,5 +1,6 @@
import tornado.web import tornado.web
from atst.handlers.main import MainHandler from atst.handlers.main import MainHandler
from atst.handlers.request import Request
from atst.home import home from atst.home import home
from tornado.web import url from tornado.web import url
@ -7,7 +8,8 @@ def make_app(**kwargs):
app = tornado.web.Application([ app = tornado.web.Application([
url( r"/", MainHandler, {'page': 'login'}, name='login' ), url( r"/", MainHandler, {'page': 'login'}, name='login' ),
url( r"/home", MainHandler, {'page': 'home'}, name='home' ), url( r"/home", MainHandler, {'page': 'home'}, name='home' ),
url( r"/requests", MainHandler, {'page': 'requests'}, name='requests' ), url( r"/requests", Request, {'page': 'requests'}, name='requests' ),
url( r"/requests/([0-9])", Request, {'page': 'requests'}, name='request_form' ),
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' ),
url( r"/calculator", MainHandler, {'page': 'calculator'}, name='calculator' ), url( r"/calculator", MainHandler, {'page': 'calculator'}, name='calculator' ),

31
atst/handlers/request.py Normal file
View File

@ -0,0 +1,31 @@
from atst.handler import BaseHandler
class Request(BaseHandler):
screens = [
{ 'title' : 'Details of Use',
'subitems' : [
{'title' : 'Application Details',
'id' : 'application-details'},
{'title' : 'Computation',
'id' : 'computation' },
{'title' : 'Storage',
'id' : 'storage' },
{'title' : 'Usage',
'id' : 'usage' },
]},
{ 'title' : 'Organizational Info', },
{ 'title' : 'Funding/Contracting', },
{ 'title' : 'Readiness Survey', },
{ 'title' : 'Review & Submit', }
]
def initialize(self, page):
self.page = page
def get(self, screen = 1):
self.render( 'requests/screen-%d.html.to' % int(screen),
page = self.page,
screens = self.screens,
current = int(screen),
next_screen = int(screen) + 1 )

View File

@ -4,8 +4,18 @@
<main class="usa-grid usa-section usa-content usa-layout-docs" id="main-content"> <main class="usa-grid usa-section usa-content usa-layout-docs" id="main-content">
jedi requests <aside class="usa-width-one-fourth usa-layout-docs-sidenav">
{% include 'requests/sidebar.html.to' %}
</aside>
<div class="usa-width-three-fourths usa-layout-docs-main_content">
{% block form %}
form goes here
{% end %}
{% block next %}
<a class='usa-button usa-button-secondary' href='{{ reverse_url('request_form',next_screen) }}'>next page</a>
{% end %}
</div>
</main> </main>
{% end %} {% end %}

View File

@ -0,0 +1,7 @@
{% extends '../requests.html.to' %}
{% block form %}
<h3>What is your name?</h3>
<input type='textbox'>
{% end %}

View File

@ -0,0 +1,7 @@
{% extends '../requests.html.to' %}
{% block form %}
<h3>What is your quest?</h3>
<input type='textbox'>
{% end %}

View File

@ -0,0 +1,7 @@
{% extends '../requests.html.to' %}
{% block form %}
<h3>What is your quest?</h3>
<input type='textbox'>
{% end %}

View File

@ -0,0 +1,7 @@
{% extends '../requests.html.to' %}
{% block form %}
<h3>What is your quest?</h3>
<input type='textbox'>
{% end %}

View File

@ -0,0 +1,10 @@
{% extends '../requests.html.to' %}
{% block form %}
<h3>What is your favorite color?</h3>
<input type='textbox'>
{% end %}
{% block next %}
<b class='usa-button'>MAKE THE REQUEST</b>
{% end %}

View File

@ -0,0 +1,23 @@
<ul class="usa-sidenav-list">
{% for i,s in enumerate(screens) %}
<li>
{% if i+1==current %}
<a class="usa-current" href="{{ reverse_url('request_form',i+1) }}">
{{ i+1 }}. {{ s['title'] }}
</a>
{% if s.get('subitems') %}
<ul class="usa-sidenav-sub_list">
{% for j,t in enumerate(s['subitems']) %}
<li><a href="#{{ t['id'] }}">{{ t['title'] }}</a></li>
{% end %}
</ul>
{% end %}
{% else %}
<a href='{{ reverse_url('request_form',i+1) }}'>
{{ i+1 }}. {{ s['title'] }}
</a>
{% end %}
</li>
{% end %}
</ul>