Modul:Brug Wikidata/sandkasse: Forskelle mellem versioner

Content deleted Content added
wip (2)
m wip (3)
Linje 623:
 
-- udfør sorteringen TODO fejler pt.
local log = " log: "
table.sort(statements, function(a, b)
log = log .. " <br/>cmp: " .. mwtable.dumpObjectconcat({a=a.sortKeys, b=" / ") .. " // " .. table.concat(b.sortKeys}, " / ") .. " "
for _, stmt in pairs(statements) do
log = log .. stmt.sortKeys[1]
end
for ks, vs in pairs(sortParsed) do
local function flip(booerStigende, visStigende) -- vender sorteringen, hvis der har stået et - (minus) efter kriteriet
local ret = booerStigende
if vs.ascdescnot == "-"visStigende then ret = not ret end
log = log .. " gav (" .. tostring(erStigende) .. ", " .. tostring(visStigende) .. ") " .. tostring(ret)
return ret
end
if a.sortKeys[ks] ~= b.sortKeys[ks] then
return flip(a.sortKeys[ks] < b.sortKeys[ks], vs.ascdesc ~= "-")
end -- ellers check næste niveau
--[[
if a.sortKeys[ks] < b.sortKeys[ks] then
return flip(true)
Line 638 ⟶ 645:
return flip(false)
end -- check næste
]]--
end
return truefalse -- de var ens, bibehold sorteringen
end)
 
return nil, nil, "Sort: " .. args.sort .. log .. mw.dumpObject(sortParsed, " sortParsed ") .. " statements " .. mw.dumpObject(statements)
end