Merge pull request #107 from dod-ccpo/ui/request-form

UI/request form
This commit is contained in:
luisgov
2018-07-31 11:21:08 -04:00
committed by GitHub
15 changed files with 395 additions and 444 deletions

View File

@@ -1,4 +1,5 @@
<div class='usa-input {% if errors %}usa-input--error{% end %}'>
<fieldset class="usa-input__choices {% if inline %}usa-input__choices--inline{% end %}">
<legend>
{{ label }}

View File

@@ -1,5 +1,5 @@
<div class='usa-input {% if errors %}usa-input--error{% end %}'>
<label for={{input.name}}>
<label for={{field.name}}>
{{ label }}
{% if description %}

View File

@@ -24,7 +24,7 @@
<b class="usa-input-error-message">There were some errors, see below.</b>
{% end %}
<p class="usa-font-lead">In order to get you access to the JEDI Cloud, we will need you to enter the details below that will help us verify and account for your Task Order.</p>
<p>In order to get you access to the JEDI Cloud, we will need you to enter the details below that will help us verify and account for your Task Order.</p>
{{ f.task_order_id.label }}
{{ f.task_order_id(placeholder="Example: 1234567899C0001") }}

View File

@@ -3,7 +3,7 @@
{% block form %}
<h2>New JEDI Request</h2>
<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>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_new',next_screen) }}'>New Application</a>
<a class='usa-button usa-button-secondary' href='{{ reverse_url('request_form_new',next_screen) }}'>Existing Application</a>

View File

@@ -1,154 +1,45 @@
{% extends '../requests_new.html.to' %}
{% block subtitle %}
<h2>Details of Use</h2>
<h2>Details of Use</h2>
{% end %}
{% block form %}
{% autoescape None %}
{% if f.errors %}
<b class="usa-input-error-message">There were some errors, see below.</b>
{% module Alert('There were some errors',
message="<p>Please see below.</p>",
level='error'
) %}
{% end %}
<!-- DETAILS OF USE -->
<!-- Overall Request Details -->
<p>Wed like to know a little about how you plan to use JEDI Cloud services to process your request. Please answer the following questions to the best of your ability. Note that the CCPO does not directly help with migrating systems to JEDI Cloud. These questions are for learning about your cloud readiness and financial usage of the JEDI Cloud; your estimates will not be used for any department level reporting.</p>
<p><em>All fields are required, unless specified optional.</em></p>
<h3 id="overall-request-details">Overall Request Details</h3>
<p class="usa-font-lead">Please help us understand the size and scope of your resource request.</p>
<h2>General</h2>
{% module TextInput(f.dod_component) %}
{% module TextInput(f.jedi_usage,placeholder="e.g. We are migrating XYZ application to the cloud so that...") %}
{{ f.dollar_value.label }}
{{ f.dollar_value(placeholder="Total dollar amount to be associated with the Task Order")}}
{% for e in f.dollar_value.errors %}
<div class="usa-input-error-message">
{{ e }}
</div>
{% end %}
<h2>Cloud Readiness</h2>
{% module TextInput(f.num_software_systems,placeholder="Number of systems") %}
{% module OptionsInput(f.jedi_migration) %}
{% module OptionsInput(f.rationalization_software_systems) %}
{% module OptionsInput(f.technical_support_team) %}
{% module OptionsInput(f.organization_providing_assistance) %}
{% module OptionsInput(f.engineering_assessment) %}
{% module TextInput(f.data_transfers) %}
{% module TextInput(f.expected_completion_date) %}
{% module OptionsInput(f.cloud_native) %}
{{ f.num_applications.label }}
{{ f.num_applications(placeholder="Estimated number of applications") }}
{% for e in f.num_applications.errors %}
<div class="usa-input-error-message">
{{ e }}
</div>
{% end %}
<h2>Financial Usage</h2>
{% module TextInput(f.estimated_monthly_spend) %}
<p>So this means you are spending approximately <b>$X</b> annually</p>
{% module TextInput(f.dollar_value) %}
{% module TextInput(f.number_user_sessions) %}
{% module TextInput(f.average_daily_traffic) %}
{% module TextInput(f.start_date) %}
{{ f.date_start.label }}
{{ f.date_start }}
{% for e in f.date_start.errors %}
<div class="usa-input-error-message">
{{ e }}
</div>
{% end %}
{{ f.app_description.label }}
{{ f.app_description(placeholder="Example: My organization is supporting the migration of XYZ system to the cloud due to XX policy memo. I am planning to use a sandbox environment to do testing.") }}
{% for e in f.app_description.errors %}
<div class="usa-input-error-message">
{{ e }}
</div>
{% end %}
{{ f.supported_organizations.label }}
{{ f.supported_organizations(placeholder="Add tags associated with DoD components or other entities") }}
{% for e in f.supported_organizations.errors %}
<div class="usa-input-error-message">
{{ e }}
</div>
{% end %}
<!-- Cloud Resources -->
<h3 id="cloud-resources">Cloud Resources</h3>
<p class="usa-font-lead">Please tell us about your expected cloud resource usage as best as you can. Refer to the <a href="">Cloud Service Provider</a> as necessary.</p>
{{ f.total_cores.label }}
{{ f.total_cores(placeholder="Expected total cores", min="1", max="32") }}
{% for e in f.total_cores.errors %}
<div class="usa-input-error-message">
{{ e }}
</div>
{% end %}
{{ f.total_ram.label }}
{{ f.total_ram(placeholder="Expected amount of RAM", min="1", max="32") }}
{% for e in f.total_ram.errors %}
<div class="usa-input-error-message">
{{ e }}
</div>
{% end %}
{{ f.total_object_storage.label }}
{{ f.total_object_storage(placeholder="Expected total object storage") }}
{% for e in f.total_object_storage.errors %}
<div class="usa-input-error-message">
{{ e }}
</div>
{% end %}
{{ f.total_database_storage.label }}
{{ f.total_database_storage(placeholder="Expected total database storage") }}
{% for e in f.total_database_storage.errors %}
<div class="usa-input-error-message">
{{ e }}
</div>
{% end %}
{{ f.total_server_storage.label }}
{{ f.total_server_storage(placeholder="Expected total server storage") }}
{% for e in f.total_server_storage.errors %}
<div class="usa-input-error-message">
{{ e }}
</div>
{% end %}
<!-- Support Staff -->
<h3 id="support-staff">Support Staff</h3>
<p class="usa-font-lead">We want to learn more about the people helping you with the cloud.</p>
<fieldset class="usa-fieldset-inputs">
{{ f.has_contractor_advisor.label }}
{{ f.has_contractor_advisor(class_="usa-unstyled-list") }}
{% for e in f.has_contractor_advisor.errors %}
<div class="usa-input-error-message">
{{ e }}
</div>
{% end %}
</fieldset>
<fieldset class="usa-fieldset-inputs">
{{ f.is_migrating_application.label }}
{{ f.is_migrating_application(class_="usa-unstyled-list") }}
{% for e in f.is_migrating_application.errors %}
<div class="usa-input-error-message">
{{ e }}
</div>
{% end %}
</fieldset>
<fieldset class="usa-fieldset-inputs">
{{ f.has_migration_office.label }}
{{ f.has_migration_office(class_="usa-unstyled-list") }}
{% for e in f.has_migration_office.errors %}
<div class="usa-input-error-message">
{{ e }}
</div>
{% end %}
</fieldset>
<fieldset class="usa-fieldset-inputs">
{{ f.supporting_organization.label }}
{{ f.supporting_organization(placeholder="Example: AF CCE/HNI, Navy SPAWAR, MITRE") }}
{% for e in f.supporting_organization.errors %}
<div class="usa-input-error-message">
{{ e }}
</div>
{% end %}
</fieldset>
{% end %}

View File

@@ -1,84 +1,31 @@
{% extends '../requests_new.html.to' %}
{% block subtitle %}
<h2>Information About You</h2>
<h2>Information About You</h2>
{% end %}
{% block form %}
{% autoescape None %}
{% if f.errors %}
<b class="usa-input-error-message">There were some errors, see below.</b>
{% module Alert('There were some errors',
message="<p>Please see below.</p>",
level='error'
) %}
{% end %}
<p class="usa-font-lead">Please tell us more about yourself.</p>
<p>Please tell us more about you.</p>
{{ f.fname_request.label }}
{{ f.fname_request(placeholder="Your first name") }}
{% for e in f.fname_request.errors %}
<div class="usa-input-error-message">
{{ e }}
</div>
{% end %}
{% module TextInput(f.fname_request,placeholder='First Name') %}
{% module TextInput(f.lname_request,placeholder='Last Name') %}
{% module TextInput(f.email_request,placeholder='jane@mail.mil') %}
{% module TextInput(f.phone_number,placeholder='(123) 456-7890') %}
{{ f.lname_request.label }}
{{ f.lname_request(placeholder="Your last name") }}
{% for e in f.lname_request.errors %}
<div class="usa-input-error-message">
{{ e }}
</div>
{% end %}
<p>We want to collect the following information from you for security auditing and determining priviledged user access</p>
{{ f.email_request.label }}
{{ f.email_request(placeholder="jane@mail.mil") }}
{% for e in f.email_request.errors %}
<div class="usa-input-error-message">
{{ e }}
</div>
{% end %}
{% module TextInput(f.service_branch,placeholder='e.g. US Air Force, US Army, US Navy, Marine Corps, Defense Media Agency') %}
{% module OptionsInput(f.citizenship) %}
{% module OptionsInput(f.designation) %}
{% module TextInput(f.date_latest_training) %}
{{ f.phone_number.label }}
{{ f.phone_number(placeholder="(123) 456-7890") }}
{% for e in f.phone_number.errors %}
<div class="usa-input-error-message">
{{ e }}
</div>
{% end %}
{{ f.service_branch.label }}
{{ f.service_branch(placeholder="i.e. US Air Force, US Army, US Navy, Marine Corps, Defense Media Agency") }}
{% for e in f.service_branch.errors %}
<div class="usa-input-error-message">
{{ e }}
</div>
{% end %}
<fieldset class="usa-fieldset-inputs">
{{ f.citizenship.label }}
{{ f.citizenship(class_="usa-unstyled-list") }}
{% for e in f.citizenship.errors %}
<div class="usa-input-error-message">
{{ e }}
</div>
{% end %}
</fieldset>
<fieldset class="usa-fieldset-inputs">
{{ f.designation.label }}
{{ f.designation(class_="usa-unstyled-list") }}
{% for e in f.designation.errors %}
<div class="usa-input-error-message">
{{ e }}
</div>
{% end %}
</fieldset>
{{ f.date_latest_training.label }}
{{ f.date_latest_training }}
{% for e in f.date_latest_training.errors %}
<div class="usa-input-error-message">
{{ e }}
</div>
{% end %}
{% end %}
{% end %}

View File

@@ -1,17 +1,20 @@
{% extends '../requests_new.html.to' %}
{% block subtitle %}
<h2>Primary Government/Military <br> Point of Contact (POC)</h2>
<h2>Primary Government/Military <br> Point of Contact (POC)</h2>
{% end %}
{% block form %}
{% autoescape None %}
{% if f.errors %}
<b class="usa-input-error-message">There were some errors, see below.</b>
{% module Alert('There were some errors',
message="<p>Please see below.</p>",
level='error'
) %}
{% end %}
<p class="usa-font-lead">Please designate a Primary Point of Contact that will be responsible for owning the workspace in the JEDI Cloud.</p>
<p>Please designate a Primary Point of Contact that will be responsible for owning the workspace in the JEDI Cloud.</p>
<p>The Point of Contact will become the primary owner of the <em>workspace</em> created to use the JEDI Cloud. As a workspace owner, this person will have the ability to:
<ul>
<li>Create multiple application stacks and environments in the workspace to access the commercial cloud service provider portal</li>
@@ -23,36 +26,9 @@
<em>This POC may be you.</em>
</p>
{{ f.fname_poc.label }}
{{ f.fname_poc(placeholder="First name") }}
{% for e in f.fname_poc.errors %}
<div class="usa-input-error-message">
{{ e }}
</div>
{% end %}
{% module TextInput(f.fname_poc,placeholder='First Name') %}
{% module TextInput(f.lname_poc,placeholder='Last Name') %}
{% module TextInput(f.email_poc,placeholder='jane@mail.mil') %}
{% module TextInput(f.dodid_poc,placeholder='10-digit number on the back of the CAC') %}
{{ f.lname_poc.label }}
{{ f.lname_poc(placeholder="Last name") }}
{% for e in f.lname_poc.errors %}
<div class="usa-input-error-message">
{{ e }}
</div>
{% end %}
{{ f.email_poc.label }}
{{ f.email_poc(placeholder="jane@mail.mil") }}
{% for e in f.email_poc.errors %}
<div class="usa-input-error-message">
{{ e }}
</div>
{% end %}
{{ f.dodid_poc.label }}
{{ f.dodid_poc(placeholder="10-digit number on the back of the CAC") }}
{% for e in f.dodid_poc.errors %}
<div class="usa-input-error-message">
{{ e }}
</div>
{% end %}
{% end %}
{% end %}

View File

@@ -1,127 +1,197 @@
{% extends '../requests_new.html.to' %}
{% block subtitle %}
<h2>Review &amp; Submit</h2>
<h2>Review &amp; Submit</h2>
{% end %}
{% block form_action %}
<form method='POST' action="{{ reverse_url('requests_submit', request_id) }}" autocomplete="off">
{% end %}
<form method='POST' action="{{ reverse_url('requests_submit', request_id) }}" autocomplete="off">
{% end %}
{% block form %}
{% block form %}
{% autoescape None %}
{% if f.errors %}
<b>There were some errors, see below.</b>
{% end %}
{% autoescape None %}
{% if f.errors %}
{% module Alert('There were some errors',
message="<p>Please complete all required fields before submitting.</p>",
level='error'
) %}
{% end %}
<p class="usa-font-lead">Before you can submit your request, please take a moment to review the information entered in the form. You may make changes by clicking the edit link on each section. When all information looks right, go ahead and submit.</p>
<p>Before you can submit your request, please take a moment to review the information entered in the form. You may make changes by clicking the edit link on each section. When all information looks right, go ahead and submit.</p>
<h3>Details of Use <a href="{{ reverse_url('request_form_update', 1, request_id) }}">Edit</a></h3>
<h2>Details of Use <a href="{{ reverse_url('request_form_update', 1, request_id) }}" class="icon-link">Edit</a></h2>
<h4>Overall Request Details</h4>
<label>What is the total estimated dollar value of the cloud resources you are requesting using the JEDI CSP Calculator? </label>
<b>{{ data['details_of_use']['dollar_value'] }}</b>
<label>Please estimate the number of applications that might be supported by this request</label>
<b>{{ data['details_of_use']['num_applications'] }}</b>
<label>Start Date</label>
<b>{{ data['details_of_use']['date_start'] }}</b>
<label>Please briefly describe how your team is expecting to use the JEDI Cloud</label>
<b>{{ data['details_of_use']['app_description'] }}</b>
<label>What organizations are supported by these applications?</label>
<b>{{ data['details_of_use']['supported_organizations'] }}</b>
<h4>Cloud Resources</h4>
<label>Total Number of vCPU cores</label>
<b>{{ data['details_of_use']['total_cores'] }}</b>
<label>Total RAM</label>
<b>{{ data['details_of_use']['total_ram'] }}</b>
<label>Total object storage</label>
<b>{{ data['details_of_use']['total_object_storage'] }}</b>
<label>Total server storage</label>
<b>{{ data['details_of_use']['total_server_storage'] }}</b>
<h4>Support Staff</h4>
<label>Do you have a contractor to advise and assist you with using cloud services?</label>
<b>{{ data['details_of_use']['has_contractor_advisor'] }}</b>
<label>Are you using the JEDI Cloud to migrate existing applications?</label>
<b>{{ data['details_of_use']['is_migrating_application'] }}</b>
<label>Please describe the organizations that are supporting you, include both government and contractor resources</label>
<b>{{ data['details_of_use']['supporting_organization'] }}</b>
<label>Do you have a migration office that you're working with to migrate to the cloud?</label>
<b>{{ data['details_of_use']['has_migration_office'] }}</b>
<label>Please describe the organizations that are supporting you, include both government and contractor resources.</label>
<b>{{ data['details_of_use']['supporting_organization'] }}</b>
<br><br><hr>
<h3>Information About You <a href="{{ reverse_url('request_form_update', 2, request_id) }}">Edit</a></h3>
<label>First Name</label>
<b>{{ data['information_about_you']['fname_request'] }}</b>
<label>Last Name</label>
<b>{{ data['information_about_you']['lname_request'] }}</b>
<label>Email (associated with your CAC)</label>
<b>{{ data['information_about_you']['email_request'] }}</b>
<label>Phone Number</label>
<b>{{ data['information_about_you']['phone_number'] }}</b>
<label>Service Branch or Agency</label>
<b>{{ data['information_about_you']['service_branch'] }}</b>
<label>Citizenship</label>
<b>{{ data['information_about_you']['citizenship'] }}</b>
<label>Designation of Person</label>
<b>{{ data['information_about_you']['designation'] }}</b>
<label>Latest Information Assurance (IA) Training completion date</label>
<b>{{ data['information_about_you']['date_latest_training'] }}</b>
<dl>
<div>
<dt>DoD Component</dt>
<dd>{{data['details_of_use']['dod_component']}}</dd>
</div>
<br><br><hr>
<div>
<dt>JEDI Usage</dt>
<dd>{{data['details_of_use']['jedi_usage']}}</dd>
</div>
<h3>Primary Government/Military Point of Contact (POC) <a href="{{ reverse_url('request_form_update', 3, request_id) }}">Edit</a></h3>
<div>
<dt>Number of software systems</dt>
<dd>{{data['details_of_use']['num_software_systems']}}</dd>
</div>
<div>
<dt>JEDI Migration</dt>
<dd>{{data['details_of_use']['jedi_migration']}}</dd>
</div>
<div>
<dt>Rationalization of Software Systems</dt>
<dd>{{data['details_of_use']['rationalization_software_systems']}}</dd>
</div>
<div>
<dt>Technical Support Team</dt>
<dd>{{data['details_of_use']['technical_support_team']}}</dd>
</div>
<div>
<dt>Organization Providing Assistance</dt>
<dd>{{data['details_of_use']['organization_providing_assistance']}}</dd>
</div>
<div>
<dt>Engineering Assessment</dt>
<dd>{{data['details_of_use']['engineering_assessment']}}</dd>
</div>
<div>
<dt>Data Transfers</dt>
<dd>{{data['details_of_use']['data_transfers']}}</dd>
</div>
<div>
<dt>Expected Completion Date</dt>
<dd>{{data['details_of_use']['expected_completion_date']}}</dd>
</div>
<div>
<dt>Cloud Native</dt>
<dd>{{data['details_of_use']['cloud_native']}}</dd>
</div>
<div>
<dt>Estimated Monthly Spend</dt>
<dd>{{data['details_of_use']['estimated_monthly_spend']}}</dd>
</div>
<div>
<dt>Total Spend</dt>
<dd>${{data['details_of_use']['dollar_value']}}</dd>
</div>
<div>
<dt>Number of User Sessions</dt>
<dd>{{data['details_of_use']['number_user_sessions']}}</dd>
</div>
<div>
<dt>Average Daily Traffic</dt>
<dd>{{data['details_of_use']['average_daily_traffic']}}</dd>
</div>
<div>
<dt>Start Date</dt>
<dd>{{data['details_of_use']['start_date']}}</dd>
</div>
</dl>
<h2>Information About You <a href="{{ reverse_url('request_form_update', 2, request_id) }}" class="icon-link">Edit</a></h2>
<label>POC First Name</label>
<b>{{ data['primary_poc']['fname_poc']}}</b>
<dl>
<div>
<dt>First Name</dt>
<dd>{{data['information_about_you']['fname_request']}}</dd>
</div>
<label>POC Last Name</label>
<b>{{ data['primary_poc']['lname_poc']}}</b>
<div>
<dt>Last Name</dt>
<dd>{{data['information_about_you']['lname_request']}}</dd>
</div>
<label>POC Email (associated with CAC)</label>
<b>{{ data['primary_poc']['email_poc']}} </b>
<div>
<dt>Email Address</dt>
<dd>{{data['information_about_you']['email_request']}}</dd>
</div>
<label>DOD ID</label>
<b>{{ data['primary_poc']['dodid_poc']}}</b>
<div>
<dt>Phone Number</dt>
<dd>{{data['information_about_you']['phone_number']}}</dd>
</div>
<div>
<dt>Service Branch or Agency</dt>
<dd>{{data['information_about_you']['service_branch']}}</dd>
</div>
<div>
<dt>Citizenship</dt>
<dd>{{data['information_about_you']['citizenship']}}</dd>
</div>
<div>
<dt>Designation of Person</dt>
<dd>{{data['information_about_you']['designation']}}</dd>
</div>
<div>
<dt>Latest Information Assurance (IA) Training completion date</dt>
<dd>{{data['information_about_you']['date_latest_training']}}</dd>
</div>
</dl>
<h2>Primary Point of Contact <a href="{{ reverse_url('request_form_update', 3, request_id) }}" class="icon-link">Edit</a></h2>
<dl>
<div>
<dt>POC First Name</dt>
<dd>{{data['primary_poc']['fname_poc']}}</dd>
</div>
<div>
<dt>POC Last Name</dt>
<dd>{{data['primary_poc']['lname_poc']}}</dd>
</div>
<div>
<dt>POC Email Address</dt>
<dd>{{data['primary_poc']['email_poc']}}</dd>
</div>
<div>
<dt>DOD ID</dt>
<dd>{{data['primary_poc']['dodid_poc']}}</dd>
</div>
</dl>
<br><br>
{% end %}
{% block next %}
{% if not can_submit %}
<b class="usa-input-error-message">Please complete all required fields before submitting.</b>
{% module Alert('There were some errors',
message="<p>Please complete all required fields before submitting.</p>",
level='error'
) %}
{% end %}
<input type='submit' class='usa-button usa-button-primary' value='Submit' {{ "disabled" if not can_submit else "" }} />
<div class='action-group'>
<input type='submit' class='usa-button usa-button-primary' value='Submit' {{ "disabled" if not can_submit else "" }} />
</div>
</form>
{% end %}

View File

@@ -4,12 +4,15 @@
{% autoescape None %}
{% if f.errors %}
<b class="usa-input-error-message">There were some errors, see below.</b>
{% module Alert('There were some errors',
message="<p>Please complete all the fields before submitting.</p>",
level='error'
) %}
{% end %}
<h2 id="financial-verification">Financial Verification</h2>
<p class="usa-font-lead">In order to get you access to the JEDI Cloud, we will need you to enter the details below that will help us verify and account for your Task Order.</p>
<p>In order to get you access to the JEDI Cloud, we will need you to enter the details below that will help us verify and account for your Task Order.</p>
{{ f.task_order_id.label }}
{{ f.task_order_id(placeholder="Example: 1234567899C0001") }}

View File

@@ -8,32 +8,38 @@
<div class="panel">
<main class="panel__content">
<div class="panel__heading">
<h1>New Request</h1>
<div class="subtitle">{% block subtitle %}{% end %}</div>
</div>
<div class="panel__heading">
<h1>New Request</h1>
<div class="subtitle">{% block subtitle %}{% end %}</div>
</div>
{% block form_action %}
{% if request_id %}
<form method='POST' action="{{ reverse_url('request_form_update', current, request_id) }}" autocomplete="off">
{% else %}
<form method='POST' action="{{ reverse_url('request_form_new', current) }}" autocomplete="off">
{% end %}
<div class="panel__content">
{% block form_action %}
{% if request_id %}
<form method='POST' action="{{ reverse_url('request_form_update', current, request_id) }}" autocomplete="off">
{% else %}
<form method='POST' action="{{ reverse_url('request_form_new', current) }}" autocomplete="off">
{% end %}
{% end %}
{% module xsrf_form_html() %}
{% block form %}
form goes here
{% end %}
{% block next %}
<input type='submit' class='usa-button usa-button-primary' value='Save & Continue' />
{% end %}
</form>
{% module xsrf_form_html() %}
{% block form %}
form goes here
{% end %}
</main>
</div>
</div>
{% block next %}
<div class='action-group'>
<input type='submit' class='usa-button usa-button-primary' value='Save & Continue' />
</div>
{% end %}
</form>
</div>
{% end %}