diff options
| -rw-r--r-- | modules/grils/grils.go | 30 | ||||
| -rw-r--r-- | views/includes/card_gril.html | 11 | ||||
| -rw-r--r-- | views/pages/gril.html | 11 |
3 files changed, 52 insertions, 0 deletions
diff --git a/modules/grils/grils.go b/modules/grils/grils.go index 5d548e6..e6aaa11 100644 --- a/modules/grils/grils.go +++ b/modules/grils/grils.go | |||
| @@ -195,6 +195,36 @@ func (m *GrilsModule) viewGril(w http.ResponseWriter, r *http.Request, p httprou | |||
| 195 | data := m.g.Renderer.DefaultData() | 195 | data := m.g.Renderer.DefaultData() |
| 196 | data["user"] = user | 196 | data["user"] = user |
| 197 | data["gril"] = gril | 197 | data["gril"] = gril |
| 198 | |||
| 199 | // ähnliche grils holen | ||
| 200 | rows, err := m.g.DB.Query(`SELECT gril_id FROM ( | ||
| 201 | SELECT DISTINCT gril_id FROM gril_appearance WHERE appearance_id IN (SELECT appearance_id FROM gril_appearance WHERE gril_id = $1) | ||
| 202 | ) as t | ||
| 203 | ORDER BY RANDOM() | ||
| 204 | LIMIT 4;`, id) | ||
| 205 | if err != nil { | ||
| 206 | log.Println("could not get similar grils:", err) | ||
| 207 | http.Error(w, "500", http.StatusInternalServerError) | ||
| 208 | return | ||
| 209 | } | ||
| 210 | |||
| 211 | defer rows.Close() | ||
| 212 | var similar []*Gril | ||
| 213 | for rows.Next() { | ||
| 214 | var id int | ||
| 215 | if err := rows.Scan(&id); err != nil { | ||
| 216 | log.Println("error scanning for similar gril:", err) | ||
| 217 | continue | ||
| 218 | } | ||
| 219 | |||
| 220 | g, err := m.FromID(id) | ||
| 221 | if err != nil { | ||
| 222 | log.Println("invalid similar gril:", err) | ||
| 223 | continue | ||
| 224 | } | ||
| 225 | similar = append(similar, g) | ||
| 226 | } | ||
| 227 | data["SimilarGrils"] = similar | ||
| 198 | 228 | ||
| 199 | m.g.Renderer.RenderPage("gril", w, data) | 229 | m.g.Renderer.RenderPage("gril", w, data) |
| 200 | } | 230 | } |
diff --git a/views/includes/card_gril.html b/views/includes/card_gril.html new file mode 100644 index 0000000..337c9a9 --- /dev/null +++ b/views/includes/card_gril.html | |||
| @@ -0,0 +1,11 @@ | |||
| 1 | {{ define "card_gril" }} | ||
| 2 | <div class="card white"> | ||
| 3 | <div class="center-align"> | ||
| 4 | <div class="circle gril-img" style="background-image: url(/{{ .ImagePath false }})"> </div> | ||
| 5 | </div> | ||
| 6 | <div class="card-content black-text"> | ||
| 7 | <span class="card-title">{{ .RomajiName }} <small>{{ .KanjiName }}</small></span> | ||
| 8 | </div> | ||
| 9 | <div class="card-action"><a href="/gril/{{ .Slug }}">anguckieren</a></div> | ||
| 10 | </div> | ||
| 11 | {{ end }} \ No newline at end of file | ||
diff --git a/views/pages/gril.html b/views/pages/gril.html index cd92208..eb66537 100644 --- a/views/pages/gril.html +++ b/views/pages/gril.html | |||
| @@ -75,6 +75,17 @@ | |||
| 75 | </div> | 75 | </div> |
| 76 | </div> | 76 | </div> |
| 77 | </div> | 77 | </div> |
| 78 | |||
| 79 | {{ if .SimilarGrils }} | ||
| 80 | <h1>Ähnliche Grils</h1> | ||
| 81 | <div class="row"> | ||
| 82 | {{ range .SimilarGrils }} | ||
| 83 | <div class="col s3"> | ||
| 84 | {{ template "card_gril" . }} | ||
| 85 | </div> | ||
| 86 | {{ end }} | ||
| 87 | </div> | ||
| 88 | {{ end }} | ||
| 78 | </div> | 89 | </div> |
| 79 | 90 | ||
| 80 | 91 | ||
