scheduletemplate.go 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. package api
  2. import (
  3. "../settings"
  4. "encoding/json"
  5. "fmt"
  6. "net/http"
  7. "../schedule"
  8. // "strconv"
  9. // "errors"
  10. // "math/rand"
  11. )
  12. var tmpteachers []schedule.Teacher
  13. var tmpcabinets []schedule.Cabinet
  14. var tmpgroups []schedule.Group
  15. var tmpsubjects []schedule.Subject
  16. // var tmplessons []schedule.LessonJSON
  17. func GetDataTeachers(w http.ResponseWriter, r *http.Request) {
  18. tmpteachers = nil
  19. tmpcabinets = nil
  20. var classrooms []Classroom
  21. var teachers []Teacher
  22. settings.DB.Find(&teachers)
  23. settings.DB.Find(&classrooms)
  24. var cabinet schedule.Cabinet
  25. for _, room := range classrooms{
  26. cabinet.Name = room.Name
  27. cabinet.IsComputer = room.Iscomputer
  28. tmpcabinets = append(tmpcabinets, cabinet)
  29. }
  30. for _, teacher := range teachers{
  31. var scheduleTeacher schedule.Teacher
  32. scheduleTeacher.Name = teacher.Name + " " + string(teacher.Surname[:2]) + "." + string(teacher.Patronymic[:2]) + "."
  33. for _, room := range classrooms{
  34. if teacher.IDClassroom == room.ID {
  35. var tmpcabinet schedule.Cabinet
  36. tmpcabinet.Name = room.Name
  37. tmpcabinet.IsComputer = room.Iscomputer
  38. scheduleTeacher.Cabinets = append(scheduleTeacher.Cabinets, tmpcabinet)
  39. tmpcabinet = schedule.Cabinet{}
  40. break
  41. }
  42. }
  43. tmpteachers = append(tmpteachers, scheduleTeacher)
  44. }
  45. jsondata, err := json.MarshalIndent(tmpteachers, "", "\t")
  46. if err!= nil {
  47. println(err)
  48. }
  49. settings.WriteFile("input/teachers.json", string(jsondata))
  50. json.NewEncoder(w).Encode(tmpteachers)
  51. }
  52. func GetDataGroups(w http.ResponseWriter, r *http.Request){
  53. var groups []Group
  54. var subjects []Subject
  55. var tmpsubofgroup []Subjectofgroup
  56. settings.DB.Find(&groups)
  57. settings.DB.Find(&subjects)
  58. for _, group := range groups{
  59. settings.DB.Where("id_group = ?", group.ID).Find(&tmpsubofgroup)
  60. var tmpgroup schedule.Group
  61. tmpgroup.Name = group.Groupnumber
  62. tmpgroup.Quantity = group.Studentsquantity
  63. for _, subject := range tmpsubofgroup{
  64. var tmpsubject schedule.Subject
  65. var tsubject Subject
  66. var teacher Teacher
  67. var semester Semester
  68. settings.DB.Where("id = ?", subject.ID).First(&tsubject)
  69. settings.DB.Where("id = ?", subject.IDTeacher).First(&teacher)
  70. settings.DB.Where("id = ?", subject.IDSemester).First(&semester)
  71. tmpsubject.Name = tsubject.Shortname
  72. tmpsubject.Teacher = teacher.Name + " " + string(teacher.Surname[:2]) + "." + string(teacher.Patronymic[:2]) + "."
  73. // tmpsubject.Teacher2 = tmpsubject.Teacher // TODO
  74. if tsubject.IDStype == 1{
  75. tmpsubject.IsComputer = false
  76. // tmpsubject.Theory = 0
  77. // tmpsubject.Practice.A = subject.Hoursquantity/2
  78. // tmpsubject.Practice.B = subject.Hoursquantity/2
  79. } else if tsubject.IDStype == 0{
  80. tmpsubject.IsComputer = true
  81. // tmpsubject.Theory = subject.Hoursquantity/2
  82. // tmpsubject.Practice.A = 0
  83. // tmpsubject.Practice.B = 0
  84. }
  85. fmt.Println(semester)
  86. // tmpsubject.WeekLessons.A = (subject.Hoursquantity/semester.Weeksquantity)/2
  87. // tmpsubject.WeekLessons.B = (subject.Hoursquantity/semester.Weeksquantity)/2
  88. tmpsubjects = append(tmpsubjects, tmpsubject)
  89. }
  90. }
  91. // jsondata, err := json.MarshalIndent(tmpteachers, "", "\t")
  92. // if err!= nil {
  93. // println(err)
  94. // }
  95. // settings.WriteFile("input/groups.json", string(jsondata))
  96. json.NewEncoder(w).Encode(tmpgroups)
  97. }