|
@@ -42,10 +42,21 @@ func GetGroups(args map[string]string) (interface{}, error) {
|
|
|
|
|
|
func GetGroupsAll(args map[string]string) (interface{}, error) {
|
|
func GetGroupsAll(args map[string]string) (interface{}, error) {
|
|
var groups []*Group
|
|
var groups []*Group
|
|
|
|
+
|
|
if err := DB().Preload("Teachers").Order("name").Find(&groups).Error; err != nil {
|
|
if err := DB().Preload("Teachers").Order("name").Find(&groups).Error; err != nil {
|
|
return nil, err
|
|
return nil, err
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ for _, group := range groups {
|
|
|
|
+ if group.Query != "" {
|
|
|
|
+ err := group.updateTeachersAssociation()
|
|
|
|
+ if err != nil {
|
|
|
|
+ return nil, err
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
return groups, nil
|
|
return groups, nil
|
|
}
|
|
}
|
|
|
|
|
|
@@ -58,6 +69,13 @@ func GetGroupAll(args map[string]string) (interface{}, error) {
|
|
return nil, err
|
|
return nil, err
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ if group.Query != "" {
|
|
|
|
+ err := group.updateTeachersAssociation()
|
|
|
|
+ if err != nil {
|
|
|
|
+ return nil, err
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
return group, nil
|
|
return group, nil
|
|
}
|
|
}
|
|
|
|
|
|
@@ -197,6 +215,17 @@ func (group *Group) RestAPIPath() string {
|
|
return "groupes"
|
|
return "groupes"
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+func (group *Group) updateTeachersAssociation() error {
|
|
|
|
+ teachers, err := group.executeTeacherQuery()
|
|
|
|
+ if err != nil {
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+ if err := DB().Model(group).Association("Teachers").Replace(teachers).Error; err != nil {
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+ return nil
|
|
|
|
+}
|
|
|
|
+
|
|
func (group *Group) executeTeacherQuery() ([]*Teacher, error) {
|
|
func (group *Group) executeTeacherQuery() ([]*Teacher, error) {
|
|
var (
|
|
var (
|
|
result []*Teacher
|
|
result []*Teacher
|