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

View File

@ -2,7 +2,7 @@ from atst.handler import BaseHandler
class MainHandler(BaseHandler):
def initialize(self,page):
def initialize(self, page):
self.page = page
def get(self):

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">
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>
{% 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>