From 430efd211c10d60b19ff1d9c0d5f61516ef6b410 Mon Sep 17 00:00:00 2001 From: dandds Date: Thu, 20 Sep 2018 15:38:32 -0400 Subject: [PATCH 1/5] display task order info on reports page --- atst/models/request.py | 10 ++++++++++ atst/routes/workspaces.py | 12 ++++++++---- templates/workspaces/reports/index.html | 6 +++--- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/atst/models/request.py b/atst/models/request.py index d7d1f96c..ebba9cc3 100644 --- a/atst/models/request.py +++ b/atst/models/request.py @@ -216,3 +216,13 @@ class Request(Base, mixins.TimestampsMixin): @property def displayname(self): return self.latest_revision.name or self.id + + @property + def contracting_officer_full_name(self): + if self.latest_revision.fname_co: + return "{} {}".format(self.latest_revision.fname_co, self.latest_revision.lname_co) + + @property + def contracting_officer_email(self): + return self.latest_revision.email_co + diff --git a/atst/routes/workspaces.py b/atst/routes/workspaces.py index 9879d90c..b1fed5f5 100644 --- a/atst/routes/workspaces.py +++ b/atst/routes/workspaces.py @@ -105,16 +105,20 @@ def workspace_reports(workspace_id): prev_month = current_month - timedelta(days=28) two_months_ago = prev_month - timedelta(days=28) - # lets just say it expires on Christmas... ho ho ho - expiration_date = date(2018, 12, 25) - remaining_difference = expiration_date - today - remaining_days = remaining_difference.days + expiration_date = workspace.request.task_order.expiration_date + if expiration_date: + remaining_difference = expiration_date - today + remaining_days = remaining_difference.days + else: + remaining_days = 0 return render_template( "workspaces/reports/index.html", cumulative_budget=Reports.cumulative_budget(workspace), workspace_totals=Reports.workspace_totals(workspace), monthly_totals=Reports.monthly_totals(workspace), + jedi_request=workspace.request, + task_order=workspace.request.task_order, current_month=current_month, prev_month=prev_month, two_months_ago=two_months_ago, diff --git a/templates/workspaces/reports/index.html b/templates/workspaces/reports/index.html index 6da7f860..61a18e7a 100644 --- a/templates/workspaces/reports/index.html +++ b/templates/workspaces/reports/index.html @@ -56,7 +56,7 @@

Task Order

Task Order Number
-
1234567890
+
{{ task_order.number }}
@@ -87,8 +87,8 @@
Contracting Officer
- Pietro Quirines - email@email.com + {{ jedi_request.contracting_officer_full_name }} + {{ jedi_request.contracting_officer_email }}
From e668cb93d0c4f72387e7d65d45a029f6b2a1685f Mon Sep 17 00:00:00 2001 From: dandds Date: Mon, 24 Sep 2018 09:47:59 -0400 Subject: [PATCH 2/5] formatting and add financial details to requests in seed_sample script --- atst/models/request.py | 5 +++-- script/seed_sample.py | 16 +++++++++++----- tests/factories.py | 19 +++++++++++++++++++ 3 files changed, 33 insertions(+), 7 deletions(-) diff --git a/atst/models/request.py b/atst/models/request.py index ebba9cc3..9926aa12 100644 --- a/atst/models/request.py +++ b/atst/models/request.py @@ -220,9 +220,10 @@ class Request(Base, mixins.TimestampsMixin): @property def contracting_officer_full_name(self): if self.latest_revision.fname_co: - return "{} {}".format(self.latest_revision.fname_co, self.latest_revision.lname_co) + return "{} {}".format( + self.latest_revision.fname_co, self.latest_revision.lname_co + ) @property def contracting_officer_email(self): return self.latest_revision.email_co - diff --git a/script/seed_sample.py b/script/seed_sample.py index ee113afd..237b10a3 100644 --- a/script/seed_sample.py +++ b/script/seed_sample.py @@ -21,24 +21,25 @@ WORKSPACE_USERS = [ "last_name": "Knight", "email": "knight@mil.gov", "workspace_role": "developer", - "dod_id": "0000000001" + "dod_id": "0000000001", }, { "first_name": "Mario", "last_name": "Hudson", "email": "hudson@mil.gov", "workspace_role": "ccpo", - "dod_id": "0000000002" + "dod_id": "0000000002", }, { "first_name": "Louise", "last_name": "Greer", "email": "greer@mil.gov", "workspace_role": "admin", - "dod_id": "0000000003" + "dod_id": "0000000003", }, ] + def seed_db(): users = [] for dev_user in DEV_USERS.values(): @@ -65,8 +66,13 @@ def seed_db(): request = requests[0] request.task_order = TaskOrderFactory.build() + request = Requests.update( + request.id, {"financial_verification": RequestFactory.mock_financial_data()} + ) - workspace = Workspaces.create(request, name="{}'s workspace".format(user.first_name)) + workspace = Workspaces.create( + request, name="{}'s workspace".format(user.first_name) + ) for workspace_user in WORKSPACE_USERS: Workspaces.create_member(user, workspace, workspace_user) @@ -75,7 +81,7 @@ def seed_db(): workspace=workspace, name="First Project", description="This is our first project.", - environment_names=["dev", "staging", "prod"] + environment_names=["dev", "staging", "prod"], ) diff --git a/tests/factories.py b/tests/factories.py index 2f8677f0..ab8f17ca 100644 --- a/tests/factories.py +++ b/tests/factories.py @@ -3,6 +3,7 @@ import string import factory from uuid import uuid4 import datetime +from faker import Faker as _Faker from atst.forms.data import SERVICE_BRANCHES from atst.models.request import Request @@ -159,6 +160,24 @@ class RequestFactory(Base): ) return request + @classmethod + def mock_financial_data(cls): + fake = _Faker() + return { + "pe_id": "0101110F", + "fname_co": fake.first_name(), + "lname_co": fake.last_name(), + "email_co": fake.email(), + "office_co": fake.phone_number(), + "fname_cor": fake.first_name(), + "lname_cor": fake.last_name(), + "email_cor": fake.email(), + "office_cor": fake.phone_number(), + "uii_ids": "123abc", + "treasury_code": "00123456", + "ba_code": "02A", + } + class PENumberFactory(Base): class Meta: From 5d3a0873a53385a67c36724b05ad122994f3251c Mon Sep 17 00:00:00 2001 From: dandds Date: Mon, 24 Sep 2018 09:55:31 -0400 Subject: [PATCH 3/5] add link for editing workspace info to task order box on reports page --- templates/workspaces/reports/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/workspaces/reports/index.html b/templates/workspaces/reports/index.html index 61a18e7a..82bc92cf 100644 --- a/templates/workspaces/reports/index.html +++ b/templates/workspaces/reports/index.html @@ -78,7 +78,7 @@ - + Manage Task Order From 238e8ff16dda31c8d83ddf19264affd0e0ccfa01 Mon Sep 17 00:00:00 2001 From: dandds Date: Mon, 24 Sep 2018 10:15:18 -0400 Subject: [PATCH 4/5] better fake task order numbers for tests --- tests/factories.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/factories.py b/tests/factories.py index ab8f17ca..86184b70 100644 --- a/tests/factories.py +++ b/tests/factories.py @@ -191,7 +191,9 @@ class TaskOrderFactory(Base): source = Source.MANUAL funding_type = FundingType.PROC funding_type_other = None - number = factory.Faker("md5") + number = factory.LazyFunction( + lambda: "".join(random.choices(string.ascii_uppercase + string.digits, k=13)) + ) expiration_date = factory.LazyFunction( lambda: datetime.date( datetime.date.today().year + random.randrange(1, 15), 1, 1 From 218c142020d4e7da87fa3b31724e526104fd946e Mon Sep 17 00:00:00 2001 From: dandds Date: Mon, 24 Sep 2018 11:20:52 -0400 Subject: [PATCH 5/5] better date range for task order expiration date in test factory --- tests/factories.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/factories.py b/tests/factories.py index 86184b70..a5a95b38 100644 --- a/tests/factories.py +++ b/tests/factories.py @@ -196,7 +196,9 @@ class TaskOrderFactory(Base): ) expiration_date = factory.LazyFunction( lambda: datetime.date( - datetime.date.today().year + random.randrange(1, 15), 1, 1 + datetime.date.today().year + random.randrange(1, 5), + random.randrange(1, 12), + random.randrange(1, 28), ) ) clin_0001 = random.randrange(100, 100000)