mirror of
https://gitlab.dit.htwk-leipzig.de/htwk-software/htwkalender.git
synced 2025-07-16 09:38:49 +02:00
Merge branch '68-fix-event-update-bug-during-semester-change' into 'development'
Resolve "fix event update bug during semester change" See merge request htwk-software/htwkalender!101
This commit is contained in:
@ -213,6 +213,19 @@ func GetAllEventsForCourse(app *pocketbase.PocketBase, course string) (model.Eve
|
|||||||
return events, nil
|
return events, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetAllEventsForCourseAndSemester(app *pocketbase.PocketBase, course string, semester string) (model.Events, error) {
|
||||||
|
var events model.Events
|
||||||
|
|
||||||
|
// get all events from event records in the events collection
|
||||||
|
err := app.Dao().DB().Select("*").From("events").Where(dbx.NewExp("course = {:course} AND semester = {:semester}", dbx.Params{"course": course, "semester": semester})).All(&events)
|
||||||
|
if err != nil {
|
||||||
|
slog.Error("Error while getting events from database: ", "error", err)
|
||||||
|
return nil, fmt.Errorf("error while getting events from database for course %s", course)
|
||||||
|
}
|
||||||
|
|
||||||
|
return events, nil
|
||||||
|
}
|
||||||
|
|
||||||
func GetAllModulesForCourse(app *pocketbase.PocketBase, course string, semester string) (model.Events, error) {
|
func GetAllModulesForCourse(app *pocketbase.PocketBase, course string, semester string) (model.Events, error) {
|
||||||
var events model.Events
|
var events model.Events
|
||||||
|
|
||||||
|
@ -151,7 +151,7 @@ func (s *PocketBaseEventService) UpdateModulesForCourse(seminarGroup model.Semin
|
|||||||
//if there are no events in the database, save the new events
|
//if there are no events in the database, save the new events
|
||||||
|
|
||||||
//get all events for the course and the semester
|
//get all events for the course and the semester
|
||||||
dbEvents, err := db.GetAllEventsForCourse(s.app, seminarGroup.Course)
|
dbEvents, err := db.GetAllEventsForCourseAndSemester(s.app, seminarGroup.Course, seminarGroup.Semester)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -197,7 +197,7 @@ func (s *PocketBaseEventService) UpdateModulesForCourse(seminarGroup model.Semin
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
slog.Info("Course: " + seminarGroup.Course + " - Event changes: " + strconv.FormatInt(int64(len(insertList)), 10) + " new events, " + strconv.FormatInt(int64(len(deleteList)), 10) + " deleted events")
|
slog.Info("Course: " + seminarGroup.Course + " [" + seminarGroup.Semester + "] - Events: " + strconv.FormatInt(int64(len(savedEvents)), 10) + " new, " + strconv.FormatInt(int64(len(deleteList)), 10) + " deleted" + ", " + strconv.FormatInt(int64(len(dbEvents)-len(deleteList)+len(savedEvents)), 10) + " total")
|
||||||
return savedEvents, nil
|
return savedEvents, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -134,6 +134,7 @@ func parseSeminarGroup(result string) model.SeminarGroup {
|
|||||||
University: findFirstSpanWithClass(table, "header-1-0-0").FirstChild.Data,
|
University: findFirstSpanWithClass(table, "header-1-0-0").FirstChild.Data,
|
||||||
Course: course,
|
Course: course,
|
||||||
Events: events,
|
Events: events,
|
||||||
|
Semester: semester,
|
||||||
}
|
}
|
||||||
return seminarGroup
|
return seminarGroup
|
||||||
}
|
}
|
||||||
|
@ -617,6 +617,7 @@ func Test_parseSeminarGroup(t *testing.T) {
|
|||||||
want: model.SeminarGroup{
|
want: model.SeminarGroup{
|
||||||
Course: "23SAM",
|
Course: "23SAM",
|
||||||
University: "HTWK Leipzig",
|
University: "HTWK Leipzig",
|
||||||
|
Semester: "ws",
|
||||||
Events: []model.Event{
|
Events: []model.Event{
|
||||||
{
|
{
|
||||||
UUID: "6ebe83db-f29e-5ddd-ae8f-8724b5ba8959",
|
UUID: "6ebe83db-f29e-5ddd-ae8f-8724b5ba8959",
|
||||||
|
Reference in New Issue
Block a user