Modul:Wartung/Work: Unterschied zwischen den Versionen

Aus FürthWiki
(Die Seite wurde neu angelegt: „local p = {} local dev = require("Modul:Development") local htm = require("Modul:HTML") local wartungsmeldungen = { {["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"}, {["Wartungsmeldu…“)
 
Keine Bearbeitungszusammenfassung
 
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 4: Zeile 4:
local htm = require("Modul:HTML")
local htm = require("Modul:HTML")


local wartungsmeldungen = {
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 = ""
-- wartungsmeldungen Tabelle sortieren
-- meldungen Tabelle sortieren
table.sort(wartungsmeldungen,
table.sort(meldungen,
function(z1, z2)
function(z1, z2)
z1, z2 = z1["Wartungsmeldung"], z2["Wartungsmeldung"]
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"}
-- Tabellen-Zeilen
-- Wartungsmeldung-Zeilen
for _, z in ipairs(wartungsmeldungen) do
for _, z in ipairs(meldungen) do
-- queryformlink zusammenbauen
local wartungsmeldung = z["Wartungsmeldung"]
local wartungsmeldung = z["Wartungsmeldung"]
wartungsmeldung = "{{#queryformlink:" ..
local kategorie = z["Kategorie"]
"form=Abfrage Wartungsmeldungen" ..
"|link text=" .. wartungsmeldung ..
"|query string=" ..
"Abfrage Wartungsmeldungen[Wartungsmeldung]=" ..
wartungsmeldung ..
"&_run}}"
-- Anzahl ermitteln
-- Anzahl ermitteln
local anzahl =
local query = "[[:+]]"
mw.smw.ask("[[:+]][[Wartungsmeldung::" .. wartungsmeldung .. "]]" ..
if wartungsmeldung ~= nil then
"|format=count")
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
-- 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
end
-- Zeile zusammenbauen
-- Zeile zusammenbauen
t = t .. htm.tableLine{wartungsmeldung, anzahl}
t = t .. htm.tableLine{meldung, anzahl}
end
end
-- Tabellen-Fuß
-- Tabellen-Fuß
t = t .. htm.tableFooter()
t = t .. htm.tableFooter()
mw.logObject(t)
-- 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