Modul:Wartung/Work: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
| (Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
| Zeile 2: | Zeile 2: | ||
local dev = require("Modul:Development") | local dev = require("Modul:Development") | ||
local htm = require("Modul:HTML | local htm = require("Modul:HTML") | ||
local | local meldungen = { | ||
{["Wartungsmeldung"] = "Adresse fehlerhaft"}, | {["Wartungsmeldung"] = "Adresse fehlerhaft"}, | ||
{["Wartungsmeldung"] = "Bild-Beschreibung fehlt"}, | {["Wartungsmeldung"] = "Bild-Beschreibung fehlt"}, | ||
| Zeile 31: | Zeile 31: | ||
{["Wartungsmeldung"] = "Straßen ohne Stadtteil"}, | {["Wartungsmeldung"] = "Straßen ohne Stadtteil"}, | ||
{["Wartungsmeldung"] = "Faktenbox veraltet"}, | {["Wartungsmeldung"] = "Faktenbox veraltet"}, | ||
{["Kategorie"] = "Seiten mit Skriptfehlern"}, | |||
{["Kategorie"] = "Seiten, die aufwändige Parserfunktionen zu oft aufrufen"}, | |||
} | } | ||
| Zeile 38: | Zeile 40: | ||
local frame = dev.GetFrameAndParentArgs(frame) | local frame = dev.GetFrameAndParentArgs(frame) | ||
local t = "" | local t = "" | ||
-- | -- meldungen Tabelle sortieren | ||
table.sort( | table.sort(meldungen, | ||
function(z1, z2) | function(z1, z2) | ||
z1 | z1 = z1["Wartungsmeldung"] or z1["Kategorie"] | ||
z2 = z2["Wartungsmeldung"] or z2["Kategorie"] | |||
return z1 ~= nil and z2 ~= nil and string.byte(z1) < string.byte(z2) | return z1 ~= nil and z2 ~= nil and string.byte(z1) < string.byte(z2) | ||
end) | end) | ||
-- Tabelle zusammensetzen | -- Tabelle zusammensetzen | ||
t = t .. htm.tableHeader{"Wartungsmeldung", "Anzahl"} | t = t .. htm.tableHeader{"Wartungsmeldung / Kategorie", "Anzahl"} | ||
-- | -- Wartungsmeldung-Zeilen | ||
for _, z in ipairs( | for _, z in ipairs(meldungen) do | ||
local wartungsmeldung = z["Wartungsmeldung"] | local wartungsmeldung = z["Wartungsmeldung"] | ||
local kategorie = z["Kategorie"] | |||
-- Anzahl ermitteln | -- Anzahl ermitteln | ||
local | local query = "[[:+]]" | ||
if wartungsmeldung ~= nil then | |||
query = query .. "[[Wartungsmeldung::" .. wartungsmeldung .. "]]" | |||
elseif kategorie ~= nil then | |||
query = query .. "[[Kategorie:" .. kategorie .. "]]" | |||
end | |||
query = {query, ["format"] = "count"} | |||
local anzahl = mw.smw.ask(query) | |||
if anzahl == 0 then | if anzahl == 0 then | ||
anzahl = "" | anzahl = "" | ||
end | end | ||
-- queryformlink zusammenbauen | -- queryformlink zusammenbauen | ||
local args = { | |||
"form=Abfrage Wartungsmeldungen" | ["form"]="Abfrage Wartungsmeldungen", | ||
" | ["link text"] = wartungsmeldung or kategorie} | ||
" | if wartungsmeldung ~= nil then | ||
args["query string"] = | |||
"Abfrage Wartungsmeldungen[Wartungsmeldung]=" .. | "Abfrage Wartungsmeldungen[Wartungsmeldung]=" .. | ||
wartungsmeldung .. "&_run" | |||
"&_run} | elseif kategorie ~= nil then | ||
args["query string"] = | |||
"Abfrage Wartungsmeldungen[Kategorie]=" .. kategorie .. "&_run" | |||
end | |||
args[1] = "" -- dummy nötig | |||
local meldung = frame:callParserFunction("#queryformlink", args) | |||
-- Info anfügen | |||
local info = z["Info"] | |||
if info ~= nil then | |||
meldung = meldung .. " " .. | |||
frame:callParserFunction("#info", {info, note}) | |||
end | |||
-- Zeile zusammenbauen | -- Zeile zusammenbauen | ||
t = t .. htm.tableLine{ | t = t .. htm.tableLine{meldung, anzahl} | ||
end | end | ||
-- Tabellen-Fuß | -- Tabellen-Fuß | ||
t = t .. htm.tableFooter() | t = t .. htm.tableFooter() | ||
-- mw.logObject(t) | |||
t = frame:preprocess(t) | t = frame:preprocess(t) | ||
return t | return t | ||
Aktuelle Version vom 15. Januar 2026, 09:47 Uhr
Die Dokumentation für dieses Modul kann unter Modul:Wartung/Work/Doku erstellt werden
local p = {}
local dev = require("Modul:Development")
local htm = require("Modul:HTML")
local meldungen = {
{["Wartungsmeldung"] = "Adresse fehlerhaft"},
{["Wartungsmeldung"] = "Bild-Beschreibung fehlt"},
{["Wartungsmeldung"] = "Bilder-Galerie leer"},
{["Wartungsmeldung"] = "Bilder-Galerie übervoll"},
{["Wartungsmeldung"] = "Datei-Freiattribut-Fehler"},
{["Wartungsmeldung"] = "Datei-Freiattribut-Fehler Straßen-Angabe"},
{["Wartungsmeldung"] = "Datei-Freiattribut-Fehler Orts-Angabe"},
{["Wartungsmeldung"] = "Faktenbox ohne Formular-Daten"},
{["Wartungsmeldung"] = "Faktenbox-Bild fehlt"},
{["Wartungsmeldung"] = "Faktenbox-Bild existiert nicht", ["Info"] = "Es wurde im Formular ein Bild eingetragen, das nicht (mehr) existiert"},
{["Wartungsmeldung"] = "Faktenbox fehlt"},
{["Wartungsmeldung"] = "Seitenname (Lemma) hat Semikolon"},
{["Wartungsmeldung"] = "Seitenname (Lemma) hat Schrägstrich"},
{["Wartungsmeldung"] = "Gebäude mit verdächtiger Straße-Hausnummer-Kombination"},
{["Wartungsmeldung"] = "Faktenbox-Karte (Position) fehlt"},
{["Wartungsmeldung"] = "Gewässer ohne Stadtteil"},
{["Wartungsmeldung"] = "Geo-Kodierungsfehler - Objekt-Lokation bei ehemaligen Objekt funktioniert nicht"},
{["Wartungsmeldung"] = "Geo-Kodierungsfehler - Objekt-Lokation nicht gefunden"},
{["Wartungsmeldung"] = "Geo-Kodierungsfehler, aber Geokoordinate in SMW-DB noch vorhanden"},
{["Wartungsmeldung"] = "Geo-Kodierungsfehler und Geo-Koordinate nicht in SMW-DB vorhanden"},
{["Wartungsmeldung"] = "Geo-Fehler - fehlerhafte Koordinate"},
{["Wartungsmeldung"] = "Geo-Kodierungsfehler - Positionsangabe fehlt"},
{["Wartungsmeldung"] = "Geo-Kodierungsfehler - fehlende Geo-Koordinate trotz Objekt-Lokation"},
{["Wartungsmeldung"] = "Beruf-Seite fehlt"},
{["Wartungsmeldung"] = "Straßen ohne Stadtteil"},
{["Wartungsmeldung"] = "Faktenbox veraltet"},
{["Kategorie"] = "Seiten mit Skriptfehlern"},
{["Kategorie"] = "Seiten, die aufwändige Parserfunktionen zu oft aufrufen"},
}
function p.Wartungstabelle(frame)
-- Kommandozeile zum Debuggen:
-- =p.Wartungstabelle{pargs={}}
local frame = dev.GetFrameAndParentArgs(frame)
local t = ""
-- meldungen Tabelle sortieren
table.sort(meldungen,
function(z1, z2)
z1 = z1["Wartungsmeldung"] or z1["Kategorie"]
z2 = z2["Wartungsmeldung"] or z2["Kategorie"]
return z1 ~= nil and z2 ~= nil and string.byte(z1) < string.byte(z2)
end)
-- Tabelle zusammensetzen
t = t .. htm.tableHeader{"Wartungsmeldung / Kategorie", "Anzahl"}
-- Wartungsmeldung-Zeilen
for _, z in ipairs(meldungen) do
local wartungsmeldung = z["Wartungsmeldung"]
local kategorie = z["Kategorie"]
-- Anzahl ermitteln
local query = "[[:+]]"
if wartungsmeldung ~= nil then
query = query .. "[[Wartungsmeldung::" .. wartungsmeldung .. "]]"
elseif kategorie ~= nil then
query = query .. "[[Kategorie:" .. kategorie .. "]]"
end
query = {query, ["format"] = "count"}
local anzahl = mw.smw.ask(query)
if anzahl == 0 then
anzahl = ""
end
-- queryformlink zusammenbauen
local args = {
["form"]="Abfrage Wartungsmeldungen",
["link text"] = wartungsmeldung or kategorie}
if wartungsmeldung ~= nil then
args["query string"] =
"Abfrage Wartungsmeldungen[Wartungsmeldung]=" ..
wartungsmeldung .. "&_run"
elseif kategorie ~= nil then
args["query string"] =
"Abfrage Wartungsmeldungen[Kategorie]=" .. kategorie .. "&_run"
end
args[1] = "" -- dummy nötig
local meldung = frame:callParserFunction("#queryformlink", args)
-- Info anfügen
local info = z["Info"]
if info ~= nil then
meldung = meldung .. " " ..
frame:callParserFunction("#info", {info, note})
end
-- Zeile zusammenbauen
t = t .. htm.tableLine{meldung, anzahl}
end
-- Tabellen-Fuß
t = t .. htm.tableFooter()
-- mw.logObject(t)
t = frame:preprocess(t)
return t
end
return p