Update seed script with TOs of various statuses
This commit is contained in:
parent
fd159a2d80
commit
e84e61bbad
@ -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):
|
||||
|
@ -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
|
||||
)
|
||||
|
@ -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()
|
||||
|
||||
|
||||
|
@ -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 doesn’t 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 %}
|
||||
|
@ -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
|
||||
),
|
||||
|
Loading…
x
Reference in New Issue
Block a user