mirror of
https://codeberg.org/metamuffin/abrechenbarkeit.git
synced 2024-12-29 16:14:36 +00:00
sort users based on most recent action rather than lua table randomness
This commit is contained in:
parent
587b9361b9
commit
ef820b584e
1 changed files with 34 additions and 5 deletions
|
@ -166,6 +166,34 @@ local function last_txns()
|
|||
return users
|
||||
end
|
||||
|
||||
local function get_active_users()
|
||||
local user_balances = {}
|
||||
for time, username, amount, _, _, _ in read_log() do
|
||||
user_balances[username] = {
|
||||
time = time,
|
||||
username = username,
|
||||
balance = (user_balances[username] or {balance = 0}).balance + amount
|
||||
}
|
||||
end
|
||||
|
||||
local users = {}
|
||||
for _, user in pairs(user_balances) do
|
||||
table.insert(users, user)
|
||||
end
|
||||
|
||||
table.sort(users, function(a,b) return a.time > b.time end)
|
||||
for k, user in pairs(users) do
|
||||
io.stderr:write(string.format("%s %s %s %s\n",
|
||||
k,
|
||||
os.date("!%Y-%m-%dT%H:%M:%SZ", user.time),
|
||||
user.username,
|
||||
user.balance
|
||||
))
|
||||
end
|
||||
|
||||
return users
|
||||
end
|
||||
|
||||
local function error_box(message)
|
||||
return string.format([[<div class="notif error"><p>Error: %s</p></div>]], message)
|
||||
end
|
||||
|
@ -339,17 +367,18 @@ local function r_index()
|
|||
<h3>User Creation</h3>
|
||||
<label for="username">Username: </label>
|
||||
<input type="text" name="create_user" id="username" />
|
||||
<input type="submit" value="Continue" />
|
||||
<input type="submit" value="Continue" class="button amount-ntr" />
|
||||
</form>
|
||||
]])
|
||||
print("<ul>")
|
||||
for username, balance in pairs(balances()) do
|
||||
|
||||
for _, user in ipairs(get_active_users()) do
|
||||
print(string.format([[
|
||||
<li><a href="/%s"><span class="name">%s</span> <span class="amount amount-%s">%.02f€</span></a></li>
|
||||
]],
|
||||
urlencode(username),
|
||||
escape(username),
|
||||
balance >= 0 and "pos" or "neg", balance / 100
|
||||
urlencode(user.username),
|
||||
escape(user.username),
|
||||
user.balance >= 0 and "pos" or "neg", user.balance / 100
|
||||
))
|
||||
end
|
||||
print("</ul>")
|
||||
|
|
Loading…
Reference in a new issue