Update seed script with TOs of various statuses

This commit is contained in:
richard-dds 2019-06-06 17:39:41 -04:00
parent fd159a2d80
commit e84e61bbad
5 changed files with 30 additions and 47 deletions

View File

@ -1,5 +1,5 @@
from enum import Enum
from datetime import date, datetime
from datetime import date
from sqlalchemy import Column, DateTime, ForeignKey, String
from sqlalchemy.ext.hybrid import hybrid_property
@ -11,12 +11,10 @@ from atst.models.clin import JEDICLINType
class Status(Enum):
STARTED = "Started"
PENDING = "Pending"
ACTIVE = "Active"
EXPIRED = "Expired"
DRAFT = "Draft"
ACTIVE = "Active"
UPCOMING = "Upcoming"
EXPIRED = "Expired"
UNSIGNED = "Unsigned"
@ -90,7 +88,7 @@ class TaskOrder(Base, mixins.TimestampsMixin):
@property
def start_date(self):
return min((c.start_date for c in self.clins), default=None)
return min((c.start_date for c in self.clins), default=self.time_created.date())
@property
def end_date(self):

View File

@ -34,19 +34,7 @@ def review_task_order(task_order_id):
@user_can(Permissions.VIEW_PORTFOLIO_FUNDING, message="view portfolio funding")
def portfolio_funding(portfolio_id):
portfolio = Portfolios.get(g.current_user, portfolio_id)
task_orders_by_status = defaultdict(list)
for task_order in portfolio.task_orders:
task_orders_by_status[task_order.status].append(task_order)
active_task_orders = task_orders_by_status.get(TaskOrderStatus.ACTIVE, [])
return render_template(
"portfolios/task_orders/index.html",
pending_task_orders=(
task_orders_by_status.get(TaskOrderStatus.STARTED, [])
+ task_orders_by_status.get(TaskOrderStatus.PENDING, [])
),
active_task_orders=active_task_orders,
expired_task_orders=task_orders_by_status.get(TaskOrderStatus.EXPIRED, []),
"portfolios/task_orders/index.html", task_orders=portfolio.task_orders
)

View File

@ -1,7 +1,7 @@
# Add root application dir to the python path
import os
import sys
from datetime import timedelta, date
from datetime import timedelta, date, timedelta
import random
from faker import Faker
@ -31,6 +31,7 @@ from tests.factories import (
random_service_branch,
random_task_order_number,
TaskOrderFactory,
CLINFactory,
)
fake = Faker()
@ -160,16 +161,26 @@ def add_members_to_portfolio(portfolio):
def add_task_orders_to_portfolio(portfolio):
# TODO: after CLINs are implemented, vary the start/end dates of TOs
create_task_order(portfolio)
create_task_order(portfolio)
create_task_order(portfolio)
today = date.today()
future = today + timedelta(days=100)
yesterday = today - timedelta(days=1)
draft_to = TaskOrderFactory.build(portfolio=portfolio, pdf=None)
unsigned_to = TaskOrderFactory.build(portfolio=portfolio)
upcoming_to = TaskOrderFactory.build(portfolio=portfolio, signed_at=yesterday)
expired_to = TaskOrderFactory.build(portfolio=portfolio, signed_at=yesterday)
active_to = TaskOrderFactory.build(portfolio=portfolio, signed_at=yesterday)
def create_task_order(portfolio):
# TODO: after CLINs are implemented add them to TO
task_order = TaskOrderFactory.build(portfolio=portfolio)
db.session.add(task_order)
clins = [
CLINFactory.build(task_order=unsigned_to, start_date=today, end_date=today),
CLINFactory.build(task_order=upcoming_to, start_date=future, end_date=future),
CLINFactory.build(task_order=expired_to, start_date=yesterday, end_date=yesterday),
CLINFactory.build(task_order=active_to, start_date=yesterday, end_date=future),
]
task_orders = [draft_to, unsigned_to, upcoming_to, expired_to, active_to]
db.session.add_all(task_orders + clins)
db.session.commit()

View File

@ -70,7 +70,9 @@
<div class="portfolio-funding">
{% if not active_task_orders and not pending_task_orders %}
{% if task_orders %}
{{ TaskOrderList(task_orders) }}
{% else %}
{{ EmptyState(
'This portfolio doesnt have any active or pending task orders.',
action_label='Add a New Task Order',
@ -78,18 +80,6 @@
icon='cloud',
) }}
{% endif %}
{% if pending_task_orders %}
{{ TaskOrderList(pending_task_orders, label='warning') }}
{% endif %}
{% if active_task_orders %}
{{ TaskOrderList(active_task_orders, label='success') }}
{% endif %}
{% if expired_task_orders %}
{{ TaskOrderList(expired_task_orders, label='error') }}
{% endif %}
</div>
{% endblock %}

View File

@ -29,15 +29,11 @@ def test_period_of_performance_is_first_to_last_clin():
CLINFactory.create(
start_date=intermediate_start_date, end_date=intermediate_end_date
),
CLINFactory.create(
start_date=start_date, end_date=intermediate_end_date
),
CLINFactory.create(start_date=start_date, end_date=intermediate_end_date),
CLINFactory.create(
start_date=intermediate_start_date, end_date=intermediate_end_date
),
CLINFactory.create(
start_date=intermediate_start_date, end_date=end_date
),
CLINFactory.create(start_date=intermediate_start_date, end_date=end_date),
CLINFactory.create(
start_date=intermediate_start_date, end_date=intermediate_end_date
),