2023-08-04 17:30:28 (UTC-03:00)
Marcel Rodrigues <marcelgmr@gmail.com>
get author names and links
diff --git a/data.lua b/data.lua index d562eca..1cdb687 100644 --- a/data.lua +++ b/data.lua @@ -105,6 +105,15 @@ function Model:get_user(nick) return self.db:execute("SELECT * FROM User WHERE nick = ?;", nick)[1] end +function Model:get_indexed_users() + local query = "SELECT id, nick, name FROM User;" + local users = {} + for _, user in ipairs(self.db:execute(query)) do + users[user.id] = {nick=user.nick, name=user.name} + end + return users +end + function Model:create_invite(user_id) local uuid = auth.hex(auth.uuid4()) local expire = "unixepoch('now', '+2 days')" diff --git a/skopos.lua b/skopos.lua index a2cfda4..b2b7e09 100644 --- a/skopos.lua +++ b/skopos.lua @@ -221,9 +221,13 @@ function App:routes() if proj == nil then return "not found", 404 end local tick = self.model:get_ticket(proj.id, tonumber(code)) if tick == nil then return "not found", 404 end + local users = self.model:get_indexed_users() -- TODO: load comments local comments = {} - local env = {title=self.title, user=user, proj=proj, tick=tick, comments=comments} + local env = { + title=self.title, user=user, proj=proj, tick=tick, + users=users, comments=comments + } return lud.template.render_file("view/ticket.html", env) end}, {"POST", "/p/([-_%w]+)/t", diff --git a/view/ticket.html b/view/ticket.html index 84c3229..faffc2c 100644 --- a/view/ticket.html +++ b/view/ticket.html @@ -20,7 +20,8 @@ <h1>{{$tick.title}}</h1> <div class="header-details"> <p class="date">Date: {{os.date("%Y-%m-%d", $tick.time)}}</p> - <p class="author">Author: {{$tick.user_id}}</p> + % set author = $users[$tick.user_id] + <p class="author">Author: <a href="/u/{{$author.nick}}">{{$author.name}}</a></p> </div> <pre>{{$tick.desc}}</pre> </div> @@ -30,7 +31,8 @@ <div class="comment"> <div class="header-details"> <p class="date">Date: {{os.date("%Y-%m-%d", $comment.time)}}</p> - <p class="author">Author: {{$comment.user_id}}</p> + % set author = $users[$comment.user_id] + <p class="author">Author: <a href="/u/{{$author.nick}}">{{$author.name}}</a></p> </div> <pre>{{$comment.text}}</pre> </div>