From ec5c3e8ce8b47b23ae227ec5f82e7d6fafa83bcd Mon Sep 17 00:00:00 2001 From: dandds Date: Wed, 19 Sep 2018 09:06:30 -0400 Subject: [PATCH] add request name --- ...96111da617_add_name_to_request_revision.py | 28 +++++++++++++++++++ atst/forms/new_request.py | 6 ++++ atst/models/request.py | 1 + atst/models/request_revision.py | 1 + js/lib/input_validations.js | 2 +- templates/requests/screen-1.html | 1 + tests/factories.py | 1 + tests/forms/test_new_request.py | 1 + 8 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 alembic/versions/a496111da617_add_name_to_request_revision.py diff --git a/alembic/versions/a496111da617_add_name_to_request_revision.py b/alembic/versions/a496111da617_add_name_to_request_revision.py new file mode 100644 index 00000000..cdfdaf34 --- /dev/null +++ b/alembic/versions/a496111da617_add_name_to_request_revision.py @@ -0,0 +1,28 @@ +"""add name to request revision + +Revision ID: a496111da617 +Revises: 4f4defb7b440 +Create Date: 2018-09-18 16:45:59.297289 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = 'a496111da617' +down_revision = '4f4defb7b440' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('request_revisions', sa.Column('name', sa.String(), nullable=True)) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_column('request_revisions', 'name') + # ### end Alembic commands ### diff --git a/atst/forms/new_request.py b/atst/forms/new_request.py index 368fa63a..c6315b0f 100644 --- a/atst/forms/new_request.py +++ b/atst/forms/new_request.py @@ -147,6 +147,12 @@ class DetailsOfUseForm(ValidatedForm): format="%m/%d/%Y", ) + name = StringField( + "Name your Request", + description="This name serves as a reference for your initial request and the associated workspace that will be created once this request is approved. You may edit this name later.", + validators=[Required(), Length(min=4, max=100, message="Request names must be at least 4 and not more than 100 characters")] + ) + class InformationAboutYouForm(ValidatedForm): fname_request = StringField("First Name", validators=[Required(), Alphabet()]) diff --git a/atst/models/request.py b/atst/models/request.py index d7072d35..f910f40b 100644 --- a/atst/models/request.py +++ b/atst/models/request.py @@ -75,6 +75,7 @@ class Request(Base): "average_daily_traffic_gb", "rationalization_software_systems", "organization_providing_assistance", + "name", ] INFORMATION_ABOUT_YOU_FIELDS = [ "citizenship", diff --git a/atst/models/request_revision.py b/atst/models/request_revision.py index 53b3d31f..2cfee3c4 100644 --- a/atst/models/request_revision.py +++ b/atst/models/request_revision.py @@ -51,6 +51,7 @@ class RequestRevision(Base, TimestampsMixin): average_daily_traffic_gb = Column(Integer) rationalization_software_systems = Column(String) organization_providing_assistance = Column(String) + name = Column(String) # information_about_you citizenship = Column(String) diff --git a/js/lib/input_validations.js b/js/lib/input_validations.js index 1696facc..a2a7f40c 100644 --- a/js/lib/input_validations.js +++ b/js/lib/input_validations.js @@ -83,6 +83,6 @@ export default { mask: false, match: /^.{4,50}$/, unmask: [], - validationError: 'Workspace names must be at least 4 and not more than 50 characters' + validationError: 'Workspace and request names must be at least 4 and not more than 50 characters' }, } diff --git a/templates/requests/screen-1.html b/templates/requests/screen-1.html index a3b3c871..e95bce00 100644 --- a/templates/requests/screen-1.html +++ b/templates/requests/screen-1.html @@ -78,6 +78,7 @@ {{ TextInput(f.dollar_value, validation='dollars', placeholder='$0', tooltip='You may specify a different Total Spend amount to cover other JEDI Cloud services that the JEDI Cloud cost calculator was not able to estimate. Examples may include support packages from the cloud service provider.') }} {{ DateInput(f.start_date, placeholder='MM / DD / YYYY', validation='date') }} + {{ TextInput(f.name, placeholder='Request Name', validation='workspaceName') }} diff --git a/tests/factories.py b/tests/factories.py index 5cd1b7fa..dd342b09 100644 --- a/tests/factories.py +++ b/tests/factories.py @@ -108,6 +108,7 @@ class RequestFactory(Base): def create_initial_revision(cls, request, dollar_value=1000000): user = request.creator default_data = dict( + name=factory.Faker("domain_word"), am_poc=False, dodid_poc=user.dod_id, email_poc=user.email, diff --git a/tests/forms/test_new_request.py b/tests/forms/test_new_request.py index e97cc236..16fa3623 100644 --- a/tests/forms/test_new_request.py +++ b/tests/forms/test_new_request.py @@ -14,6 +14,7 @@ class TestDetailsOfUseForm: "number_user_sessions": "6", "average_daily_traffic": "0", "start_date": "12/12/2050", + "name": "blue-beluga", } migration_data = { "jedi_migration": "yes",