From 96bf755a922972555880db193e19b56a22f8f3ae Mon Sep 17 00:00:00 2001
From: Gabriel Jonathan <23520034@std.stei.itb.ac.id>
Date: Mon, 26 Apr 2021 21:56:31 +0700
Subject: [PATCH] Hotfixed student curriculum year dropdown list to display all
 curriculum years.

---
 frontend/src/views/Curriculum/Curriculum.vue | 33 ++++++++++++++++++--
 1 file changed, 30 insertions(+), 3 deletions(-)

diff --git a/frontend/src/views/Curriculum/Curriculum.vue b/frontend/src/views/Curriculum/Curriculum.vue
index 182cd791..0b9a401c 100644
--- a/frontend/src/views/Curriculum/Curriculum.vue
+++ b/frontend/src/views/Curriculum/Curriculum.vue
@@ -76,8 +76,9 @@
                         @change="reloadCurriculum"
                         v-model="curriculumYear"
                       >
-                        <option value="2019">2019</option>
-                        <option value="2013">2013</option>
+                        <option v-for="item in curriculumYears" :key="item.id">
+                          {{ item }}
+                        </option>
                       </select>
                     </div>
                   </div>
@@ -257,10 +258,14 @@ export default {
       curriculumYear: 2019,
       compulsoryCourses: [],
       electiveCourses: [],
-      processedCompulsoryCourses: null
+      processedCompulsoryCourses: null,
+      // Hotfix
+      coursesList: [],
+      curriculumYears: []
     };
   },
   async mounted() {
+    await this.getAllCourses();
     await this.getStudentMajorAndFaculty();
     await this.checkUsedOptions();
     await this.getAllFaculties();
@@ -546,6 +551,28 @@ export default {
         .catch((error) => {
           console.error(error);
         });
+    },
+    // Hotfix
+    async getAllCourses() {
+      await axios
+        .get(process.env.VUE_APP_API_ENDPOINT + "/course")
+        .then((response) => {
+          if (response.status == 200) {
+            this.coursesList.splice(0, this.coursesList.length);
+            this.coursesList = response.data;
+            this.getCurriculumYears(response.data);
+          }
+        })
+        .catch((error) => {
+          console.error(error);
+        });
+    },
+    getCurriculumYears(coursesList) {
+      for (let i = 0; i < coursesList.length; i++) {
+        if (!this.curriculumYears.includes(coursesList[i].curriculumYear)) {
+          this.curriculumYears.push(coursesList[i].curriculumYear);
+        }
+      }
     }
   }
 };
-- 
GitLab