Modul:Faktenbox/Tabs/Adressen: Unterschied zwischen den Versionen

Kommentar
(+ fehlerhafte Zeiträume abfangen)
(Kommentar)
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 32: Zeile 32:
["AdresseBis"] = { querypostfix = "", default = ""}}
["AdresseBis"] = { querypostfix = "", default = ""}}


-- DB-Abfrage
-- SMW-DB-Abfrage
local query = "[[-Has subobject::".. fbdata.fullpagename .. "]][[SubObjektTyp::Adresse]]|?#-|limit=100"
local query = "[[-Has subobject::".. fbdata.fullpagename .. "]][[SubObjektTyp::Adresse]]|?#-|limit=100"
for i, a in pairs(attr) do
for i, a in pairs(attr) do
Zeile 39: Zeile 39:
local addresses = mw.smw.ask(query)
local addresses = mw.smw.ask(query)


if addresses ~= nil then
if addresses ~= nil then -- Adressen vorhanden?


-- defaults setzen fehlender Attribute
-- defaults setzen fehlender Attribute
Zeile 79: Zeile 79:
end
end
if e["AdresseVon"] ~= "" then
if e["AdresseVon"] ~= "" then
if e["AdresseBis"] ~= "" then
if e["AdresseBis"] == "" then
table.insert(bracket, " " .. lfd.formatDate(e["AdresseVon"]))
table.insert(bracket, "seit")
else
table.insert(bracket, "seit " .. lfd.formatDate(e["AdresseVon"]))
end
end
table.insert(bracket, lfd.formatDate(e["AdresseVon"]))
end
end
if e["AdresseBis"] ~= "" and e["AdresseBis"] ~= e["AdresseVon"] then
if e["AdresseBis"] ~= "" and e["AdresseBis"] ~= e["AdresseVon"] then
if e["AdresseVon"] ~= "" then
if e["AdresseVon"] ~= "" then
table.insert(bracket, "- " .. lfd.formatDate(e["AdresseBis"]))
table.insert(bracket, "-")
else
else
table.insert(bracket, "bis " .. lfd.formatDate(e["AdresseBis"]))
table.insert(bracket, "bis")
end
end
table.insert(bracket, lfd.formatDate(e["AdresseBis"]))
end
end
if #bracket > 0 then
if #bracket > 0 then
Zeile 97: Zeile 97:
t = t .. "\n"
t = t .. "\n"
end
end
end
 
end -- Ende if Adressen vorhanden


-- Tab draus machen
-- Tab draus machen
Zeile 108: Zeile 109:
-- mw.log("sortIndex(address)")
-- mw.log("sortIndex(address)")
-- mw.logObject(address)
-- mw.logObject(address)
-- Datums-Index holen
local von_sort_index = p.smwDate2SortIndex(address["AdresseVon"], "von")
local von_sort_index = p.smwDate2SortIndex(address["AdresseVon"], "von")
local bis_sort_index = p.smwDate2SortIndex(address["AdresseBis"], "bis")
local bis_sort_index = p.smwDate2SortIndex(address["AdresseBis"], "bis")
Zeile 131: Zeile 133:
bis_sort_index = 77777777
bis_sort_index = 77777777
end
end
end
-- Übernahme fehlender Index von
-- fehlerhafte Zeiträume abfangen
elseif von_sort_index == 0 and bis_sort_index ~= 0 then
if von_sort_index > bis_sort_index then
von_sort_index = bis_sort_index
von_sort_index = bis_sort_index
end
-- Übernahme fehlender Index bis
-- Übernahme fehlender Index von => bis oder umgekehrt
elseif bis_sort_index == 0 and von_sort_index ~= 0 then
if von_sort_index == 0 and bis_sort_index ~= 0 then
von_sort_index = bis_sort_index
end
if bis_sort_index == 0 and von_sort_index ~= 0 then
bis_sort_index = von_sort_index
bis_sort_index = von_sort_index
-- Korrektur von > bis
elseif von_sort_index > bis_sort_index then
von_sort_index = bis_sort_index -- den kleineren übernehmen
end
end
-- mw.log(von_sort_index .. " - " .. bis_sort_index)
-- mw.log(von_sort_index .. " - " .. bis_sort_index)