Merge branch '40-auto-ws-ss-selection-by-system-time' into 'main'

Resolve "auto ws/ss selection by system time"

Closes #40

See merge request ekresse/htwkalender!27
This commit is contained in:
ekresse
2024-03-17 23:07:23 +00:00
3 changed files with 63 additions and 6 deletions

View File

@ -19,18 +19,19 @@ func GetAllCoursesForSemesterWithEvents(app *pocketbase.PocketBase, semester str
if err != nil {
return nil, err
} else {
// remove empty courses
// remove empty courses like " " or ""
courses = removeEmptyCourses(courses)
return courses, nil
}
}
// removeEmptyCourses removes empty courses from the list of courses
func removeEmptyCourses(courses []string) []string {
var filteredCourses []string
for index, course := range courses {
if functions.OnlyWhitespace(course) || len(course) == 0 {
filteredCourses = append(courses[:index], courses[index+1:]...)
if !functions.OnlyWhitespace(course) || len(course) != 0 {
filteredCourses = append(filteredCourses, courses[index])
}
}
return filteredCourses

View File

@ -0,0 +1,39 @@
package events
import (
"reflect"
"testing"
)
func Test_removeEmptyCourses(t *testing.T) {
type args struct {
courses []string
}
tests := []struct {
name string
args args
want []string
}{
{
name: "Test remove empty courses",
args: args{
courses: []string{"", "test", "test2", ""},
},
want: []string{"test", "test2"},
},
{
name: "Test remove empty courses",
args: args{
courses: []string{"", "test", "test2", "", "test3"},
},
want: []string{"test", "test2", "test3"},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := removeEmptyCourses(tt.args.courses); !reflect.DeepEqual(got, tt.want) {
t.Errorf("removeEmptyCourses() = %v, want %v", got, tt.want)
}
})
}
}

View File

@ -26,6 +26,18 @@ async function getCourses() {
return { name: course };
});
});
// replace selected course if it is not available in the new courses list
if (
selectedCourse.value.name !== "" &&
!courses.value.some((course) => course.name === selectedCourse.value.name)
) {
selectedCourse.value = { name: "" };
}
// if course is selected, get the modules for the selected course
if (selectedCourse.value.name !== "") {
await getModules();
}
}
const store = moduleStore();
@ -42,9 +54,14 @@ const semesters: ComputedRef<{ name: string; value: string }[]> = computed(
],
);
const selectedSemester: Ref<{ name: string; value: string }> = ref(
semesters.value[0],
);
// return current semester summer form march to august and winter from september to february
const currentSemester: { name: string; value: string } =
new Date().getMonth() >= 2 && new Date().getMonth() <= 7
? semesters.value[1]
: semesters.value[0];
const selectedSemester: Ref<{ name: string; value: string }> =
ref(currentSemester);
//if semesters get changed, refresh the selected semester ref with a watcher
watch(