Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Status updates and changes #308

Merged
merged 10 commits into from
Feb 24, 2025
34 changes: 34 additions & 0 deletions submit-api/migrations/versions/357e22a9cf8f_.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
"""Remove FAILED_CONSULTATION_CHECK status from package and item

Revision ID: 357e22a9cf8f
Revises: 705145d0cf36
Create Date: 2025-02-24 11:44:48.187230

"""
from alembic import op
import sqlalchemy as sa


# revision identifiers, used by Alembic.
revision = '357e22a9cf8f'
down_revision = '705145d0cf36'
branch_labels = None
depends_on = None


def upgrade():
op.execute(
"UPDATE packages SET status = array_append(status, 'UNDER_CONSULTATION_CHECK') WHERE 'FAILED_CONSULTATION_CHECK' = ANY(status);")
op.execute("UPDATE packages SET status = array_remove(status, 'FAILED_CONSULTATION_CHECK') WHERE 'FAILED_CONSULTATION_CHECK' = ANY(status);")
op.execute("UPDATE items SET status = 'UNDER_CONSULTATION_CHECK' WHERE status = 'FAILED_CONSULTATION_CHECK';")

op.execute("ALTER TYPE packagestatus RENAME VALUE 'AWAITING_MANAGER_REVIEW' TO 'AWAITING_MANAGER_APPROVAL';")
op.execute("ALTER TYPE itemstatus RENAME VALUE 'AWAITING_MANAGER_REVIEW' TO 'AWAITING_MANAGER_APPROVAL';")
op.execute("ALTER TYPE packagestatus RENAME VALUE 'CC_AWAITING_MANAGER_REVIEW' TO 'CC_AWAITING_MANAGER_APPROVAL';")
op.execute("ALTER TYPE itemstatus RENAME VALUE 'CC_AWAITING_MANAGER_REVIEW' TO 'CC_AWAITING_MANAGER_APPROVAL';")
op.execute("ALTER TYPE packagestatus RENAME VALUE 'MP_AWAITING_MANAGER_REVIEW' TO 'MP_AWAITING_MANAGER_APPROVAL';")
op.execute("ALTER TYPE itemstatus RENAME VALUE 'MP_AWAITING_MANAGER_REVIEW' TO 'MP_AWAITING_MANAGER_APPROVAL';")


def downgrade():
pass
7 changes: 3 additions & 4 deletions submit-api/src/submit_api/enums/item_status.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,13 @@ class ItemStatus(enum.Enum):
COMPLETED = 'COMPLETED'
SUBMITTED = 'SUBMITTED'
PASSED_CONSULTATION_CHECK = 'PASSED_CONSULTATION_CHECK'
FAILED_CONSULTATION_CHECK = 'FAILED_CONSULTATION_CHECK'
UNDER_REVIEW = 'UNDER_REVIEW'
UNDER_CONSULTATION_CHECK = 'UNDER_CONSULTATION_CHECK'
REVIEW_REJECTED = 'REVIEW_REJECTED'
APPROVED = 'APPROVED'
ACCEPTED = 'ACCEPTED'
SATISFIED = 'SATISFIED'
AWAITING_MANAGER_REVIEW = 'AWAITING_MANAGER_REVIEW'
CC_AWAITING_MANAGER_REVIEW = 'CC_AWAITING_MANAGER_REVIEW'
MP_AWAITING_MANAGER_REVIEW = 'MP_AWAITING_MANAGER_REVIEW'
AWAITING_MANAGER_APPROVAL = 'AWAITING_MANAGER_APPROVAL'
CC_AWAITING_MANAGER_APPROVAL = 'CC_AWAITING_MANAGER_APPROVAL'
MP_AWAITING_MANAGER_APPROVAL = 'MP_AWAITING_MANAGER_APPROVAL'
REVISION_REQUIRED = 'REVISION_REQUIRED'
7 changes: 3 additions & 4 deletions submit-api/src/submit_api/models/package.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,11 @@ class PackageStatus(enum.Enum):
PASSED_CONSULTATION_CHECK = 'PASSED_CONSULTATION_CHECK'
UNDER_REVIEW = 'UNDER_REVIEW'
UNDER_CONSULTATION_CHECK = 'UNDER_CONSULTATION_CHECK'
FAILED_CONSULTATION_CHECK = 'FAILED_CONSULTATION_CHECK'
REVIEW_REJECTED = 'REVIEW_REJECTED'
CREATED = 'CREATED'
AWAITING_MANAGER_REVIEW = 'AWAITING_MANAGER_REVIEW'
CC_AWAITING_MANAGER_REVIEW = 'CC_AWAITING_MANAGER_REVIEW'
MP_AWAITING_MANAGER_REVIEW = 'MP_AWAITING_MANAGER_REVIEW'
AWAITING_MANAGER_APPROVAL = 'AWAITING_MANAGER_APPROVAL'
CC_AWAITING_MANAGER_APPROVAL = 'CC_AWAITING_MANAGER_APPROVAL'
MP_AWAITING_MANAGER_APPROVAL = 'MP_AWAITING_MANAGER_APPROVAL'
REVISION_REQUIRED = 'REVISION_REQUIRED'


Expand Down
14 changes: 4 additions & 10 deletions submit-api/src/submit_api/models/queries/package.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,12 +49,6 @@ def _add_passed_consultation_check(cls, aggregated_statuses: set, statuses: list
if any(status == ItemStatus.PASSED_CONSULTATION_CHECK.value for status in statuses):
aggregated_statuses.add(PackageStatus.PASSED_CONSULTATION_CHECK.value)

@classmethod
def _add_failed_consultation_check(cls, aggregated_statuses: set, statuses: list[str]):
"""Find packages that failed consultation check"""
if any(status == ItemStatus.FAILED_CONSULTATION_CHECK.value for status in statuses):
aggregated_statuses.add(PackageStatus.FAILED_CONSULTATION_CHECK.value)

@classmethod
def _add_review_rejected(cls, aggregated_statuses: set, statuses: list[str]):
"""Find packages that have been rejected during review"""
Expand Down Expand Up @@ -92,14 +86,14 @@ def add_awaiting_manager_review(cls, aggregated_statuses: set, statuses: list[st
@classmethod
def _add_awaiting_cc_manager_review(cls, aggregated_statuses: set, statuses: list[str]):
"""Find packages that have been rejected during review"""
if any(status == ItemStatus.CC_AWAITING_MANAGER_REVIEW.value for status in statuses):
aggregated_statuses.add(PackageStatus.CC_AWAITING_MANAGER_REVIEW.value)
if any(status == ItemStatus.CC_AWAITING_MANAGER_APPROVAL.value for status in statuses):
aggregated_statuses.add(PackageStatus.CC_AWAITING_MANAGER_APPROVAL.value)

@classmethod
def _add_awaiting_mp_manager_review(cls, aggregated_statuses: set, statuses: list[str]):
"""Find packages that have been rejected during review"""
if any(status == ItemStatus.MP_AWAITING_MANAGER_REVIEW.value for status in statuses):
aggregated_statuses.add(PackageStatus.MP_AWAITING_MANAGER_REVIEW.value)
if any(status == ItemStatus.MP_AWAITING_MANAGER_APPROVAL.value for status in statuses):
aggregated_statuses.add(PackageStatus.MP_AWAITING_MANAGER_APPROVAL.value)

@classmethod
def aggregate_item_statuses(cls, items: list):
Expand Down
12 changes: 4 additions & 8 deletions submit-api/src/submit_api/schemas/item.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,17 +103,13 @@ def get_item_status(status, user_type):
UserType.PROPONENT: ItemStatus.COMPLETED.value,
UserType.STAFF: ''
},
ItemStatus.FAILED_CONSULTATION_CHECK.value: {
UserType.PROPONENT: '',
UserType.STAFF: ItemStatus.FAILED_CONSULTATION_CHECK.value
},
ItemStatus.CC_AWAITING_MANAGER_REVIEW.value: {
ItemStatus.CC_AWAITING_MANAGER_APPROVAL.value: {
UserType.PROPONENT: ItemStatus.UNDER_CONSULTATION_CHECK.value,
UserType.STAFF: ItemStatus.AWAITING_MANAGER_REVIEW.value
UserType.STAFF: ItemStatus.AWAITING_MANAGER_APPROVAL.value
},
ItemStatus.MP_AWAITING_MANAGER_REVIEW.value: {
ItemStatus.MP_AWAITING_MANAGER_APPROVAL.value: {
UserType.PROPONENT: ItemStatus.UNDER_REVIEW.value,
UserType.STAFF: ItemStatus.AWAITING_MANAGER_REVIEW.value
UserType.STAFF: ItemStatus.AWAITING_MANAGER_APPROVAL.value
},
ItemStatus.REVIEW_REJECTED.value: {
UserType.PROPONENT: ItemStatus.REVISION_REQUIRED.value,
Expand Down
12 changes: 4 additions & 8 deletions submit-api/src/submit_api/schemas/package.py
Original file line number Diff line number Diff line change
Expand Up @@ -212,17 +212,13 @@ def get_package_status(status, user_type, version_obj):
UserType.PROPONENT: PackageStatus.UNDER_CONSULTATION_CHECK.value,
UserType.STAFF: PackageStatus.UNDER_CONSULTATION_CHECK.value
},
PackageStatus.FAILED_CONSULTATION_CHECK.value: {
UserType.PROPONENT: '',
UserType.STAFF: PackageStatus.FAILED_CONSULTATION_CHECK.value
},
PackageStatus.CC_AWAITING_MANAGER_REVIEW.value: {
PackageStatus.CC_AWAITING_MANAGER_APPROVAL.value: {
UserType.PROPONENT: PackageStatus.UNDER_CONSULTATION_CHECK.value,
UserType.STAFF: PackageStatus.AWAITING_MANAGER_REVIEW.value
UserType.STAFF: PackageStatus.AWAITING_MANAGER_APPROVAL.value
},
PackageStatus.MP_AWAITING_MANAGER_REVIEW.value: {
PackageStatus.MP_AWAITING_MANAGER_APPROVAL.value: {
UserType.PROPONENT: PackageStatus.UNDER_REVIEW.value,
UserType.STAFF: PackageStatus.AWAITING_MANAGER_REVIEW.value
UserType.STAFF: PackageStatus.AWAITING_MANAGER_APPROVAL.value
},
PackageStatus.REVIEW_REJECTED.value: {
UserType.PROPONENT: PackageStatus.REVISION_REQUIRED.value,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@
from submit_api.models import UpdateRequest, Package
from submit_api.models import PackageMetadata, SubmissionReviewEntry
from submit_api.models.package_metadata import PackageMetadataFields
from submit_api.models.submission import SubmissionStatus
from submit_api.models.submission_review import SubmissionReview
from submit_api.models.submission_review_entry import SubmissionReviewEntryType
from submit_api.models.update_request import UpdateRequestType
Expand Down Expand Up @@ -55,7 +54,6 @@ def approve_consultation_record(cls, item, session):
@classmethod
def reject_consultation_record(cls, item, session):
"""Reject consultation record."""
cls._update_submissions_status(item, SubmissionStatus.REJECTED, session)
update_request_data = cls._prepare_update_request_data(item)
cls._create_update_request(update_request_data, session)
package = Package.find_by_id(item.package_id)
Expand All @@ -66,6 +64,7 @@ def reject_consultation_record(cls, item, session):
actor_id=TokenInfo.get_id(),
session=session
)
item.status = ItemStatus.UNDER_CONSULTATION_CHECK.value
session.add(item)
session.flush()
return item
Expand Down
4 changes: 2 additions & 2 deletions submit-api/src/submit_api/services/submission_review.py
Original file line number Diff line number Diff line change
Expand Up @@ -138,9 +138,9 @@ def send_recommendation_to_manager(cls, item_id, session):
def _get_awaiting_manager_review_status(cls, item):
"""Get the status of the item awaiting manager review."""
if item.type.name == SubmissionItemType.MANAGEMENT_PLAN_FORM.value:
return ItemStatus.MP_AWAITING_MANAGER_REVIEW
return ItemStatus.MP_AWAITING_MANAGER_APPROVAL
if item.type.name == SubmissionItemType.CONSULTATION_RECORD.value:
return ItemStatus.CC_AWAITING_MANAGER_REVIEW
return ItemStatus.CC_AWAITING_MANAGER_APPROVAL
raise UnprocessableEntityError("Item type is not supported.")

@classmethod
Expand Down
6 changes: 3 additions & 3 deletions submit-web/src/components/PackageStatusChip/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -95,15 +95,15 @@ const statusStyles: Record<
},
label: "New",
},
AWAITING_MANAGER_REVIEW: {
AWAITING_MANAGER_APPROVAL: {
sx: {
borderRadius: 1,
border: `1px solid #F18A15`,
background: "#FFDEB8",
height: "24px",
width: "185px",
width: "196px",
},
label: "Awaiting Manager Review",
label: "Awaiting Manager Approval",
},
PASSED_CONSULTATION_CHECK: {
sx: {
Expand Down
6 changes: 3 additions & 3 deletions submit-web/src/components/SubmissionStatusChip/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -71,15 +71,15 @@ const statusStyles: Record<string, StyleProps> = {
height: "24px",
},
},
AWAITING_MANAGER_REVIEW: {
AWAITING_MANAGER_APPROVAL: {
sx: {
borderRadius: 1,
border: `1px solid #F18A15`,
background: "#FFDEB8",
height: "24px",
width: "185px",
width: "196px",
},
label: "Awaiting Manager Review",
label: "Awaiting Manager Approval",
},
PASSED_CONSULTATION_CHECK: {
sx: {
Expand Down
3 changes: 3 additions & 0 deletions submit-web/src/hooks/api/useItems.ts
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,9 @@ export const useSaveSubmissionReview = ({
queryClient.invalidateQueries({
queryKey: [QUERY_KEY.ACCOUNT_PROJECT, accountProjectId],
});
queryClient.invalidateQueries({
queryKey: [QUERY_KEY.PACKAGE_VERSIONS],
});
queryClient.removeQueries({
queryKey: [QUERY_KEY.ACCOUNT_PROJECTS],
});
Expand Down
7 changes: 1 addition & 6 deletions submit-web/src/hooks/api/usePackages.ts
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,6 @@ export const getPackageVersionsByOriginalPackageIdQueryOptions = ({
queryKey: [QUERY_KEY.PACKAGE_VERSIONS, originalPackageId],
queryFn: () => getPackageVersionsByOriginalPackageId({ originalPackageId }),
enabled: enabled && Boolean(originalPackageId),
...defaultUseQueryOptions,
});

export const useGetPackageVersionsByOriginalPackageId = ({
Expand Down Expand Up @@ -209,11 +208,7 @@ const createPackageUpdateRequest = ({
});
};

const acceptUpdateRequest = ({
packageId,
}: {
packageId: number;
}) => {
const acceptUpdateRequest = ({ packageId }: { packageId: number }) => {
return submitRequest<SubmissionPackage>({
url: `/staff/packages/${packageId}/update-request`,
method: "patch",
Expand Down
8 changes: 4 additions & 4 deletions submit-web/src/models/Package.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ export type PackageStatus =
| "NEW_SUBMISSION"
| "UNDER_CONSULTATION_CHECK"
| "PASSED_CONSULTATION_CHECK"
| "AWAITING_MANAGER_REVIEW"
| "AWAITING_MANAGER_APPROVAL"
| "FAILED_CONSULTATION_CHECK"
| "CREATED";

Expand Down Expand Up @@ -92,9 +92,9 @@ export const PACKAGE_STATUS: Record<
value: "SATISFIED",
label: "Satisfied",
},
AWAITING_MANAGER_REVIEW: {
value: "AWAITING_MANAGER_REVIEW",
label: "Awaiting Manager Review",
AWAITING_MANAGER_APPROVAL: {
value: "AWAITING_MANAGER_APPROVAL",
label: "Awaiting Manager Approval",
},
FAILED_CONSULTATION_CHECK: {
value: "FAILED_CONSULTATION_CHECK",
Expand Down
Loading