Modul:Gebäude: Unterschied zwischen den Versionen

Aus FürthWiki

+ Shoah-Opfer
(Sortierung DatenTab)
(+ Shoah-Opfer)
Zeile 9: Zeile 9:
function p.Faktenbox(frame)
function p.Faktenbox(frame)
-- mw.log("Faktenbox(frame)")
-- mw.log("Faktenbox(frame)")
-- mw.logObject(frame)
-- mw.logObject(frame, "frame")
-- Konsolenzeile zum Debuggen:
-- Konsolenzeile zum Debuggen:
-- =p.Faktenbox{pargs={Bild="Schwabacher Straße 12 Dez 2020 1.jpg",["Straße"]="Schwabacher Straße",Hausnummer="12",["TeilDesGebäudeKomplexes"]="TDGK",AktenNr="D-5-63-000-1464",Objekt="Häusle"}}
-- =p.Faktenbox{pargs={Bild="Schwabacher Straße 12 Dez 2020 1.jpg",["Straße"]="Schwabacher Straße",Hausnummer="12",["TeilDesGebäudeKomplexes"]="TDGK",AktenNr="D-5-63-000-1464",Objekt="Häusle"}}
Zeile 27: Zeile 27:
fbdata.strasse_hnr = p.strasseHnrParser(fbdata)
fbdata.strasse_hnr = p.strasseHnrParser(fbdata)
fbdata.plz = p.getPlz(fbdata)
fbdata.plz = p.getPlz(fbdata)
-- Shoah-Abfrage
fbdata.shoah = p.opferShoah(fbdata)


-- Tabs einsammeln und zusammenfügen
-- Tabs einsammeln und zusammenfügen
Zeile 40: Zeile 43:
-- Sonstige gemeinsame Dinge anfügen (Klasse, Formular, Kategorien, Wartung, ...)
-- Sonstige gemeinsame Dinge anfügen (Klasse, Formular, Kategorien, Wartung, ...)
t = t .. fab.common(fbdata)
t = t .. fab.common(fbdata)
-- mw.log("t = " .. t)
-- mw.logObject(t, "t")


-- Pre-Processing und String-Länge checken
-- Pre-Processing und String-Länge checken
t = fbdata.frame:preprocess(t)
t = fbdata.frame:preprocess(t)
t = t .. com.returnStringCheck(t)
t = t .. com.returnStringCheck(t)
-- mw.log("t = " .. t)
-- mw.logObject(t, "t")
return t
return t
end
end
Zeile 51: Zeile 54:
function p.datenTab(fbdata, args)
function p.datenTab(fbdata, args)
-- mw.log("datenTab(fbdata, args)")
-- mw.log("datenTab(fbdata, args)")
-- mw.logObject(fbdata)
-- mw.logObject(fbdata, "fbdata")
-- mw.logObject(args)
-- mw.logObject(args, "args")
--[[ Konsolenzeile zum Debuggen (Achtung! Bug in Fehlerbereinigungskonsole! Kann nur 1x ausgeführt werden!):
--[[ Konsolenzeile zum Debuggen (Achtung! Bug in Fehlerbereinigungskonsole! Kann nur 1x ausgeführt werden!):
fab=require("Modul:Faktenbox/Work");
fab=require("Modul:Faktenbox/Work");
Zeile 107: Zeile 110:
-- Tab draus machen
-- Tab draus machen
t = fab.tab(t, args.tabname or "Daten")
t = fab.tab(t, args.tabname or "Daten")
-- mw.log("t = " .. t)
-- mw.logObject(t, "t")
     return t
     return t
end
end
Zeile 113: Zeile 116:
function p.kartenTab(fbdata)
function p.kartenTab(fbdata)
-- mw.log("kartenTab(fbdata)")
-- mw.log("kartenTab(fbdata)")
-- mw.logObject(fbdata)
-- mw.logObject(fbdata, "fbdata")
-- Konsolenzeile zum Debuggen:
-- Konsolenzeile zum Debuggen:
-- fab=require("Modul:Faktenbox/Work"); fbdata=fab.fbdata{pargs={["Straße"]="Erlanger Straße",["Hausnummer"]="11"}}; fbdata.plz=90765; print(p.kartenTab(fbdata))
-- fab=require("Modul:Faktenbox/Work"); fbdata=fab.fbdata{pargs={["Straße"]="Erlanger Straße",["Hausnummer"]="11"}}; fbdata.plz=90765; print(p.kartenTab(fbdata))
Zeile 127: Zeile 130:
-- Tab draus machen
-- Tab draus machen
t = fab.tab(t, "Karte")
t = fab.tab(t, "Karte")
-- mw.log("t = " .. t)
-- mw.logObject(t, "t")
return t
return t
end
end
Zeile 133: Zeile 136:
function p.strasseHnrParser(fbdata)
function p.strasseHnrParser(fbdata)
-- mw.log("strasseHnrProcessor(fbdata)")
-- mw.log("strasseHnrProcessor(fbdata)")
-- mw.logObject(fbdata.pargs)
-- mw.logObject(fbdata.pargs, "fbdata.pargs")
-- Konsolenzeile zum Debuggen:
-- Konsolenzeile zum Debuggen:
-- p.strasseHnrParser{pargs={["Straße"]="Elanger Straße",["Hausnummer"]="11;13",["Straße2"]="Frühlingstraße",["Hausnummer2"]="",["Straße3"]="",["Hausnummer3"]=""}}
-- p.strasseHnrParser{pargs={["Straße"]="Elanger Straße",["Hausnummer"]="11;13",["Straße2"]="Frühlingstraße",["Hausnummer2"]="",["Straße3"]="",["Hausnummer3"]=""}}
Zeile 147: Zeile 150:
}
}


for _, sh in ipairs(strasse_hnr) do -- Straße/Hausnummern-Kombis durchitereieren
for _, sh in ipairs(strasse_hnr) do -- Straße/Hausnummern-Kombis durchitereieren
local s = str.strip(sh[1]) -- Straße
local s = str.strip(sh[1]) -- Straße
local hl = str.strip(sh[2]) -- Hausnummernliste
local hl = str.strip(sh[2]) -- Hausnummernliste
if s == "" then -- kein Problem, wenn eine Straße/Hausnummer-Kombi komplett fehlt (nicht im Formular angegeben)
if s == "" then -- kein Problem, wenn eine Straße/Hausnummer-Kombi komplett fehlt (nicht im Formular angegeben)
if hl ~= "" then -- aber Problem bei fehlender Straße, aber Hausnummernliste vorhanden
if hl ~= "" then -- aber Problem bei fehlender Straße, aber Hausnummernliste vorhanden
result.suspekt = true
result.suspekt = true
end
end
Zeile 159: Zeile 162:
entry.hausnummer = {}
entry.hausnummer = {}
entry.suspekt = false
entry.suspekt = false
if hl == "" then -- leere Hausnummernliste
if hl == "" then -- leere Hausnummernliste
result.suspekt = true
result.suspekt = true
entry.suspekt = true
entry.suspekt = true
else
else
hl = str.splitAndStrip(hl, ";") -- Liste in table umwandeln
hl = str.splitAndStrip(hl, ";") -- Liste in table umwandeln
for _, h in ipairs(hl) do -- Hausnummern durchitereieren
for _, h in ipairs(hl) do -- Hausnummern durchitereieren
if h == "" then -- leere Hausnummer
if h == "" then -- leere Hausnummer
result.suspekt = true
result.suspekt = true
entry.suspekt = true
entry.suspekt = true
Zeile 177: Zeile 180:
end
end
end
end
-- mw.logObject(result)
-- mw.logObject(result, "result")
return result
return result
end
end
Zeile 183: Zeile 186:
function p.residenzTab(fbdata, args)
function p.residenzTab(fbdata, args)
-- mw.log("residenzTab(fbdata, args)")
-- mw.log("residenzTab(fbdata, args)")
-- mw.logObject(fbdata)
-- mw.logObject(fbdata, "fbdata")
-- mw.logObject(args)
-- mw.logObject(args, "args")
-- Konsolenzeile zum Debuggen:
-- Konsolenzeile zum Debuggen:
-- =p.residenzTab({subpagename="Schwabacher Straße 12",fullpagename="Schwabacher Straße 12",strasse_hnr={strasse={{name="Schwabacher Straße",hausnummer={"12"}}}}}, "Unternehmen, die hier ansässig sind/waren:", "Unternehmen", "Unternehmen")
-- =p.residenzTab({subpagename="Schwabacher Straße 12",fullpagename="Schwabacher Straße 12",strasse_hnr={strasse={{name="Schwabacher Straße",hausnummer={"12"}}}}}, "Unternehmen, die hier ansässig sind/waren:", "Unternehmen", "Unternehmen")
Zeile 193: Zeile 196:
query = query .. "|?-has subobject.Seite#-=Seite|?Adressart|?AdresseVon#-F[j. F Y]|?AdresseBis#-F[j. F Y]|mainlabel=-|limit=100"
query = query .. "|?-has subobject.Seite#-=Seite|?Adressart|?AdresseVon#-F[j. F Y]|?AdresseBis#-F[j. F Y]|mainlabel=-|limit=100"
local ask_result = mw.smw.ask(query)
local ask_result = mw.smw.ask(query)
-- mw.logObject(ask_result)
-- mw.logObject(ask_result, "ask_result")


-- Zeilen zusammenbauen
-- Zeilen zusammenbauen
if ask_result ~= nil then
for i, z in ipairs(ask_result or {}) do -- Ergebniszeile durchiterieren
for i, z in ipairs(ask_result) do -- Ergebniszeile durchiterieren
if i == 1 then
if i == 1 then
t = t .. args.ueberschrift .. "\n" -- Text vor der eigentlichen Liste
t = t .. args.ueberschrift .. "\n" -- Text vor der eigentlichen Liste
end
t = t .. "* [[" .. z.Seite .. "]]" -- immer vorhanden
z.Adressart = z.Adressart or "" -- nicht immer vorhanden (nil)
z.AdresseVon = z.AdresseVon or "" -- nicht immer vorhanden (nil)
z.AdresseBis = z.AdresseBis or "" -- nicht immer vorhanden (nil)
-- jede Kombination kann vorkommen
if z.Adressart ~= "" or z.AdresseVon ~= "" or z.AdresseBis ~= "" then
t = t .. " (" .. z.Adressart -- kein Problem, wenn leer
if z.Adressart ~= "" and (z.AdresseVon ~= "" or z.AdresseBis ~= "") then
t = t .. " "
end
end
t = t .. "* [[" .. z.Seite .. "]]" -- immer vorhanden
if z.AdresseVon ~= "" then
z.Adressart = z.Adressart or "" -- nicht immer vorhanden (nil)
t = t .. "von " .. z.AdresseVon
z.AdresseVon = z.AdresseVon or "" -- nicht immer vorhanden (nil)
end
z.AdresseBis = z.AdresseBis or "" -- nicht immer vorhanden (nil)
if (z.Adressart ~= "" or z.AdresseVon ~= "") and z.AdresseBis ~= "" then
-- jede Kombination kann vorkommen
t = t .. " "
if z.Adressart ~= "" or z.AdresseVon ~= "" or z.AdresseBis ~= "" then
end
t = t .. " (" .. z.Adressart -- kein Problem, wenn leer
if z.AdresseBis ~= "" then
if z.Adressart ~= "" and (z.AdresseVon ~= "" or z.AdresseBis ~= "") then
t = t .. "bis " .. z.AdresseBis
t = t .. " "
end
t = t .. ")"
end
t = t .. "\n"
end
 
-- Shoah-Opfer
if args.klasse == "Person" and com.isTrue(fbdata.pargs["ShoahTest"]) and fbdata.shoah ~= nil then
for _, s in ipairs(fbdata.shoah) do
local name = (s["Vorname"] or "") .. " " .. (s["Nachname"] or "")
if wik.pageExists(name) then
local found = false
for _, a in ipairs(ask_result or {}) do -- prüfen, ob oben bereits aufgelistet
if a.Seite == name then
found = true
break
end
end
end
if z.AdresseVon ~= "" then
if not found then
t = t .. "von " .. z.AdresseVon
t = t .. "* [[" .. name .. "]]\n"
end
end
if (z.Adressart ~= "" or z.AdresseVon ~= "") and z.AdresseBis ~= "" then
else
t = t .. " "
t = t .. "* " .. name .. "\n"
end
if z.AdresseBis ~= "" then
t = t .. "bis " .. z.AdresseBis
end
t = t .. ")"
end
end
t = t .. "\n"
end
end
end
end
Zeile 228: Zeile 250:
-- Tab draus machen
-- Tab draus machen
t = fab.tab(t, args.kategorie)
t = fab.tab(t, args.kategorie)
-- mw.log("t = " .. t)
-- mw.logObject(t, "t")
return t
return t
end
function p.opferShoah(fbdata)
-- mw.log("opferShoah(fbdata)")
-- mw.logObject(fbdata, "fbdata")
-- Konsolenzeile zum Debuggen:
-- fbdata={pagename="Hallemannstraße 2, 2a"}; mw.logObject(p.opferShoah(fbdata))
-- DB-Abfrage
local query = "[[SubObjektTyp::Opfer der Shoah]]"
query = query .. "[[VonObjekt::" .. fbdata.pagename .. "]]"
query = query .. "|?Vorname"
query = query .. "|?Nachname"
query = query .. "|mainlabel=-"
query = query .. "|limit=100"
local ask_result = mw.smw.ask(query)
-- mw.logObject(ask_result, "ask_result")
    return ask_result
end
end


function p.getPlz(fbdata)
function p.getPlz(fbdata)
-- mw.log("getPlz(fbdata)")
-- mw.log("getPlz(fbdata)")
-- mw.logObject(fbdata.strasse_hnr)
-- mw.logObject(fbdata.strasse_hnr, "fbdata.strasse_hnr")
-- Konsolenzeile zum Debuggen:
-- Konsolenzeile zum Debuggen:
-- =p.getPlz{strasse_hnr={strasse={{name="Erlanger Straße",hausnummer={"11","13"},suspekt=false},{name="Schwabacher Straße",hausnummer={1}}}}}
-- =p.getPlz{strasse_hnr={strasse={{name="Erlanger Straße",hausnummer={"11","13"},suspekt=false},{name="Schwabacher Straße",hausnummer={1}}}}}
Zeile 243: Zeile 283:
else
else
end
end
-- mw.log("plz = " .. plz)
-- mw.log(plz, "plz")
return plz
return plz
end
end
Zeile 249: Zeile 289:
function p.teilDesGebaeudeKomplexes(fbdata)
function p.teilDesGebaeudeKomplexes(fbdata)
-- mw.log("teilDesGebaeudeKomplexes(fbdata)")
-- mw.log("teilDesGebaeudeKomplexes(fbdata)")
-- mw.logObject(fbdata.pargs)
-- mw.logObject(fbdata.pargs, "fbdata.pargs")
-- Konsolenzeile zum Debuggen:
-- Konsolenzeile zum Debuggen:
-- =p.teilDesGebaeudeKomplexes{pargs={["TeilDesGebäudeKomplexes"]="Rathaus"},fullpagename="Badstraße 15",subpagename="Badstraße 15"}
-- =p.teilDesGebaeudeKomplexes{pargs={["TeilDesGebäudeKomplexes"]="Rathaus"},fullpagename="Badstraße 15",subpagename="Badstraße 15"}
Zeile 255: Zeile 295:
teil_des_gebaeude_komplexes = str.splitAndStrip(teil_des_gebaeude_komplexes, ";")
teil_des_gebaeude_komplexes = str.splitAndStrip(teil_des_gebaeude_komplexes, ";")
local query = "[[:+]][[!" .. fbdata.fullpagename .. "]][[Kategorie:Gebäude]][[StraßeHnr::" .. fbdata.subpagename .. "]] [[AnzahlGebäude::>2]]"
local query = "[[:+]][[!" .. fbdata.fullpagename .. "]][[Kategorie:Gebäude]][[StraßeHnr::" .. fbdata.subpagename .. "]] [[AnzahlGebäude::>2]]"
-- mw.log("query = " .. query)
-- mw.log(query, "query")
local query_result = que.getPages(query, true)
local query_result = que.getPages(query, true)
-- mw.logObject(query_result)
-- mw.logObject(query_result, "query_result")
teil_des_gebaeude_komplexes = com.append_tables(teil_des_gebaeude_komplexes, query_result)
teil_des_gebaeude_komplexes = com.append_tables(teil_des_gebaeude_komplexes, query_result)
-- mw.logObject(teil_des_gebaeude_komplexes)
-- mw.logObject(teil_des_gebaeude_komplexes, "teil_des_gebaeude_komplexes")
return teil_des_gebaeude_komplexes
return teil_des_gebaeude_komplexes
end
end
Zeile 265: Zeile 305:
function p.weiterleitung(fbdata)
function p.weiterleitung(fbdata)
-- mw.log("weiterleitung(fbdata)")
-- mw.log("weiterleitung(fbdata)")
-- mw.logObject(fbdata.pargs)
-- mw.logObject(fbdata.pargs, "fbdata.pargs")
-- Konsolenzeile zum Debuggen:
-- Konsolenzeile zum Debuggen:
-- fab=require("Modul:Faktenbox/Work"); fbdata=fab.fbdata{pargs={location="Badstraße 15,Fürth,Bayern,Deutschland",["TeilDesGebäudeKomplexes"]="Badstraße 13, 15, 18, Pfisterstraße 50, 52"}}; print(p.weiterleitung(fbdata))
-- fab=require("Modul:Faktenbox/Work"); fbdata=fab.fbdata{pargs={location="Badstraße 15,Fürth,Bayern,Deutschland",["TeilDesGebäudeKomplexes"]="Badstraße 13, 15, 18, Pfisterstraße 50, 52"}}; print(p.weiterleitung(fbdata))
Zeile 271: Zeile 311:


-- Geolokation location ermitteln
-- Geolokation location ermitteln
local location = fbdata.pargs["location"] or "" -- location vorhanden?
local location = fbdata.pargs["location"] or "" -- location vorhanden?
if location == "" then
if location == "" then
local lat = fbdata.pargs["lat"] or "" -- lat/lon vorhanden?
local lat = fbdata.pargs["lat"] or "" -- lat/lon vorhanden?
local lon = fbdata.pargs["lon"] or ""
local lon = fbdata.pargs["lon"] or ""
if lat ~= "" and lon ~= "" then
if lat ~= "" and lon ~= "" then
Zeile 279: Zeile 319:
end
end
end
end
if location == "" then -- im Zweifelsfall generische location mittels Seitennamen
if location == "" then -- im Zweifelsfall generische location mittels Seitennamen
location = wik.pagename() .. ",Fürth,Bayern,Deutschland"
location = wik.pagename() .. ",Fürth,Bayern,Deutschland"
end
end
t = t .. "* Geolokation: " .. location .. "\n"
t = t .. "* Geolokation: " .. location .. "\n"
mw.log("location = " .. location)
-- mw.log(location, "location")


-- Koordinate per #geocode ermitteln
-- Koordinate per #geocode ermitteln
local geocode = fbdata.frame:callParserFunction( "#geocode", location )
local geocode = fbdata.frame:callParserFunction( "#geocode", location )
mw.log("geocode = " .. geocode)
-- mw.log(geocode, "geocode")
if geocode == "Geocoding failed" then
if geocode == "Geocoding failed" then
t = t .. "Geokoordinate konnte nicht ermittelt werden<br>"
t = t .. "Geokoordinate konnte nicht ermittelt werden<br>"
Zeile 312: Zeile 352:
end
end
end
end
-- mw.log("t = " .. t)
-- mw.logObject(t, "t")
return t
return t
end
end


return p
return p