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 enum import Enum
from datetime import date, datetime from datetime import date
from sqlalchemy import Column, DateTime, ForeignKey, String from sqlalchemy import Column, DateTime, ForeignKey, String
from sqlalchemy.ext.hybrid import hybrid_property from sqlalchemy.ext.hybrid import hybrid_property
@ -11,12 +11,10 @@ from atst.models.clin import JEDICLINType
class Status(Enum): class Status(Enum):
STARTED = "Started"
PENDING = "Pending"
ACTIVE = "Active"
EXPIRED = "Expired"
DRAFT = "Draft" DRAFT = "Draft"
ACTIVE = "Active"
UPCOMING = "Upcoming" UPCOMING = "Upcoming"
EXPIRED = "Expired"
UNSIGNED = "Unsigned" UNSIGNED = "Unsigned"
@ -90,7 +88,7 @@ class TaskOrder(Base, mixins.TimestampsMixin):
@property @property
def start_date(self): 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 @property
def end_date(self): 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") @user_can(Permissions.VIEW_PORTFOLIO_FUNDING, message="view portfolio funding")
def portfolio_funding(portfolio_id): def portfolio_funding(portfolio_id):
portfolio = Portfolios.get(g.current_user, 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( return render_template(
"portfolios/task_orders/index.html", "portfolios/task_orders/index.html", task_orders=portfolio.task_orders
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, []),
) )

View File

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

View File

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

View File

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