Create TO builder base file and use it to simplify step templates

This commit is contained in:
leigh-mil 2019-07-16 16:34:58 -04:00
parent e3c6b08d34
commit 5b208d9e8d
8 changed files with 183 additions and 276 deletions

View File

@ -1,4 +1,5 @@
import ally from 'ally.js' import ally from 'ally.js'
import stickybits from 'stickybits'
import DateSelector from '../date_selector' import DateSelector from '../date_selector'
import FormMixin from '../../mixins/form' import FormMixin from '../../mixins/form'
@ -8,9 +9,11 @@ import checkboxinput from '../checkbox_input'
import levelofwarrant from '../levelofwarrant' import levelofwarrant from '../levelofwarrant'
import multicheckboxinput from '../multi_checkbox_input' import multicheckboxinput from '../multi_checkbox_input'
import optionsinput from '../options_input' import optionsinput from '../options_input'
import SemiCollapsibleText from '../semi_collapsible_text'
import textinput from '../text_input' import textinput from '../text_input'
import uploadinput from '../upload_input' import ToForm from './to_form.js'
import toggler from '../toggler' import toggler from '../toggler'
import uploadinput from '../upload_input'
export default { export default {
name: 'base-form', name: 'base-form',
@ -22,9 +25,18 @@ export default {
levelofwarrant, levelofwarrant,
multicheckboxinput, multicheckboxinput,
optionsinput, optionsinput,
SemiCollapsibleText,
textinput, textinput,
ToForm,
toggler, toggler,
uploadinput, uploadinput,
}, },
mixins: [FormMixin], mixins: [FormMixin],
directives: {
sticky: {
inserted: el => {
stickybits(el)
},
},
},
} }

View File

@ -1,5 +1,3 @@
import stickybits from 'stickybits'
import ClinFields from '../clin_fields' import ClinFields from '../clin_fields'
import DateSelector from '../date_selector' import DateSelector from '../date_selector'
import FormMixin from '../../mixins/form' import FormMixin from '../../mixins/form'
@ -71,12 +69,4 @@ export default {
this.obligated = newObligated this.obligated = newObligated
}, },
}, },
directives: {
sticky: {
inserted: el => {
stickybits(el)
},
},
},
} }

View File

@ -0,0 +1,40 @@
{% extends "portfolios/base.html" %}
{% from "components/sticky_cta.html" import StickyCTA %}
{% block portfolio_content %}
<base-form inline-template>
<form id="to_form" action='{{ action }}' method="POST" autocomplete="off" enctype="multipart/form-data">
{{ form.csrf_token }}
{% call StickyCTA(text=('task_orders.form.sticky_header_text' | translate )) %}
<span class="action-group">
{% block next_button %}
<input
type="submit"
tabindex="0"
:disabled="!changed"
value="{{ next_button_text }}"
form="to_form"
class="usa-button usa-button-primary">
{% endblock %}
<a class="usa-button usa-button-secondary" href="{{ previous_button_link }}">
Previous
</a>
<a
href="{{ cancel_url }}"
class="action-group__action icon-link">
{{ "common.cancel" | translate }}
</a>
</span>
{% endcall %}
{% include "fragments/flash.html" %}
{% block to_builder_form_field %}{% endblock %}
</form>
</base-form>
{% endblock %}

View File

@ -1,46 +1,20 @@
{% extends "portfolios/base.html" %} {% extends "task_orders/builder_base.html" %}
{% from 'components/icon.html' import Icon %} {% from 'components/icon.html' import Icon %}
{% from "components/sticky_cta.html" import StickyCTA %} {% from "components/sticky_cta.html" import StickyCTA %}
{% from 'components/upload_input.html' import UploadInput %} {% from 'components/upload_input.html' import UploadInput %}
{% block portfolio_content %} {% if task_order_id %}
{% if task_order_id %}
{% set action = url_for("task_orders.upload_pdf", task_order_id=task_order_id) %} {% set action = url_for("task_orders.upload_pdf", task_order_id=task_order_id) %}
{% else %} {% else %}
{% set action = url_for("task_orders.upload_pdf", portfolio_id=portfolio.id) %} {% set action = url_for("task_orders.upload_pdf", portfolio_id=portfolio.id) %}
{% endif %} {% endif %}
<base-form inline-template> {% set next_button_text = "Next: Add TO Number" %}
<form id="upload-to-pdf" action='{{ action }}' method="POST" autocomplete="off" enctype="multipart/form-data"> {% set previous_button_link = cancel_url %}
{{ form.csrf_token }}
{% call StickyCTA(text=('task_orders.form.sticky_header_text' | translate )) %}
<span class="action-group">
<input
type="submit"
formaction="{{ action }}"
tabindex="0"
:disabled="!changed"
value="Next: Add TO Number"
form="upload-to-pdf"
class="usa-button usa-button-primary">
<input
type="button"
class="usa-button usa-button-secondary"
tabindex="0"
value="Previous"
form="upload-to-pdf"/>
<a
href="{{ cancel_url }}"
class="action-group__action icon-link">
{{ "common.cancel" | translate }}
</a>
</span>
{% endcall %}
{% include "fragments/flash.html" %}
{% block to_builder_form_field %}
<div class="h3"> <div class="h3">
{{ 'task_orders.form.supporting_docs_header' | translate }} {{ 'task_orders.form.supporting_docs_header' | translate }}
</div> </div>
@ -50,7 +24,4 @@
</div> </div>
{{ UploadInput(form.pdf, watch=True) }} {{ UploadInput(form.pdf, watch=True) }}
</form>
</base-form>
{% endblock %} {% endblock %}

View File

@ -1,47 +1,15 @@
{% extends "portfolios/base.html" %} {% extends "task_orders/builder_base.html" %}
{% from "components/sticky_cta.html" import StickyCTA %}
{% from 'components/text_input.html' import TextInput %} {% from 'components/text_input.html' import TextInput %}
{% block portfolio_content %} {% set action = url_for("task_orders.update_number", task_order_id=task_order_id) %}
{% set action = url_for("task_orders.update_number", task_order_id=task_order_id) %} {% set next_button_text = "Next: Add Base CLIN" %}
{% set previous_button_link = url_for("task_orders.add_pdf", task_order_id=task_order_id) %}
<base-form inline-template>
<form id="upload-to-pdf" action='{{ action }}' method="POST" autocomplete="off" enctype="multipart/form-data">
{{ form.csrf_token }}
{% call StickyCTA(text=('task_orders.form.sticky_header_text' | translate )) %}
<span class="action-group">
<input
type="submit"
formaction="{{ action }}"
tabindex="0"
:disabled="!changed"
value="Next: Add Base CLIN"
form="upload-to-pdf"
class="usa-button usa-button-primary">
<input
type="button"
class="usa-button usa-button-secondary"
tabindex="0"
value="Previous"
form="upload-to-pdf"/>
<a
href="{{ cancel_url }}"
class="action-group__action icon-link">
{{ "common.cancel" | translate }}
</a>
</span>
{% endcall %}
{% include "fragments/flash.html" %}
{% block to_builder_form_field %}
<div class="h1"> <div class="h1">
{{ 'task_orders.form.add_to_header' | translate }} {{ 'task_orders.form.add_to_header' | translate }}
</div> </div>
{{ TextInput(form.number, validation='taskOrderNumber', optional=False) }} {{ TextInput(form.number, validation='taskOrderNumber', optional=False) }}
</form>
</base-form>
{% endblock %} {% endblock %}

View File

@ -1,11 +1,14 @@
{% extends "portfolios/base.html" %} {% extends "task_orders/builder_base.html" %}
{% from 'components/date_picker.html' import DatePicker %} {% from 'components/date_picker.html' import DatePicker %}
{% from 'components/icon.html' import Icon %} {% from 'components/icon.html' import Icon %}
{% from 'components/options_input.html' import OptionsInput %} {% from 'components/options_input.html' import OptionsInput %}
{% from "components/sticky_cta.html" import StickyCTA %}
{% from 'components/text_input.html' import TextInput %} {% from 'components/text_input.html' import TextInput %}
{% set action = url_for("task_orders.update_clins", task_order_id=task_order_id) %}
{% set next_button_text = "Next: Review Funding" %}
{% set previous_button_link = url_for("task_orders.add_number", task_order_id=task_order_id) %}
{% macro LOAInput() %} {% macro LOAInput() %}
<div v-for="loa in loas"> <div v-for="loa in loas">
<textinput :name="'clins-' + clinIndex + '-loas-' + loaIndex(loa)" :watch='true' inline-template> <textinput :name="'clins-' + clinIndex + '-loas-' + loaIndex(loa)" :watch='true' inline-template>
@ -89,41 +92,12 @@
{% endmacro %} {% endmacro %}
{% block portfolio_content %} {% block to_builder_form_field %}
{% set action = url_for("task_orders.update_clins", task_order_id=task_order_id) %}
<to-form <to-form
inline-template inline-template
v-bind:initial-clin-count="{{ form.clins.data | length }}"> v-bind:initial-clin-count="{{ form.clins.data | length }}">
<form id="upload-to-pdf" action='{{ action }}' method="POST" autocomplete="off" enctype="multipart/form-data"> <div>
{{ form.csrf_token }}
{% call StickyCTA(text=('task_orders.form.sticky_header_text' | translate )) %}
<span class="action-group">
<input
type="submit"
formaction="{{ action }}"
tabindex="0"
:disabled="!changed"
value="Next: Review Funding"
form="upload-to-pdf"
class="usa-button usa-button-primary">
<input
type="button"
class="usa-button usa-button-secondary"
tabindex="0"
value="Previous"
form="upload-to-pdf"/>
<a
href="{{ cancel_url }}"
class="action-group__action icon-link">
{{ "common.cancel" | translate }}
</a>
</span>
{% endcall %}
{% include "fragments/flash.html" %}
<div class="h3"> <div class="h3">
{{ 'task_orders.form.cloud_funding_header' | translate }} {{ 'task_orders.form.cloud_funding_header' | translate }}
</div> </div>
@ -375,6 +349,6 @@
{{ Icon('plus') }} {{ Icon('plus') }}
<span>{{ 'task_orders.form.add_clin' | translate }}</span> <span>{{ 'task_orders.form.add_clin' | translate }}</span>
</button> </button>
</form> </div>
</to-form> </to-form>
{% endblock %} {% endblock %}

View File

@ -1,39 +1,21 @@
{% extends "portfolios/base.html" %} {% extends "task_orders/builder_base.html" %}
{% from "components/icon.html" import Icon %} {% from "components/icon.html" import Icon %}
{% from "components/semi_collapsible_text.html" import SemiCollapsibleText %} {% from "components/semi_collapsible_text.html" import SemiCollapsibleText %}
{% from "components/sticky_cta.html" import StickyCTA %}
{% from "components/totals_box.html" import TotalsBox %} {% from "components/totals_box.html" import TotalsBox %}
{% block portfolio_content %} {% set action = url_for('task_orders.confirm_signature', task_order_id=task_order_id) %}
{% set action = url_for("task_orders.update_number", task_order_id=task_order_id) %} {% set previous_button_link = url_for("task_orders.add_clins", task_order_id=task_order_id) %}
<div id="upload-to-pdf"> {% block next_button %}
{{ form.csrf_token }}
{% call StickyCTA(text=('task_orders.form.sticky_header_text' | translate )) %}
<span class="action-group">
<a <a
href="{{ url_for('task_orders.confirm_signature', task_order_id=task_order_id)}}" href="{{ action }}"
class="usa-button usa-button-primary"> class="usa-button usa-button-primary">
Next: Submit Task Order Next: Submit Task Order
</a> </a>
<input {% endblock %}
type="button"
class="usa-button usa-button-secondary"
tabindex="0"
value="Previous"
form="upload-to-pdf"/>
<a
href="{{ cancel_url }}"
class="action-group__action icon-link">
{{ "common.cancel" | translate }}
</a>
</span>
{% endcall %}
{% include "fragments/flash.html" %}
{% block to_builder_form_field %}
<div class="task-order"> <div class="task-order">
{{ SemiCollapsibleText() }} {{ SemiCollapsibleText() }}
@ -115,5 +97,4 @@
</div> </div>
</div> </div>
</div>
{% endblock %} {% endblock %}

View File

@ -1,40 +1,13 @@
{% extends "portfolios/base.html" %} {% extends "task_orders/builder_base.html" %}
{% from "components/alert.html" import Alert %} {% from "components/alert.html" import Alert %}
{% from "components/checkbox_input.html" import CheckboxInput %} {% from "components/checkbox_input.html" import CheckboxInput %}
{% from "components/sticky_cta.html" import StickyCTA %}
{% block portfolio_content %} {% set action = url_for("task_orders.submit_task_order", task_order_id=task_order_id) %}
{% set action = url_for("task_orders.submit_task_order", task_order_id=task_order_id) %} {% set next_button_text = "Next: Confirm & Submit" %}
{% set previous_button_link = url_for("task_orders.review", task_order_id=task_order_id) %}
<base-form inline-template>
<form id="upload-to-pdf" action='{{ action }}' method="POST" autocomplete="off" enctype="multipart/form-data">
{{ form.csrf_token }}
{% call StickyCTA(text=('task_orders.form.sticky_header_text' | translate )) %}
<span class="action-group">
<input
type="submit"
formaction="{{ action }}"
tabindex="0"
:disabled="!changed"
value="Next: Confirm & Submit"
form="upload-to-pdf"
class="usa-button usa-button-primary">
<input
type="button"
class="usa-button usa-button-secondary"
tabindex="0"
value="Previous"
form="upload-to-pdf"/>
<a
href="{{ cancel_url }}"
class="action-group__action icon-link">
{{ "common.cancel" | translate }}
</a>
</span>
{% endcall %}
{% block to_builder_form_field %}
<div> <div>
<h1>Signature confirmation: <em>Task Order #{{task_order.number}}</em></h1> <h1>Signature confirmation: <em>Task Order #{{task_order.number}}</em></h1>
</div> </div>
@ -45,6 +18,4 @@
{{ CheckboxInput(form.signature) }} {{ CheckboxInput(form.signature) }}
{% endcall %} {% endcall %}
</form>
</base-form>
{% endblock %} {% endblock %}