Skip to content

Commit

Permalink
Merge branch 'main' into NDT-751-When-uploading-Template-9-from-RFI-c…
Browse files Browse the repository at this point in the history
…ancel-still-uploads
  • Loading branch information
RRanath authored Feb 13, 2025
2 parents b095b32 + 3cf5bc6 commit ac4f861
Show file tree
Hide file tree
Showing 9 changed files with 344 additions and 100 deletions.
14 changes: 2 additions & 12 deletions .github/workflows/deploy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -133,12 +133,7 @@ jobs:
- run: ./.bin/sqitch-last-change-is-tag.sh db

deploy-to-openshift-test:
needs:
[
deploy-to-openshift-development,
ensure-sqitch-plan-ends-with-tag,
is-tagged-release,
]
needs: [deploy-to-openshift-development, is-tagged-release]
if: contains(needs.is-tagged-release.outputs.tagVersion, 'v')
runs-on: ubuntu-latest
environment:
Expand Down Expand Up @@ -194,12 +189,7 @@ jobs:
environment: test

deploy-to-openshift-production:
needs:
[
deploy-to-openshift-test,
ensure-sqitch-plan-ends-with-tag,
is-tagged-release,
]
needs: [deploy-to-openshift-test, is-tagged-release]
if: contains(needs.is-tagged-release.outputs.tagVersion, 'v')
runs-on: ubuntu-latest
environment:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-zap.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
action: zaproxy/[email protected]
with: |
token: ${{ secrets.GITHUB_TOKEN }}
docker_name: 'ghcr.io/zaproxy/zaproxy:weekly'
docker_name: 'ghcr.io/zaproxy/zaproxy:latest'
target: 'http://localhost:3000/applicantportal'
rules_file_name: '.zap/rules.tsv'
cmd_options: '-a -d -T 5 -m 2'
Expand Down
22 changes: 22 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,25 @@
## [1.243.4](https://github.com/bcgov/CONN-CCBC-portal/compare/v1.243.2...v1.243.4) (2025-02-12)

### Bug Fixes

- commas on geo names and ids ([7c680f2](https://github.com/bcgov/CONN-CCBC-portal/commit/7c680f23d910a838d637d60a1316099c9f0ca21e))
- deployment without sqitch tag ([5e227e2](https://github.com/bcgov/CONN-CCBC-portal/commit/5e227e29476e76dba8b7b7e997ff8062e4305c3b))

## [1.243.3](https://github.com/bcgov/CONN-CCBC-portal/compare/v1.243.2...v1.243.3) (2025-02-12)

### Bug Fixes

- commas on geo names and ids ([7c680f2](https://github.com/bcgov/CONN-CCBC-portal/commit/7c680f23d910a838d637d60a1316099c9f0ca21e))

## [1.243.2](https://github.com/bcgov/CONN-CCBC-portal/compare/v1.243.1...v1.243.2) (2025-02-12)

## [1.243.1](https://github.com/bcgov/CONN-CCBC-portal/compare/v1.243.0...v1.243.1) (2025-02-12)

### Bug Fixes

- handling ccbc currency fields ([83fe8ba](https://github.com/bcgov/CONN-CCBC-portal/commit/83fe8ba75b08c619e1cbbcf25a4db4531e39805c))
- not transitioning PRs which are in-progress ([e2c4c4b](https://github.com/bcgov/CONN-CCBC-portal/commit/e2c4c4b283b62314a4ad5ae65229d49fece1be4f))

# [1.243.0](https://github.com/bcgov/CONN-CCBC-portal/compare/v1.242.1...v1.243.0) (2025-02-11)

### Features
Expand Down
63 changes: 31 additions & 32 deletions app/backend/lib/dashboard/dashboard.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ import {
import { generateHeaderInfoRow, HEADER_ROW } from './header';
import {
convertStatus,
formatCurrency,
handleCbcCommunities,
handleCcbcCommunities,
handleLastMileSpeed,
Expand Down Expand Up @@ -334,37 +333,27 @@ export const generateDashboardExport = async (applicationData, cbcData) => {
{ value: handleLastMileSpeed(data?.applicationByRowId?.status) },
// connected coast network dependent
{
value: `${summaryData?.formData?.dependency?.connectedCoastNetworkDependent || ''} (${summaryData?.formDataSource?.connectedCoastNetworkDependent && summaryData?.formData?.dependency?.connectedCoastNetworkDependent ? `(${summaryData?.formDataSource?.connectedCoastNetworkDependent})` : ''})`,
value: `${summaryData?.formData?.dependency?.connectedCoastNetworkDependent || ''}`,
},
// project location ??
{ value: null },
// economic region
{
value: `${summaryData?.formData?.locations?.economicRegions || ''} ${summaryData?.formDataSource?.economicRegions ? `(${summaryData?.formDataSource?.economicRegions})` : ''}`,
},
{ value: `${summaryData?.formData?.locations?.economicRegions || ''}` },
// regional district
{
value: `${summaryData?.formData?.locations?.regionalDistricts || ''} ${summaryData?.formDataSource?.regionalDistricts ? `(${summaryData?.formDataSource?.regionalDistricts})` : ''}`,
},
{ value: `${summaryData?.formData?.locations?.regionalDistricts || ''}` },
// geographic names
{
value: `${benefitingCommunitiesNames.join(',')} ${benefitingIndigenousCommunitiesNames.join(',')} ${summaryData.formDataSource.benefitingCommunities || summaryData.formDataSource.benefitingIndigenousCommunities ? `(${summaryData.formDataSource.benefitingCommunities})` : ''}`,
value: `${benefitingCommunitiesNames.length > 0 ? benefitingCommunitiesNames.join(',') : ''}${benefitingIndigenousCommunitiesNames.length > 0 ? (benefitingCommunitiesNames.length > 0 ? ',' : '') + benefitingIndigenousCommunitiesNames.join(',') : ''}`,
},
// geo ids
{
value: `${benefitingCommunitiesIds.join(',')} ${benefitingIndigenousCommunitiesIds.join(',')}`,
value: `${benefitingCommunitiesIds.length > 0 ? benefitingCommunitiesIds.join(',') : ''}${benefitingIndigenousCommunitiesIds.length > 0 ? (benefitingCommunitiesIds.length > 0 ? ',' : '') + benefitingIndigenousCommunitiesIds.join(',') : ''}`,
},
// total communities and locales
{
value: `${summaryData?.formData?.counts?.communities || ''} ${summaryData?.formDataSource?.communities ? `(${summaryData?.formDataSource?.communities})` : ''}`,
},
{ value: summaryData?.formData?.counts?.communities || '' },
// indigenous communities
{
value: `${summaryData?.formData?.counts?.indigenousCommunities || ''} ${summaryData?.formDataSource?.indigenousCommunities ? `(${summaryData?.formDataSource?.indigenousCommunities})` : ''}`,
},
{ value: summaryData?.formData?.counts?.indigenousCommunities || '' },
// household count
{
value: `${summaryData?.formData?.counts?.totalHouseholdsImpacted || ''} ${summaryData?.formDataSource?.totalHouseholdsImpacted ? `(${summaryData?.formDataSource?.totalHouseholdsImpacted})` : ''}`,
},
{ value: summaryData?.formData?.counts?.totalHouseholdsImpacted || '' },
// transport km
{ value: null },
// highway km
Expand All @@ -373,23 +362,33 @@ export const generateDashboardExport = async (applicationData, cbcData) => {
{ value: null },
// bc funding requested
{
value: `${formatCurrency(summaryData?.formData?.funding?.bcFundingRequested)} ${summaryData?.formDataSource?.bcFundingRequested ? `(${summaryData?.formDataSource?.bcFundingRequested})` : ''}`,
value: summaryData?.formData?.funding?.bcFundingRequested,
format: '$#,##0.00',
type: Number,
},
// applicant amount
{
value: `${formatCurrency(summaryData?.formData?.funding?.applicantAmount)} ${summaryData?.formDataSource?.applicantAmount ? `(${summaryData?.formDataSource?.applicantAmount})` : ''}`,
value: summaryData?.formData?.funding?.applicantAmount,
format: '$#,##0.00',
type: Number,
},
// other funds requested
{
value: `${formatCurrency(summaryData?.formData?.funding?.otherFundingRequested)} ${summaryData?.formDataSource?.otherFundingRequested ? `(${summaryData?.formDataSource?.otherFundingRequested})` : ''}`,
value: summaryData?.formData?.funding?.otherFundingRequested,
format: '$#,##0.00',
type: Number,
},
// total fnha funding
{
value: `${formatCurrency(summaryData?.formData?.funding?.fhnaFunding)} ${summaryData?.formDataSource?.fhnaFunding ? `(${summaryData?.formDataSource?.fhnaFunding})` : ''}`,
value: summaryData?.formData?.funding?.fhnaFunding,
format: '$#,##0.00',
type: Number,
},
// total project budget
{
value: `${formatCurrency(summaryData?.formData?.funding?.totalProjectBudget)} ${summaryData?.formDataSource?.totalProjectBudget ? `(${summaryData?.formDataSource?.totalProjectBudget})` : ''}`,
value: summaryData?.formData?.funding?.totalProjectBudget,
format: '$#,##0.00',
type: Number,
},
// announced by bc/ised
{ value: convertBoolean(data?.applicationByRowId?.announced) },
Expand All @@ -399,35 +398,35 @@ export const generateDashboardExport = async (applicationData, cbcData) => {
cleanDateTime(
summaryData?.formData?.eventsAndDates?.dateApplicationReceived
) || ''
} ${summaryData?.formDataSource?.dateApplicationReceived ? `(${summaryData?.formDataSource?.dateApplicationReceived})` : ''}`,
}`,
},
// date conditionally approved
{
value: `${
cleanDateTime(
summaryData?.formData?.eventsAndDates?.dateConditionallyApproved
) || ''
} ${summaryData?.formDataSource?.dateConditionallyApproved ? `(${summaryData?.formDataSource?.dateConditionallyApproved})` : ''}`,
}`,
},
// date agreement signed
{
value: `${
cleanDateTime(
summaryData?.formData?.eventsAndDates?.dateAgreementSigned
) || ''
} ${summaryData?.formDataSource?.dateAgreementSigned ? `(${summaryData?.formDataSource?.dateAgreementSigned})` : ''}`,
}`,
},
// proposed start date
{
value: `${
cleanDateTime(
summaryData?.formData?.eventsAndDates?.proposedStartDate
) || ''
} ${summaryData?.formDataSource?.proposedStartDate ? `(${summaryData?.formDataSource?.proposedStartDate})` : ''}`,
}`,
},
// % project milestone completion
{
value: `${summaryData?.formData?.milestone?.percentProjectMilestoneComplete || ''} ${summaryData?.formDataSource?.percentProjectMilestoneComplete && summaryData?.formData?.milestone?.percentProjectMilestoneComplete ? `(${summaryData?.formDataSource?.percentProjectMilestoneComplete})` : ''}`,
value: `${summaryData?.formData?.milestone?.percentProjectMilestoneComplete || ''}`,
},
// construction completed on
{ value: null },
Expand Down Expand Up @@ -535,9 +534,9 @@ export const generateDashboardExport = async (applicationData, cbcData) => {
// regional district
{ value: communities.regionalDistricts },
// geographic names
{ value: communities.bcGeographicNames },
{ value: communities.bcGeographicNames.join(',') },
// geo ids
{ value: communities.bcGeographicIds },
{ value: communities.bcGeographicIds.join(',') },
// total communities and locales
{ value: communities.totalCount },
// indigenous communities
Expand Down
91 changes: 56 additions & 35 deletions app/components/AnalystDashboard/AllDashboard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,11 +26,10 @@ import RowCount from 'components/Table/RowCount';
import AssignLead from 'components/Analyst/AssignLead';
import StatusPill from 'components/StatusPill';
import statusStyles from 'data/statusStyles';
import Link from 'next/link';
import StatusInformationIcon from 'components/Analyst/StatusInformationIcon';
import ClearFilters from 'components/Table/ClearFilters';
import type { AllDashboardTable_query$key } from '__generated__/AllDashboardTable_query.graphql';
import { Box, IconButton, TableCellProps } from '@mui/material';
import { Box, IconButton, MenuItem, TableCellProps } from '@mui/material';
import { useFeature } from '@growthbook/growthbook-react';
import getConfig from 'next/config';
import { DateTime } from 'luxon';
Expand Down Expand Up @@ -86,15 +85,6 @@ const cbcProjectStatusConverter = (status) => {
return status;
};

const StyledLink = styled(Link)`
color: ${(props) => props.theme.color.links};
text-decoration: none;
&:hover {
text-decoration: underline;
}
`;

const StyledTableHeader = styled.div`
display: flex;
justify-content: space-between;
Expand Down Expand Up @@ -132,25 +122,6 @@ const muiTableHeadCellProps = {
},
};

const CcbcIdCell = ({ cell }) => {
const applicationId = cell.row.original?.rowId;
const isCbcProject = cell.row.original?.isCbcProject;
const linkCbc = cell.row.original?.showLink;
return (
<>
{linkCbc ? (
<StyledLink
href={`/analyst/${isCbcProject ? 'cbc' : 'application'}/${applicationId}${isCbcProject ? '' : '/summary'}`}
>
{cell.getValue()}
</StyledLink>
) : (
cell.getValue()
)}
</>
);
};

const AnalystStatusCell = ({ cell }) => {
const analystStatus = cell.row.original?.analystStatus;
return <StatusPill status={analystStatus} styles={statusStyles} />;
Expand Down Expand Up @@ -322,6 +293,7 @@ const AllDashboardTable: React.FC<Props> = ({ query }) => {
isCcbc: boolean;
rowId: any;
} | null>(null);
const globalFilterMode = useRef('contains');

const expandedRowsRef = useRef({});

Expand Down Expand Up @@ -561,8 +533,26 @@ const AllDashboardTable: React.FC<Props> = ({ query }) => {
globalFilter,
};

const customGlobalFilter = (row, id, filterValue, filterMeta) => {
const defaultMatch = MRT_FilterFns.fuzzy(row, id, filterValue, filterMeta);
const customGlobalFilter = (
row,
id,
filterValue,
filterMeta,
columnVisibility
) => {
// exclude hidden columns from global filter
const visibility = columnVisibility?.[id];
if (visibility === false) return false;
if (!filterValue) return true;
if (row.getValue(id) === null) return false;
const filterMode = globalFilterMode.current || 'contains';
let defaultMatch = false;
if (filterMode === 'fuzzy') {
defaultMatch = MRT_FilterFns.fuzzy(row, id, filterValue, filterMeta);
} else {
defaultMatch = MRT_FilterFns[filterMode](row, id, filterValue);
}

const communitiesString = row.original.communities
?.map((item) => item.geoName)
.join(',')
Expand Down Expand Up @@ -610,6 +600,7 @@ const AllDashboardTable: React.FC<Props> = ({ query }) => {
externalStatusOrder: statusOrderMap[application.node.externalStatus],
internalStatusOrder: statusOrderMap[application.node.analystStatus],
communities: getCommunities(application.node),
organizationName: application.node.organizationName || '',
}));

const allCbcApplications = showCbcProjects
Expand Down Expand Up @@ -713,7 +704,6 @@ const AllDashboardTable: React.FC<Props> = ({ query }) => {
{
accessorKey: 'projectId',
header: 'Project ID',
Cell: CcbcIdCell,
},
{
accessorKey: 'zones',
Expand Down Expand Up @@ -822,17 +812,29 @@ const AllDashboardTable: React.FC<Props> = ({ query }) => {
onSortingChange: handleOnSortChange,
onColumnFiltersChange: setColumnFilters,
autoResetAll: false,
onColumnVisibilityChange: setVisibilityPreference,
onColumnVisibilityChange: (columnVisibility) => {
setVisibilityPreference(columnVisibility);
table.setGlobalFilter(null);
},
onDensityChange: setDensity,
onShowColumnFiltersChange: setShowColumnFilters,
onColumnSizingChange: setColumnSizing,
enablePagination: false,
enableGlobalFilter,
enableGlobalFilterModes: true,
globalFilterModeOptions: ['fuzzy', 'startsWith', 'contains'],
enableBottomToolbar: false,
filterFns: {
filterNumber,
statusFilter,
customGlobalFilter,
customGlobalFilter: (row, id, filterValue, filterMeta) =>
customGlobalFilter(
row,
id,
filterValue,
filterMeta,
table.getState()?.columnVisibility
),
},
renderDetailPanel: ({ row }) => (
<AllDashboardDetailPanel row={row} filterValue={globalFilter} />
Expand All @@ -842,6 +844,25 @@ const AllDashboardTable: React.FC<Props> = ({ query }) => {
onExpandedChange: (expanded) => {
setExpanded(expanded);
},
renderGlobalFilterModeMenuItems: ({
internalFilterOptions,
onSelectFilterMode,
}) => {
return internalFilterOptions.map((option) => (
<MenuItem
key={option.toString()}
selected={option?.option === globalFilterMode.current}
onClick={() => {
onSelectFilterMode(option?.option);
// setting up for custom global filter
table.setGlobalFilterFn('customGlobalFilter');
globalFilterMode.current = option?.option;
}}
>
{option.label}
</MenuItem>
));
},
renderToolbarInternalActions: ({ table }) => (
<Box>
<IconButton size="small">
Expand Down
Loading

0 comments on commit ac4f861

Please sign in to comment.