|
@@ -6,8 +6,6 @@ import (
|
|
|
"html/template"
|
|
|
"io/ioutil"
|
|
|
"net/http"
|
|
|
- "sort"
|
|
|
- "strings"
|
|
|
|
|
|
"github.com/gorilla/mux"
|
|
|
"github.com/gorilla/schema"
|
|
@@ -22,7 +20,7 @@ var (
|
|
|
SELECT DISTINCT teachers.* FROM activities
|
|
|
INNER JOIN subjects ON subjects.id=activities.subject_id
|
|
|
INNER JOIN teachers on teachers.id=activities.teacher_id
|
|
|
-WHERE subject_id=2 GROUP BY activities.teacher_id;
|
|
|
+WHERE subject_id=? GROUP BY activities.teacher_id ORDER BY teachers.Surname;
|
|
|
`
|
|
|
)
|
|
|
|
|
@@ -30,16 +28,12 @@ func subjectsHandler() http.Handler {
|
|
|
fn := func(w http.ResponseWriter, r *http.Request) {
|
|
|
var subjects []*orm.Subject
|
|
|
|
|
|
- if err := orm.DB().Find(&subjects).Error; err != nil {
|
|
|
+ if err := orm.DB().Order("name").Find(&subjects).Error; err != nil {
|
|
|
panic(err)
|
|
|
}
|
|
|
|
|
|
for _, subject := range subjects {
|
|
|
orm.DB().Raw(selectUniqueSubjectTeachers, subject.ID).Scan(&subject.Teachers)
|
|
|
- sort.Slice(subject.Teachers, func(i, j int) bool {
|
|
|
- return strings.ToLower(subject.Teachers[i].Surname) < strings.ToLower(subject.Teachers[j].Surname)
|
|
|
- })
|
|
|
-
|
|
|
}
|
|
|
|
|
|
if err := renderer.Render(w, "base", "subjects", subjects); err != nil {
|
|
@@ -59,10 +53,6 @@ func subjectsShowHandler() http.Handler {
|
|
|
|
|
|
orm.DB().Raw(selectUniqueSubjectTeachers, mux.Vars(r)["id"]).Scan(&subject.Teachers)
|
|
|
|
|
|
- sort.Slice(subject.Teachers, func(i, j int) bool {
|
|
|
- return strings.ToLower(subject.Teachers[i].Name) < strings.ToLower(subject.Teachers[j].Name)
|
|
|
- })
|
|
|
-
|
|
|
if err := renderer.Render(w, "base", "subjects_show", subject); err != nil {
|
|
|
panic(err)
|
|
|
}
|