@eeplatform/nuxt-layer-common 1.7.52 → 1.7.53

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @eeplatform/nuxt-layer-common
2
2
 
3
+ ## 1.7.53
4
+
5
+ ### Patch Changes
6
+
7
+ - 2cb09c5: Integrate track and strands to enrollment form
8
+
3
9
  ## 1.7.52
4
10
 
5
11
  ### Patch Changes
@@ -1295,10 +1295,11 @@
1295
1295
  <v-col cols="12">
1296
1296
  <v-autocomplete
1297
1297
  v-model="enrollment.seniorHighInfo.track"
1298
- item-title="title"
1299
- item-value="value"
1298
+ item-title="name"
1299
+ item-value="_id"
1300
1300
  :return-object="false"
1301
- :items="tracks"
1301
+ :items="schoolTracks"
1302
+ :loading="loadingTracks"
1302
1303
  :rules="[requiredRule]"
1303
1304
  ></v-autocomplete>
1304
1305
  </v-col>
@@ -1315,10 +1316,11 @@
1315
1316
  <v-col cols="12">
1316
1317
  <v-autocomplete
1317
1318
  v-model="enrollment.seniorHighInfo.strand"
1318
- item-title="title"
1319
- item-value="value"
1319
+ item-title="name"
1320
+ item-value="_id"
1320
1321
  :return-object="false"
1321
1322
  :items="selectedTrackStrands"
1323
+ :loading="loadingStrands"
1322
1324
  :rules="[requiredRule]"
1323
1325
  ></v-autocomplete>
1324
1326
  </v-col>
@@ -2292,8 +2294,10 @@ watch(
2292
2294
  }
2293
2295
  );
2294
2296
 
2295
- const { gradeLevels, generateSchoolYears, motherTongueOptions, tracks } =
2296
- useBasicEdu();
2297
+ const { gradeLevels, generateSchoolYears, motherTongueOptions } = useBasicEdu();
2298
+
2299
+ const { getAll: getAllTracks } = useTrack();
2300
+ const { getAll: getAllStrands } = useStrand();
2297
2301
 
2298
2302
  const gradeLevelOffering = ref<Record<string, any>[]>([]);
2299
2303
 
@@ -2301,6 +2305,52 @@ const { getAll: getGradeLevels } = useGradeLevel();
2301
2305
 
2302
2306
  const theSchool = computed(() => prop.school || enrollment.value.school);
2303
2307
 
2308
+ const schoolTracks = ref<Array<Record<string, any>>>([]);
2309
+
2310
+ const { data: getTracksData, status: getTracksStatus } = await useLazyAsyncData(
2311
+ `get-tracks-enrollment-form-${theSchool.value}`,
2312
+ () => getAllTracks({ school: theSchool.value, limit: 100 }),
2313
+ {
2314
+ watch: [theSchool],
2315
+ }
2316
+ );
2317
+
2318
+ const loadingTracks = computed(() => getTracksStatus.value === "pending");
2319
+
2320
+ watchEffect(() => {
2321
+ if (getTracksData.value) {
2322
+ schoolTracks.value = getTracksData.value.items;
2323
+ }
2324
+ });
2325
+
2326
+ const schoolStrands = ref<Array<Record<string, any>>>([]);
2327
+
2328
+ const selectedTrackId = computed(
2329
+ () => enrollment.value.seniorHighInfo?.track || ""
2330
+ );
2331
+
2332
+ const { data: getStrandsData, status: getStrandsStatus } =
2333
+ await useLazyAsyncData(
2334
+ `get-strands-enrollment-form-${theSchool.value}-${selectedTrackId.value}`,
2335
+ () =>
2336
+ getAllStrands({
2337
+ school: theSchool.value,
2338
+ track: selectedTrackId.value,
2339
+ limit: 100,
2340
+ }),
2341
+ {
2342
+ watch: [theSchool, selectedTrackId],
2343
+ }
2344
+ );
2345
+
2346
+ const loadingStrands = computed(() => getStrandsStatus.value === "pending");
2347
+
2348
+ watchEffect(() => {
2349
+ if (getStrandsData.value) {
2350
+ schoolStrands.value = getStrandsData.value.items;
2351
+ }
2352
+ });
2353
+
2304
2354
  const { data: getGradeLevelReq, status: statusGradeLevel } =
2305
2355
  await useLazyAsyncData(
2306
2356
  "get-grade-level-offerings" + theSchool.value,
@@ -2328,12 +2378,7 @@ watchEffect(() => {
2328
2378
  }
2329
2379
  });
2330
2380
 
2331
- const selectedTrackStrands = computed(
2332
- () =>
2333
- tracks.find(
2334
- (track) => track.value === enrollment.value.seniorHighInfo?.track
2335
- )?.strands || []
2336
- );
2381
+ const selectedTrackStrands = computed(() => schoolStrands.value);
2337
2382
 
2338
2383
  const isSeniorHighSchool = computed(() => {
2339
2384
  const gradeLevel = enrollment.value.gradeLevel;
@@ -2350,9 +2395,11 @@ watch(
2350
2395
  enrollment.value.seniorHighInfo.strand = "";
2351
2396
  enrollment.value.seniorHighInfo.strandName = "";
2352
2397
 
2353
- const selectedTrack = tracks.find((track) => track.value === trackValue);
2398
+ const selectedTrack = schoolTracks.value.find(
2399
+ (track: Record<string, any>) => track._id === trackValue
2400
+ );
2354
2401
  if (selectedTrack && enrollment.value.seniorHighInfo) {
2355
- enrollment.value.seniorHighInfo.trackName = selectedTrack.title ?? "";
2402
+ enrollment.value.seniorHighInfo.trackName = selectedTrack.name ?? "";
2356
2403
  }
2357
2404
  }
2358
2405
  );
@@ -2364,10 +2411,10 @@ watch(
2364
2411
  if (!strandValue || !enrollment.value.seniorHighInfo) return;
2365
2412
 
2366
2413
  const selectedStrand = selectedTrackStrands.value.find(
2367
- (strand) => strand.value === strandValue
2414
+ (strand: Record<string, any>) => strand._id === strandValue
2368
2415
  );
2369
2416
  if (selectedStrand && enrollment.value.seniorHighInfo) {
2370
- enrollment.value.seniorHighInfo.strandName = selectedStrand.title ?? "";
2417
+ enrollment.value.seniorHighInfo.strandName = selectedStrand.name ?? "";
2371
2418
  }
2372
2419
  }
2373
2420
  );
@@ -0,0 +1,21 @@
1
+ export default function useStrand() {
2
+ function getAll({
3
+ page = 1,
4
+ search = "",
5
+ status = "active",
6
+ limit = 100,
7
+ school = "",
8
+ track = "",
9
+ } = {}) {
10
+ return useNuxtApp().$api<Record<string, any>>(
11
+ `/api/basic-education/strands/school/${school}`,
12
+ {
13
+ query: { page, search, status, limit, track },
14
+ }
15
+ );
16
+ }
17
+
18
+ return {
19
+ getAll,
20
+ };
21
+ }
@@ -0,0 +1,20 @@
1
+ export default function useTrack() {
2
+ function getAll({
3
+ page = 1,
4
+ search = "",
5
+ status = "active",
6
+ limit = 100,
7
+ school = "",
8
+ } = {}) {
9
+ return useNuxtApp().$api<Record<string, any>>(
10
+ `/api/basic-education/tracks/school/${school}`,
11
+ {
12
+ query: { page, search, status, limit },
13
+ }
14
+ );
15
+ }
16
+
17
+ return {
18
+ getAll,
19
+ };
20
+ }
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@eeplatform/nuxt-layer-common",
3
3
  "license": "MIT",
4
4
  "type": "module",
5
- "version": "1.7.52",
5
+ "version": "1.7.53",
6
6
  "main": "./nuxt.config.ts",
7
7
  "publishConfig": {
8
8
  "access": "public"