|
@@ -31,29 +31,16 @@ type Activity struct {
|
|
|
|
|
|
Hours int
|
|
Hours int
|
|
|
|
|
|
- prevTeacherID uint
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-type ActivityForUpdate struct {
|
|
|
|
- Activity Activity
|
|
|
|
-
|
|
|
|
- AllClasses []*Class
|
|
|
|
- AllSubjects []*Subject
|
|
|
|
- AllTeachers []*Teacher
|
|
|
|
- AllStudents []*Student
|
|
|
|
-
|
|
|
|
- SelectedStudent map[uint]string
|
|
|
|
- SelectedTeacher map[uint]string
|
|
|
|
- SelectedSupplyTeacher map[uint]string
|
|
|
|
- SelectedSubject map[uint]string
|
|
|
|
- SelectedClass map[uint]string
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-type ActivityForAdd struct {
|
|
|
|
- AllClasses []*Class
|
|
|
|
- AllSubjects []*Subject
|
|
|
|
- AllTeachers []*Teacher
|
|
|
|
- AllStudents []*Student
|
|
|
|
|
|
+ AllClasses []*Class `gorm:"-"`
|
|
|
|
+ AllSubjects []*Subject `gorm:"-"`
|
|
|
|
+ AllTeachers []*Teacher `gorm:"-"`
|
|
|
|
+ AllStudents []*Student `gorm:"-"`
|
|
|
|
+
|
|
|
|
+ SelectedStudent map[uint]string `gorm:"-"`
|
|
|
|
+ SelectedTeacher map[uint]string `gorm:"-"`
|
|
|
|
+ SelectedSupplyTeacher map[uint]string `gorm:"-"`
|
|
|
|
+ SelectedSubject map[uint]string `gorm:"-"`
|
|
|
|
+ SelectedClass map[uint]string `gorm:"-"`
|
|
}
|
|
}
|
|
|
|
|
|
func (a *Activity) GetID() uint { return a.ID }
|
|
func (a *Activity) GetID() uint { return a.ID }
|
|
@@ -68,7 +55,7 @@ func (a *Activity) String() string {
|
|
}
|
|
}
|
|
|
|
|
|
if a.SupplyTeacher != nil {
|
|
if a.SupplyTeacher != nil {
|
|
- result += fmt.Sprintf(" (S %s)", a.SupplyTeacher.String())
|
|
|
|
|
|
+ result += fmt.Sprintf(" (SUPPL %s)", a.SupplyTeacher.String())
|
|
}
|
|
}
|
|
|
|
|
|
result += " " + strconv.Itoa(a.Hours) + "h"
|
|
result += " " + strconv.Itoa(a.Hours) + "h"
|
|
@@ -76,140 +63,140 @@ func (a *Activity) String() string {
|
|
return result
|
|
return result
|
|
}
|
|
}
|
|
|
|
|
|
-func GetActivity(args map[string]string) (interface{}, error) {
|
|
|
|
- var activity Activity
|
|
|
|
- if err := DB().First(&activity, args["id"]).Error; err != nil {
|
|
|
|
- return nil, err
|
|
|
|
- }
|
|
|
|
- return &activity, nil
|
|
|
|
-}
|
|
|
|
|
|
+func (a *Activity) Create(args map[string]string, r *http.Request) (interface{}, error) {
|
|
|
|
+ if r.Method == "GET" {
|
|
|
|
+ activity := new(Activity)
|
|
|
|
|
|
-func GetActivityAll(args map[string]string) (interface{}, error) {
|
|
|
|
- var activity Activity
|
|
|
|
|
|
+ if err := DB().Find(&activity.AllClasses).Error; err != nil {
|
|
|
|
+ return nil, err
|
|
|
|
+ }
|
|
|
|
|
|
- id := args["id"]
|
|
|
|
|
|
+ if err := DB().Find(&activity.AllSubjects).Error; err != nil {
|
|
|
|
+ return nil, err
|
|
|
|
+ }
|
|
|
|
|
|
- if err := DB().Preload("Student").Preload("Teacher").Preload("Subject").Preload("Class").First(&activity, id).Error; err != nil {
|
|
|
|
- return nil, err
|
|
|
|
- }
|
|
|
|
- return &activity, nil
|
|
|
|
-}
|
|
|
|
|
|
+ if err := DB().Find(&activity.AllTeachers).Error; err != nil {
|
|
|
|
+ return nil, err
|
|
|
|
+ }
|
|
|
|
|
|
-func GetActivityForUpdate(args map[string]string) (interface{}, error) {
|
|
|
|
- var data ActivityForUpdate
|
|
|
|
|
|
+ if err := DB().Find(&activity.AllStudents).Error; err != nil {
|
|
|
|
+ return nil, err
|
|
|
|
+ }
|
|
|
|
|
|
- id := args["id"]
|
|
|
|
|
|
+ return activity, nil
|
|
|
|
+ } else {
|
|
|
|
+ activity := new(Activity)
|
|
|
|
+ err := renderer.Decode(activity, r)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return nil, err
|
|
|
|
+ }
|
|
|
|
+ activity, err = CreateActivity(activity)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return nil, err
|
|
|
|
+ }
|
|
|
|
|
|
- if err := DB().Preload("SupplyTeacher").Preload("Teacher").Preload("Subject").Preload("Class").First(&data.Activity, id).Error; err != nil {
|
|
|
|
- return nil, err
|
|
|
|
|
|
+ return activity, nil
|
|
}
|
|
}
|
|
-
|
|
|
|
- if err := DB().Find(&data.AllClasses).Error; err != nil {
|
|
|
|
- return nil, err
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if err := DB().Find(&data.AllSubjects).Error; err != nil {
|
|
|
|
- return nil, err
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if err := DB().Find(&data.AllTeachers).Error; err != nil {
|
|
|
|
- return nil, err
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if err := DB().Find(&data.AllStudents).Error; err != nil {
|
|
|
|
- return nil, err
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- data.SelectedTeacher = make(map[uint]string)
|
|
|
|
- data.SelectedTeacher[data.Activity.TeacherID] = "selected"
|
|
|
|
-
|
|
|
|
- data.SelectedSupplyTeacher = make(map[uint]string)
|
|
|
|
- data.SelectedSupplyTeacher[data.Activity.SupplyTeacherID] = "selected"
|
|
|
|
-
|
|
|
|
- data.SelectedStudent = make(map[uint]string)
|
|
|
|
- data.SelectedStudent[data.Activity.StudentID] = "selected"
|
|
|
|
-
|
|
|
|
- data.SelectedClass = make(map[uint]string)
|
|
|
|
- data.SelectedClass[data.Activity.ClassID] = "selected"
|
|
|
|
-
|
|
|
|
- data.SelectedSubject = make(map[uint]string)
|
|
|
|
- data.SelectedSubject[data.Activity.SubjectID] = "selected"
|
|
|
|
- return data, nil
|
|
|
|
}
|
|
}
|
|
|
|
|
|
-func GetActivityForAdd(args map[string]string) (interface{}, error) {
|
|
|
|
- var data ActivityForAdd
|
|
|
|
-
|
|
|
|
- if err := DB().Find(&data.AllClasses).Error; err != nil {
|
|
|
|
- return nil, err
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if err := DB().Find(&data.AllSubjects).Error; err != nil {
|
|
|
|
- return nil, err
|
|
|
|
- }
|
|
|
|
|
|
+func (a *Activity) Read(args map[string]string, r *http.Request) (interface{}, error) {
|
|
|
|
+ var activity Activity
|
|
|
|
|
|
- if err := DB().Find(&data.AllTeachers).Error; err != nil {
|
|
|
|
- return nil, err
|
|
|
|
- }
|
|
|
|
|
|
+ id := args["id"]
|
|
|
|
|
|
- if err := DB().Find(&data.AllStudents).Error; err != nil {
|
|
|
|
|
|
+ if err := DB().Preload("Student").Preload("Teacher").Preload("Subject").Preload("Class").First(&activity, id).Error; err != nil {
|
|
return nil, err
|
|
return nil, err
|
|
}
|
|
}
|
|
|
|
|
|
- return data, nil
|
|
|
|
|
|
+ return &activity, nil
|
|
}
|
|
}
|
|
|
|
|
|
-func GetActivitiesAll(args map[string]string) (interface{}, error) {
|
|
|
|
|
|
+func (a *Activity) ReadAll(args map[string]string, r *http.Request) (interface{}, error) {
|
|
var activities []*Activity
|
|
var activities []*Activity
|
|
|
|
+
|
|
if err := DB().Preload("Teacher").Preload("Subject").Preload("Class").Order("name").Find(&activities).Error; err != nil {
|
|
if err := DB().Preload("Teacher").Preload("Subject").Preload("Class").Order("name").Find(&activities).Error; err != nil {
|
|
return nil, err
|
|
return nil, err
|
|
}
|
|
}
|
|
- return activities, nil
|
|
|
|
-}
|
|
|
|
|
|
|
|
-func GetActivities(args map[string]string) (interface{}, error) {
|
|
|
|
- var activities []*Activity
|
|
|
|
- if err := DB().Order("surname,name").Find(&activities).Error; err != nil {
|
|
|
|
- return nil, err
|
|
|
|
- }
|
|
|
|
return activities, nil
|
|
return activities, nil
|
|
}
|
|
}
|
|
|
|
|
|
-func SaveActivity(activity interface{}) (interface{}, error) {
|
|
|
|
- if err := DB().Save(activity).Error; err != nil {
|
|
|
|
- return nil, err
|
|
|
|
|
|
+func (a *Activity) Update(args map[string]string, r *http.Request) (interface{}, error) {
|
|
|
|
+ if r.Method == "GET" {
|
|
|
|
+ result, err := a.Read(args, r)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return nil, err
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ activity := result.(*Activity)
|
|
|
|
+
|
|
|
|
+ if err := DB().Find(&activity.AllClasses).Error; err != nil {
|
|
|
|
+ return nil, err
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if err := DB().Find(&activity.AllSubjects).Error; err != nil {
|
|
|
|
+ return nil, err
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if err := DB().Find(&activity.AllTeachers).Error; err != nil {
|
|
|
|
+ return nil, err
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if err := DB().Find(&activity.AllStudents).Error; err != nil {
|
|
|
|
+ return nil, err
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ activity.SelectedTeacher = make(map[uint]string)
|
|
|
|
+ activity.SelectedTeacher[activity.TeacherID] = "selected"
|
|
|
|
+
|
|
|
|
+ activity.SelectedSupplyTeacher = make(map[uint]string)
|
|
|
|
+ activity.SelectedSupplyTeacher[activity.SupplyTeacherID] = "selected"
|
|
|
|
+
|
|
|
|
+ activity.SelectedStudent = make(map[uint]string)
|
|
|
|
+ activity.SelectedStudent[activity.StudentID] = "selected"
|
|
|
|
+
|
|
|
|
+ activity.SelectedClass = make(map[uint]string)
|
|
|
|
+ activity.SelectedClass[activity.ClassID] = "selected"
|
|
|
|
+
|
|
|
|
+ activity.SelectedSubject = make(map[uint]string)
|
|
|
|
+ activity.SelectedSubject[activity.SubjectID] = "selected"
|
|
|
|
+
|
|
|
|
+ return activity, nil
|
|
|
|
+ } else {
|
|
|
|
+ activity, err := a.Read(args, r)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return nil, err
|
|
|
|
+ }
|
|
|
|
+ err = renderer.Decode(activity, r)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return nil, err
|
|
|
|
+ }
|
|
|
|
+ _, err = SaveActivity(activity)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return nil, err
|
|
|
|
+ }
|
|
|
|
+ activity, err = a.Read(args, r)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return nil, err
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return activity.(*Activity), nil
|
|
}
|
|
}
|
|
- return activity, nil
|
|
|
|
}
|
|
}
|
|
|
|
|
|
-func UpdateActivity(args map[string]string, r *http.Request) (IDer, error) {
|
|
|
|
- activity, err := GetActivity(args)
|
|
|
|
- if err != nil {
|
|
|
|
- return nil, err
|
|
|
|
- }
|
|
|
|
- err = renderer.Decode(activity, r)
|
|
|
|
|
|
+func (a *Activity) Delete(args map[string]string, r *http.Request) (interface{}, error) {
|
|
|
|
+ activity, err := a.Read(args, r)
|
|
if err != nil {
|
|
if err != nil {
|
|
return nil, err
|
|
return nil, err
|
|
}
|
|
}
|
|
- _, err = SaveActivity(activity)
|
|
|
|
- if err != nil {
|
|
|
|
- return nil, err
|
|
|
|
- }
|
|
|
|
- activity, err = GetActivity(args)
|
|
|
|
- if err != nil {
|
|
|
|
|
|
+ if err := DB().Unscoped().Delete(activity.(*Activity)).Error; err != nil {
|
|
return nil, err
|
|
return nil, err
|
|
}
|
|
}
|
|
return activity.(*Activity), nil
|
|
return activity.(*Activity), nil
|
|
}
|
|
}
|
|
|
|
|
|
-func AddActivity(args map[string]string, r *http.Request) (IDer, error) {
|
|
|
|
- activity := new(Activity)
|
|
|
|
- err := renderer.Decode(activity, r)
|
|
|
|
- if err != nil {
|
|
|
|
- return nil, err
|
|
|
|
- }
|
|
|
|
- activity, err = CreateActivity(activity)
|
|
|
|
- if err != nil {
|
|
|
|
|
|
+func SaveActivity(activity interface{}) (interface{}, error) {
|
|
|
|
+ if err := DB().Save(activity).Error; err != nil {
|
|
return nil, err
|
|
return nil, err
|
|
}
|
|
}
|
|
return activity, nil
|
|
return activity, nil
|
|
@@ -221,14 +208,3 @@ func CreateActivity(activity *Activity) (*Activity, error) {
|
|
}
|
|
}
|
|
return activity, nil
|
|
return activity, nil
|
|
}
|
|
}
|
|
-
|
|
|
|
-func DeleteActivity(args map[string]string, r *http.Request) (IDer, error) {
|
|
|
|
- activity, err := GetActivity(args)
|
|
|
|
- if err != nil {
|
|
|
|
- return nil, err
|
|
|
|
- }
|
|
|
|
- if err := DB().Unscoped().Delete(activity.(*Activity)).Error; err != nil {
|
|
|
|
- return nil, err
|
|
|
|
- }
|
|
|
|
- return activity.(*Activity), nil
|
|
|
|
-}
|
|
|