@eeplatform/nuxt-layer-common 1.7.23 → 1.7.25
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 +12 -0
- package/components/EnrollmentForm.vue +165 -23
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @eeplatform/nuxt-layer-common
|
|
2
2
|
|
|
3
|
+
## 1.7.25
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 94e6f98: Fix get grade level query
|
|
8
|
+
|
|
9
|
+
## 1.7.24
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- ed7b645: Restrict last grade and school year options
|
|
14
|
+
|
|
3
15
|
## 1.7.23
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
|
@@ -715,10 +715,24 @@
|
|
|
715
715
|
required
|
|
716
716
|
/>
|
|
717
717
|
<v-col cols="12">
|
|
718
|
-
<v-
|
|
718
|
+
<v-combobox
|
|
719
719
|
v-model="enrollment.address.current.municipalityCity"
|
|
720
720
|
:rules="[requiredRule]"
|
|
721
|
-
|
|
721
|
+
:items="citiesMunicipalities"
|
|
722
|
+
item-title="name"
|
|
723
|
+
item-value="name"
|
|
724
|
+
:hide-no-data="false"
|
|
725
|
+
>
|
|
726
|
+
<template v-slot:no-data>
|
|
727
|
+
<v-list-item>
|
|
728
|
+
<v-list-item-title>
|
|
729
|
+
No results matching "<strong>search</strong>".
|
|
730
|
+
Press
|
|
731
|
+
<kbd>enter</kbd> to create a new one
|
|
732
|
+
</v-list-item-title>
|
|
733
|
+
</v-list-item>
|
|
734
|
+
</template>
|
|
735
|
+
</v-combobox>
|
|
722
736
|
</v-col>
|
|
723
737
|
</v-row>
|
|
724
738
|
</v-col>
|
|
@@ -731,10 +745,24 @@
|
|
|
731
745
|
required
|
|
732
746
|
/>
|
|
733
747
|
<v-col cols="12">
|
|
734
|
-
<v-
|
|
748
|
+
<v-combobox
|
|
735
749
|
v-model="enrollment.address.current.province"
|
|
736
750
|
:rules="[requiredRule]"
|
|
737
|
-
|
|
751
|
+
:items="provinces"
|
|
752
|
+
item-title="name"
|
|
753
|
+
item-value="name"
|
|
754
|
+
:hide-no-data="false"
|
|
755
|
+
>
|
|
756
|
+
<template v-slot:no-data>
|
|
757
|
+
<v-list-item>
|
|
758
|
+
<v-list-item-title>
|
|
759
|
+
No results matching "<strong>search</strong>".
|
|
760
|
+
Press
|
|
761
|
+
<kbd>enter</kbd> to create a new one
|
|
762
|
+
</v-list-item-title>
|
|
763
|
+
</v-list-item>
|
|
764
|
+
</template>
|
|
765
|
+
</v-combobox>
|
|
738
766
|
</v-col>
|
|
739
767
|
</v-row>
|
|
740
768
|
</v-col>
|
|
@@ -750,6 +778,7 @@
|
|
|
750
778
|
<v-text-field
|
|
751
779
|
v-model="enrollment.address.current.country"
|
|
752
780
|
:rules="[requiredRule]"
|
|
781
|
+
readonly
|
|
753
782
|
></v-text-field>
|
|
754
783
|
</v-col>
|
|
755
784
|
</v-row>
|
|
@@ -847,11 +876,25 @@
|
|
|
847
876
|
required
|
|
848
877
|
/>
|
|
849
878
|
<v-col cols="12">
|
|
850
|
-
<v-
|
|
879
|
+
<v-combobox
|
|
851
880
|
v-model="enrollment.address.permanent.municipalityCity"
|
|
852
881
|
:rules="[requiredRule]"
|
|
853
882
|
:readonly="sameAsCurrentAddress"
|
|
854
|
-
|
|
883
|
+
:items="citiesMunicipalities"
|
|
884
|
+
item-title="name"
|
|
885
|
+
item-value="name"
|
|
886
|
+
:hide-no-data="false"
|
|
887
|
+
>
|
|
888
|
+
<template v-slot:no-data>
|
|
889
|
+
<v-list-item>
|
|
890
|
+
<v-list-item-title>
|
|
891
|
+
No results matching "<strong>search</strong>".
|
|
892
|
+
Press
|
|
893
|
+
<kbd>enter</kbd> to create a new one
|
|
894
|
+
</v-list-item-title>
|
|
895
|
+
</v-list-item>
|
|
896
|
+
</template>
|
|
897
|
+
</v-combobox>
|
|
855
898
|
</v-col>
|
|
856
899
|
</v-row>
|
|
857
900
|
</v-col>
|
|
@@ -864,11 +907,25 @@
|
|
|
864
907
|
required
|
|
865
908
|
/>
|
|
866
909
|
<v-col cols="12">
|
|
867
|
-
<v-
|
|
910
|
+
<v-combobox
|
|
868
911
|
v-model="enrollment.address.permanent.province"
|
|
869
912
|
:rules="[requiredRule]"
|
|
870
913
|
:readonly="sameAsCurrentAddress"
|
|
871
|
-
|
|
914
|
+
:items="provinces"
|
|
915
|
+
item-title="name"
|
|
916
|
+
item-value="name"
|
|
917
|
+
:hide-no-data="false"
|
|
918
|
+
>
|
|
919
|
+
<template v-slot:no-data>
|
|
920
|
+
<v-list-item>
|
|
921
|
+
<v-list-item-title>
|
|
922
|
+
No results matching "<strong>search</strong>".
|
|
923
|
+
Press
|
|
924
|
+
<kbd>enter</kbd> to create a new one
|
|
925
|
+
</v-list-item-title>
|
|
926
|
+
</v-list-item>
|
|
927
|
+
</template>
|
|
928
|
+
</v-combobox>
|
|
872
929
|
</v-col>
|
|
873
930
|
</v-row>
|
|
874
931
|
</v-col>
|
|
@@ -1276,15 +1333,15 @@
|
|
|
1276
1333
|
<InputLabel
|
|
1277
1334
|
class="text-capitalize"
|
|
1278
1335
|
title="Last Grade Level Completed"
|
|
1279
|
-
required
|
|
1336
|
+
:required="!isKindergarten"
|
|
1280
1337
|
/>
|
|
1281
1338
|
<v-col cols="12">
|
|
1282
1339
|
<v-autocomplete
|
|
1283
1340
|
v-model="
|
|
1284
1341
|
enrollment.returningLearnerInfo.lastGradeLevelCompleted
|
|
1285
1342
|
"
|
|
1286
|
-
:rules="[requiredRule]"
|
|
1287
|
-
:items="
|
|
1343
|
+
:rules="isKindergarten ? [] : [requiredRule]"
|
|
1344
|
+
:items="allowedLastGradeLevels"
|
|
1288
1345
|
></v-autocomplete>
|
|
1289
1346
|
</v-col>
|
|
1290
1347
|
</v-row>
|
|
@@ -1295,14 +1352,14 @@
|
|
|
1295
1352
|
<InputLabel
|
|
1296
1353
|
class="text-capitalize"
|
|
1297
1354
|
title="Last School Year Completed"
|
|
1298
|
-
required
|
|
1355
|
+
:required="!isKindergarten"
|
|
1299
1356
|
/>
|
|
1300
1357
|
<v-col cols="12">
|
|
1301
1358
|
<v-autocomplete
|
|
1302
1359
|
v-model="
|
|
1303
1360
|
enrollment.returningLearnerInfo.lastSchoolYearCompleted
|
|
1304
1361
|
"
|
|
1305
|
-
:rules="[requiredRule]"
|
|
1362
|
+
:rules="isKindergarten ? [] : [requiredRule]"
|
|
1306
1363
|
:items="lastSchoolYearOptions"
|
|
1307
1364
|
></v-autocomplete>
|
|
1308
1365
|
</v-col>
|
|
@@ -1316,12 +1373,12 @@
|
|
|
1316
1373
|
<InputLabel
|
|
1317
1374
|
class="text-capitalize"
|
|
1318
1375
|
title="Last School Attended"
|
|
1319
|
-
required
|
|
1376
|
+
:required="!isKindergarten"
|
|
1320
1377
|
/>
|
|
1321
1378
|
<v-col cols="12">
|
|
1322
1379
|
<v-text-field
|
|
1323
1380
|
v-model="enrollment.returningLearnerInfo.lastSchoolAttended"
|
|
1324
|
-
:rules="[requiredRule]"
|
|
1381
|
+
:rules="isKindergarten ? [] : [requiredRule]"
|
|
1325
1382
|
></v-text-field>
|
|
1326
1383
|
</v-col>
|
|
1327
1384
|
</v-row>
|
|
@@ -1412,6 +1469,14 @@ if (prop.school) {
|
|
|
1412
1469
|
|
|
1413
1470
|
enrollment.value.createdBy = useCookie("user", cookieConfig).value ?? "";
|
|
1414
1471
|
|
|
1472
|
+
// Set default country values on mount
|
|
1473
|
+
if (!enrollment.value.address.current.country) {
|
|
1474
|
+
enrollment.value.address.current.country = "Philippines";
|
|
1475
|
+
}
|
|
1476
|
+
if (!enrollment.value.address.permanent.country) {
|
|
1477
|
+
enrollment.value.address.permanent.country = "Philippines";
|
|
1478
|
+
}
|
|
1479
|
+
|
|
1415
1480
|
const { getAll: getAllPSGC } = usePSGC();
|
|
1416
1481
|
|
|
1417
1482
|
const region = ref("");
|
|
@@ -1652,6 +1717,13 @@ watch(selectedSchool, (val) => {
|
|
|
1652
1717
|
}
|
|
1653
1718
|
});
|
|
1654
1719
|
|
|
1720
|
+
watch(
|
|
1721
|
+
() => enrollment.value.gradeLevel,
|
|
1722
|
+
() => {
|
|
1723
|
+
enrollment.value.returningLearnerInfo.lastGradeLevelCompleted = "";
|
|
1724
|
+
}
|
|
1725
|
+
);
|
|
1726
|
+
|
|
1655
1727
|
const { gradeLevels, generateSchoolYears, motherTongueOptions, tracks } =
|
|
1656
1728
|
useBasicEdu();
|
|
1657
1729
|
|
|
@@ -1660,10 +1732,10 @@ const gradeLevelOffering = ref<Record<string, any>[]>([]);
|
|
|
1660
1732
|
const { getAll: getGradeLevels } = useGradeLevel();
|
|
1661
1733
|
|
|
1662
1734
|
const { data: getGradeLevelReq } = await useLazyAsyncData(
|
|
1663
|
-
"get-grade-level-offerings" +
|
|
1664
|
-
() => getGradeLevels({ school:
|
|
1735
|
+
"get-grade-level-offerings" + prop.school,
|
|
1736
|
+
() => getGradeLevels({ school: prop.school, limit: 100 }),
|
|
1665
1737
|
{
|
|
1666
|
-
watch: [() =>
|
|
1738
|
+
watch: [() => prop.school],
|
|
1667
1739
|
}
|
|
1668
1740
|
);
|
|
1669
1741
|
|
|
@@ -1695,11 +1767,81 @@ const isSeniorHighSchool = computed(() => {
|
|
|
1695
1767
|
return ["grade-11", "grade-12"].includes(gradeLevel);
|
|
1696
1768
|
});
|
|
1697
1769
|
|
|
1770
|
+
const isKindergarten = computed(() => {
|
|
1771
|
+
const gradeLevel = enrollment.value.gradeLevel;
|
|
1772
|
+
return gradeLevel === "kindergarten" || gradeLevel === "kinder";
|
|
1773
|
+
});
|
|
1774
|
+
|
|
1775
|
+
const allowedLastGradeLevels = computed(() => {
|
|
1776
|
+
const currentGrade = enrollment.value.gradeLevel;
|
|
1777
|
+
if (!currentGrade) return gradeLevels;
|
|
1778
|
+
|
|
1779
|
+
// Define grade level order
|
|
1780
|
+
const gradeOrder = [
|
|
1781
|
+
"kindergarten",
|
|
1782
|
+
"kinder",
|
|
1783
|
+
"grade-1",
|
|
1784
|
+
"grade-2",
|
|
1785
|
+
"grade-3",
|
|
1786
|
+
"grade-4",
|
|
1787
|
+
"grade-5",
|
|
1788
|
+
"grade-6",
|
|
1789
|
+
"grade-7",
|
|
1790
|
+
"grade-8",
|
|
1791
|
+
"grade-9",
|
|
1792
|
+
"grade-10",
|
|
1793
|
+
"grade-11",
|
|
1794
|
+
"grade-12",
|
|
1795
|
+
];
|
|
1796
|
+
|
|
1797
|
+
const currentIndex = gradeOrder.indexOf(currentGrade);
|
|
1798
|
+
if (currentIndex === -1) return gradeLevels;
|
|
1799
|
+
|
|
1800
|
+
// Get grades that are equal to or one level below current grade
|
|
1801
|
+
const allowedGrades = gradeOrder.slice(
|
|
1802
|
+
Math.max(0, currentIndex - 1),
|
|
1803
|
+
currentIndex + 1
|
|
1804
|
+
);
|
|
1805
|
+
|
|
1806
|
+
// Filter gradeLevels to only include allowed grades
|
|
1807
|
+
return gradeLevels.filter((level) => {
|
|
1808
|
+
if (typeof level === "string") {
|
|
1809
|
+
return allowedGrades.includes(level);
|
|
1810
|
+
}
|
|
1811
|
+
if (typeof level === "object" && level.value) {
|
|
1812
|
+
return allowedGrades.includes(level.value);
|
|
1813
|
+
}
|
|
1814
|
+
return false;
|
|
1815
|
+
});
|
|
1816
|
+
});
|
|
1817
|
+
|
|
1698
1818
|
const effectiveSchoolYearOptions = computed(() =>
|
|
1699
1819
|
generateSchoolYears(0, "future")
|
|
1700
1820
|
);
|
|
1701
1821
|
|
|
1702
|
-
const lastSchoolYearOptions =
|
|
1822
|
+
const lastSchoolYearOptions = computed(() => {
|
|
1823
|
+
const currentSchoolYear = enrollment.value.schoolYear;
|
|
1824
|
+
const allYears = generateSchoolYears(50);
|
|
1825
|
+
|
|
1826
|
+
if (!currentSchoolYear) {
|
|
1827
|
+
// If no school year is selected, exclude only future years (after current school year)
|
|
1828
|
+
const today = new Date();
|
|
1829
|
+
const currentYear = today.getFullYear();
|
|
1830
|
+
const currentMonth = today.getMonth();
|
|
1831
|
+
// School year typically starts in August (month 7), so if we're before August,
|
|
1832
|
+
// the current school year is previous year - current year
|
|
1833
|
+
const currentSchoolYearStart =
|
|
1834
|
+
currentMonth < 7 ? currentYear - 1 : currentYear;
|
|
1835
|
+
const currentSchoolYearStr = `${currentSchoolYearStart}-${
|
|
1836
|
+
currentSchoolYearStart + 1
|
|
1837
|
+
}`;
|
|
1838
|
+
|
|
1839
|
+
return allYears.filter((year) => year <= currentSchoolYearStr);
|
|
1840
|
+
}
|
|
1841
|
+
|
|
1842
|
+
// Filter out years that are >= the selected enrollment school year
|
|
1843
|
+
return allYears.filter((year) => year < currentSchoolYear);
|
|
1844
|
+
});
|
|
1703
1845
|
|
|
1704
1846
|
const indigenousCommunitiesPhilippines = [
|
|
1705
1847
|
// Luzon (Northern Philippines) - Cordillera Groups (Igorot Subgroups)
|
|
@@ -1794,7 +1936,7 @@ watch(enrollment, (val) => {
|
|
|
1794
1936
|
enrollment.value.address.current.barangay = "";
|
|
1795
1937
|
enrollment.value.address.current.municipalityCity = "";
|
|
1796
1938
|
enrollment.value.address.current.province = "";
|
|
1797
|
-
enrollment.value.address.current.country = "";
|
|
1939
|
+
enrollment.value.address.current.country = "Philippines";
|
|
1798
1940
|
enrollment.value.address.current.zipCode = "";
|
|
1799
1941
|
enrollment.value.address.permanent.houseNumber = "";
|
|
1800
1942
|
enrollment.value.address.permanent.streetName = "";
|
|
@@ -1802,7 +1944,7 @@ watch(enrollment, (val) => {
|
|
|
1802
1944
|
enrollment.value.address.permanent.barangay = "";
|
|
1803
1945
|
enrollment.value.address.permanent.municipalityCity = "";
|
|
1804
1946
|
enrollment.value.address.permanent.province = "";
|
|
1805
|
-
enrollment.value.address.permanent.country = "";
|
|
1947
|
+
enrollment.value.address.permanent.country = "Philippines";
|
|
1806
1948
|
enrollment.value.address.permanent.zipCode = "";
|
|
1807
1949
|
}
|
|
1808
1950
|
});
|
|
@@ -1822,7 +1964,7 @@ watchEffect(() => {
|
|
|
1822
1964
|
enrollment.value.address.permanent.province =
|
|
1823
1965
|
enrollment.value.address.current.province;
|
|
1824
1966
|
enrollment.value.address.permanent.country =
|
|
1825
|
-
enrollment.value.address.current.country;
|
|
1967
|
+
enrollment.value.address.current.country || "Philippines";
|
|
1826
1968
|
enrollment.value.address.permanent.zipCode =
|
|
1827
1969
|
enrollment.value.address.current.zipCode;
|
|
1828
1970
|
} else {
|
|
@@ -1832,7 +1974,7 @@ watchEffect(() => {
|
|
|
1832
1974
|
enrollment.value.address.permanent.barangay = "";
|
|
1833
1975
|
enrollment.value.address.permanent.municipalityCity = "";
|
|
1834
1976
|
enrollment.value.address.permanent.province = "";
|
|
1835
|
-
enrollment.value.address.permanent.country = "";
|
|
1977
|
+
enrollment.value.address.permanent.country = "Philippines";
|
|
1836
1978
|
enrollment.value.address.permanent.zipCode = "";
|
|
1837
1979
|
}
|
|
1838
1980
|
});
|