Skip to content

Commit 054e509

Browse files
authored
Merge pull request #1577 from bcgov/tasks/ecer-5327
ecer-5327 icra management page completed, partial completion for refe…
2 parents fe58346 + 0186f60 commit 054e509

File tree

11 files changed

+440
-8
lines changed

11 files changed

+440
-8
lines changed

src/ECER.Clients.RegistryPortal/ECER.Clients.RegistryPortal.Server/ICRA/ICRAEligibilitiesEndpoints.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,7 @@ public record InternationalCertification
155155
public IEnumerable<Applications.FileInfo> Files { get; set; } = Array.Empty<Applications.FileInfo>();
156156
public IEnumerable<string> DeletedFiles { get; set; } = Array.Empty<string>();
157157
public IEnumerable<string> NewFiles { get; set; } = Array.Empty<string>();
158+
public InternationalCertificationStatus Status { get; set; }
158159
}
159160

160161
public enum CertificateStatus
@@ -186,6 +187,19 @@ public enum ICRAStatus
186187
ReadyforAssessment
187188
}
188189

190+
public enum InternationalCertificationStatus
191+
{
192+
ApplicationSubmitted,
193+
Approved,
194+
Draft,
195+
ICRAEligibilitySubmitted,
196+
Inactive,
197+
InProgress,
198+
Rejected,
199+
UnderReview,
200+
WaitingforResponse,
201+
}
202+
189203
public record ICRAEligibilitySubmissionRequest(string Id);
190204
public record SubmitICRAEligibilityResponse(ICRAEligibility Eligibility);
191205

src/ECER.Clients.RegistryPortal/ecer.clients.registryportal.client/src/api/icra.ts

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,20 @@ const createOrUpdateDraftIcraEligibility = async (
3030
});
3131
};
3232

33-
const submitIcraEligibilityApplication = async (eligibilityId: string): Promise<ApiResponse<Components.Schemas.SubmitICRAEligibilityResponse | null | undefined>> => {
33+
const getIcraEligibilityStatus = async (eligibilityId: string): Promise<ApiResponse<Components.Schemas.ICRAEligibilityStatus | null | undefined>> => {
34+
const client = await getClient();
35+
const pathParameters = {
36+
id: eligibilityId,
37+
};
38+
39+
return await apiResultHandler.execute<Components.Schemas.ICRAEligibilityStatus | null | undefined>({
40+
request: client.icra_status_get(pathParameters),
41+
});
42+
};
43+
44+
const submitIcraEligibilityApplication = async (
45+
eligibilityId: string,
46+
): Promise<ApiResponse<Components.Schemas.SubmitICRAEligibilityResponse | null | undefined>> => {
3447
const client = await getClient();
3548
const body: Components.Schemas.ICRAEligibilitySubmissionRequest = {
3649
id: eligibilityId,
@@ -42,4 +55,4 @@ const submitIcraEligibilityApplication = async (eligibilityId: string): Promise<
4255
});
4356
};
4457

45-
export { createOrUpdateDraftIcraEligibility, getIcraEligibilities, submitIcraEligibilityApplication };
58+
export { createOrUpdateDraftIcraEligibility, getIcraEligibilities, getIcraEligibilityStatus, submitIcraEligibilityApplication };

src/ECER.Clients.RegistryPortal/ecer.clients.registryportal.client/src/components/ApplicationSummaryActionListItem.vue

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<v-card elevation="0" rounded="0" class="border-t border-b">
33
<v-card-text>
44
<div class="d-flex" :class="[smAndUp ? 'space-between align-center' : 'flex-column']">
5-
<div v-if="!active">
5+
<div v-if="!active || !showLink">
66
<p>{{ text }}</p>
77
</div>
88
<a v-else href="#" @click.prevent="buttonClick">
@@ -37,6 +37,11 @@ export default defineComponent({
3737
type: Function,
3838
required: true,
3939
},
40+
showLink: {
41+
type: Boolean,
42+
required: false,
43+
default: true,
44+
},
4045
},
4146
setup: async () => {
4247
const { smAndUp } = useDisplay();

src/ECER.Clients.RegistryPortal/ecer.clients.registryportal.client/src/components/Breadcrumb.vue

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -388,6 +388,23 @@ export default defineComponent({
388388
{ title: "Declaration", disabled: true, href: "/icra-eligibility/declaration" },
389389
];
390390
391+
case "manage-icra-eligibility":
392+
return [
393+
...this.baseItems,
394+
{ title: "Apply with international certification", disabled: true, href: `/icra-eligibility/manage/${params.icraEligibilityId}` },
395+
];
396+
397+
case "manage-icra-eligibility-work-experience-references":
398+
return [
399+
...this.baseItems,
400+
{ title: "Apply with international certification", disabled: false, href: `/icra-eligibility/manage/${params.icraEligibilityId}` },
401+
{
402+
title: "Employment experience references",
403+
disabled: true,
404+
href: `/icra-eligibility/manage/${params.icraEligibilityId}/icra-work-experience-references`,
405+
},
406+
];
407+
391408
default:
392409
return this.baseItems;
393410
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
<template>
2+
<v-container>
3+
<Breadcrumb />
4+
<h1>Employment experience references</h1>
5+
<br />
6+
<h2>Provide proof of 2 years of independent ECE practice.</h2>
7+
<br />
8+
<p>Your employment experience must:</p>
9+
<br />
10+
<ul class="ml-10">
11+
<li>Have been completed within the last 5 years</li>
12+
<li>Not overlap (any overlapping employment experience will only be counted once)</li>
13+
<li>Have been completed while holding valid ECE certification</li>
14+
</ul>
15+
<br />
16+
<p>If your employment experience was completed at multiple locations:</p>
17+
<br />
18+
<ul class="ml-10">
19+
<li>Provide a reference from each person</li>
20+
<li>You may enter up to 6 references</li>
21+
</ul>
22+
</v-container>
23+
</template>
24+
<script>
25+
import { defineComponent } from "vue";
26+
import { useRouter } from "vue-router";
27+
import { useDisplay } from "vuetify";
28+
29+
import Breadcrumb from "@/components/Breadcrumb.vue";
30+
31+
export default defineComponent({
32+
name: "ManageWorkExperienceReferenceList",
33+
components: { Breadcrumb },
34+
props: {
35+
icraEligibilityId: {
36+
type: String,
37+
required: true,
38+
},
39+
},
40+
setup: async (props) => {
41+
const { smAndUp } = useDisplay();
42+
const router = useRouter();
43+
44+
return {
45+
smAndUp,
46+
47+
router,
48+
};
49+
},
50+
computed: {},
51+
methods: {},
52+
});
53+
</script>

0 commit comments

Comments
 (0)