Reports task order info #159975038
This commit is contained in:
dandds 2018-09-24 14:44:02 -04:00 committed by GitHub
commit 4f4c1892ba
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 59 additions and 15 deletions

View File

@ -216,3 +216,14 @@ class Request(Base, mixins.TimestampsMixin):
@property @property
def displayname(self): def displayname(self):
return self.latest_revision.name or self.id 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

View File

@ -105,16 +105,20 @@ def workspace_reports(workspace_id):
prev_month = current_month - timedelta(days=28) prev_month = current_month - timedelta(days=28)
two_months_ago = prev_month - timedelta(days=28) two_months_ago = prev_month - timedelta(days=28)
# lets just say it expires on Christmas... ho ho ho expiration_date = workspace.request.task_order.expiration_date
expiration_date = date(2018, 12, 25) if expiration_date:
remaining_difference = expiration_date - today remaining_difference = expiration_date - today
remaining_days = remaining_difference.days remaining_days = remaining_difference.days
else:
remaining_days = 0
return render_template( return render_template(
"workspaces/reports/index.html", "workspaces/reports/index.html",
cumulative_budget=Reports.cumulative_budget(workspace), cumulative_budget=Reports.cumulative_budget(workspace),
workspace_totals=Reports.workspace_totals(workspace), workspace_totals=Reports.workspace_totals(workspace),
monthly_totals=Reports.monthly_totals(workspace), monthly_totals=Reports.monthly_totals(workspace),
jedi_request=workspace.request,
task_order=workspace.request.task_order,
current_month=current_month, current_month=current_month,
prev_month=prev_month, prev_month=prev_month,
two_months_ago=two_months_ago, two_months_ago=two_months_ago,

View File

@ -21,24 +21,25 @@ WORKSPACE_USERS = [
"last_name": "Knight", "last_name": "Knight",
"email": "knight@mil.gov", "email": "knight@mil.gov",
"workspace_role": "developer", "workspace_role": "developer",
"dod_id": "0000000001" "dod_id": "0000000001",
}, },
{ {
"first_name": "Mario", "first_name": "Mario",
"last_name": "Hudson", "last_name": "Hudson",
"email": "hudson@mil.gov", "email": "hudson@mil.gov",
"workspace_role": "ccpo", "workspace_role": "ccpo",
"dod_id": "0000000002" "dod_id": "0000000002",
}, },
{ {
"first_name": "Louise", "first_name": "Louise",
"last_name": "Greer", "last_name": "Greer",
"email": "greer@mil.gov", "email": "greer@mil.gov",
"workspace_role": "admin", "workspace_role": "admin",
"dod_id": "0000000003" "dod_id": "0000000003",
}, },
] ]
def seed_db(): def seed_db():
users = [] users = []
for dev_user in DEV_USERS.values(): for dev_user in DEV_USERS.values():
@ -65,8 +66,13 @@ def seed_db():
request = requests[0] request = requests[0]
request.task_order = TaskOrderFactory.build() 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: for workspace_user in WORKSPACE_USERS:
Workspaces.create_member(user, workspace, workspace_user) Workspaces.create_member(user, workspace, workspace_user)
@ -75,7 +81,7 @@ def seed_db():
workspace=workspace, workspace=workspace,
name="First Project", name="First Project",
description="This is our first project.", description="This is our first project.",
environment_names=["dev", "staging", "prod"] environment_names=["dev", "staging", "prod"],
) )

View File

@ -56,7 +56,7 @@
<h2 class='to-summary__heading'>Task Order</h2> <h2 class='to-summary__heading'>Task Order</h2>
<dl class='to-summary__to-number'> <dl class='to-summary__to-number'>
<dt class='usa-sr-only'>Task Order Number</dt> <dt class='usa-sr-only'>Task Order Number</dt>
<dd>1234567890</dd> <dd>{{ task_order.number }}</dd>
</dl> </dl>
</div> </div>
@ -78,7 +78,7 @@
</div> </div>
</dl> </dl>
<a href='#' class='icon-link'> <a href='{{ url_for("workspaces.workspace", workspace_id=workspace.id) }}' class='icon-link'>
Manage Task Order Manage Task Order
</a> </a>
</div> </div>
@ -87,8 +87,8 @@
<dl class='to-summary__co'> <dl class='to-summary__co'>
<dt>Contracting Officer</dt> <dt>Contracting Officer</dt>
<dd> <dd>
Pietro Quirines {{ jedi_request.contracting_officer_full_name }}
<a class='icon-link' href='mailto:email@email.com'>email@email.com</a> <a class='icon-link' href='mailto:{{ jedi_request.contracting_officer_email }}'>{{ jedi_request.contracting_officer_email }}</a>
</dd> </dd>
</dl> </dl>

View File

@ -3,6 +3,7 @@ import string
import factory import factory
from uuid import uuid4 from uuid import uuid4
import datetime import datetime
from faker import Faker as _Faker
from atst.forms.data import SERVICE_BRANCHES from atst.forms.data import SERVICE_BRANCHES
from atst.models.request import Request from atst.models.request import Request
@ -159,6 +160,24 @@ class RequestFactory(Base):
) )
return request 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 PENumberFactory(Base):
class Meta: class Meta:
@ -172,10 +191,14 @@ class TaskOrderFactory(Base):
source = Source.MANUAL source = Source.MANUAL
funding_type = FundingType.PROC funding_type = FundingType.PROC
funding_type_other = None 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( expiration_date = factory.LazyFunction(
lambda: datetime.date( 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) clin_0001 = random.randrange(100, 100000)