15.075
Bearbeitungen
(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. | -- 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. | -- 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. | -- 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. | -- 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 | ||
for i, z in ipairs(ask_result or {}) do -- Ergebniszeile durchiterieren | |||
if i == 1 then | |||
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 .. " | if z.AdresseVon ~= "" then | ||
z.Adressart = | t = t .. "von " .. z.AdresseVon | ||
end | |||
if (z.Adressart ~= "" or z.AdresseVon ~= "") and z.AdresseBis ~= "" then | |||
t = t .. " " | |||
if z. | end | ||
if z.AdresseBis ~= "" then | |||
t = t .. "bis " .. z.AdresseBis | |||
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 | if not found then | ||
t = t .. " | t = t .. "* [[" .. name .. "]]\n" | ||
end | end | ||
else | |||
t = t .. "* " .. name .. "\n" | |||
end | end | ||
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. | -- 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 | -- 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 | -- 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 "" | 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 | 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") | |||
-- 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") | |||
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. | -- mw.logObject(t, "t") | ||
return t | return t | ||
end | end | ||
return p | return p | ||