Modul:Wartung

Aus FürthWiki
local p = {}

local dev = require("Modul:Development")
local htm = require("Modul:HTML")

local zeilen =
	{	{	"Wartungsmeldung",																							--[[ "Kategorie",		"KlassenName",					"Ehemals", ]] "Anzahl"},
		{	["Wartungsmeldung"] = "Adresse fehlerhaft",																	--[[ ["Kategorie"] = "",	["KlassenName"] = "",			["Ehemals"] = "" ]] },
		{	["Wartungsmeldung"] = "Bild-Beschreibung fehlt",															--[[ ["Kategorie"] = "",	["KlassenName"] = "",			["Ehemals"] = "" ]] },
		{	["Wartungsmeldung"] = "Bilder-Galerie leer",																--[[ ["Kategorie"] = "",	["KlassenName"] = "",			["Ehemals"] = "" ]] },
		{	["Wartungsmeldung"] = "Bilder-Galerie übervoll",															--[[ ["Kategorie"] = "",	["KlassenName"] = "",			["Ehemals"] = "" ]] },
		{	["Wartungsmeldung"] = "Datei-Freiattribut-Fehler",															--[[ ["Kategorie"] = "",	["KlassenName"] = "",			["Ehemals"] = "" ]] },
		{	["Wartungsmeldung"] = "Datei-Freiattribut-Fehler Straßen-Angabe",											--[[ ["Kategorie"] = "",	["KlassenName"] = "",			["Ehemals"] = "" ]] },
		{	["Wartungsmeldung"] = "Datei-Freiattribut-Fehler Orts-Angabe",												--[[ ["Kategorie"] = "",	["KlassenName"] = "",			["Ehemals"] = "" ]] },
		{	["Wartungsmeldung"] = "Faktenbox ohne Formular-Daten",														--[[ ["Kategorie"] = "",	["KlassenName"] = "",			["Ehemals"] = "" ]] },
		{	["Wartungsmeldung"] = "Faktenbox-Bild fehlt",																--[[ ["Kategorie"] = "",	["KlassenName"] = "",			["Ehemals"] = "" ]] },
		{	["Wartungsmeldung"] = "Faktenbox-Bild existiert nicht",														--[[ ["Kategorie"] = "",	["KlassenName"] = "",			["Ehemals"] = "" ]] },
		{	["Wartungsmeldung"] = "Faktenbox fehlt",																	--[[ ["Kategorie"] = "",	["KlassenName"] = "",			["Ehemals"] = "" ]] },
		{	["Wartungsmeldung"] = "Seitenname (Lemma) hat Semikolon",													--[[ ["Kategorie"] = "",	["KlassenName"] = "",			["Ehemals"] = "" ]] },
		{	["Wartungsmeldung"] = "Seitenname (Lemma) hat Schrägstrich",												--[[ ["Kategorie"] = "",	["KlassenName"] = "",			["Ehemals"] = "" ]] },
		{	["Wartungsmeldung"] = "Gebäude mit verdächtiger Straße-Hausnummer-Kombination",								--[[ ["Kategorie"] = "",	["KlassenName"] = "",			["Ehemals"] = "" ]] },
		{	["Wartungsmeldung"] = "Faktenbox-Karte (Position) fehlt",													--[[ ["Kategorie"] = "",	["KlassenName"] = "",			["Ehemals"] = "" ]] },
--		{	["Wartungsmeldung"] = "Faktenbox-Karte (Position) fehlt",													--[[ ["Kategorie"] = "",	["KlassenName"] = "Gaststätte",	["Ehemals"] = "" ]] },
--		{	["Wartungsmeldung"] = "Faktenbox-Karte (Position) fehlt",													--[[ ["Kategorie"] = "",	["KlassenName"] = "Gebäude",	["Ehemals"] = "" ]] },
--		{	["Wartungsmeldung"] = "Faktenbox-Karte (Position) fehlt",													--[[ ["Kategorie"] = "",	["KlassenName"] = "Straße",		["Ehemals"] = "" ]] },
--		{	["Wartungsmeldung"] = "Faktenbox-Karte (Position) fehlt",													--[[ ["Kategorie"] = "",	["KlassenName"] = "Stadtteil",	["Ehemals"] = "" ]] },
--		{	["Wartungsmeldung"] = "Faktenbox-Karte (Position) fehlt",													--[[ ["Kategorie"] = "",	["KlassenName"] = "Gewässer",	["Ehemals"] = "" ]] },
		{	["Wartungsmeldung"] = "Gewässer ohne Stadtteil",															--[[ ["Kategorie"] = "",	["KlassenName"] = "",			["Ehemals"] = "" ]] },
		{	["Wartungsmeldung"] = "Geo-Kodierungsfehler - Objekt-Lokation bei ehemaligen Objekt funktioniert nicht",	--[[ ["Kategorie"] = "",	["KlassenName"] = "",			["Ehemals"] = "" ]] },
		{	["Wartungsmeldung"] = "Geo-Kodierungsfehler - Objekt-Lokation nicht gefunden",								--[[ ["Kategorie"] = "",	["KlassenName"] = "",			["Ehemals"] = "" ]] },
		{	["Wartungsmeldung"] = "Geo-Kodierungsfehler, aber Geokoordinate in SMW-DB noch vorhanden",					--[[ ["Kategorie"] = "",	["KlassenName"] = "",			["Ehemals"] = "" ]] },
		{	["Wartungsmeldung"] = "Geo-Kodierungsfehler und Geo-Koordinate nicht in SMW-DB vorhanden",					--[[ ["Kategorie"] = "",	["KlassenName"] = "",			["Ehemals"] = "" ]] },
		{	["Wartungsmeldung"] = "Geo-Fehler - fehlerhafte Koordinate",												--[[ ["Kategorie"] = "",	["KlassenName"] = "",			["Ehemals"] = "" ]] },
		{	["Wartungsmeldung"] = "Geo-Kodierungsfehler - Positionsangabe fehlt",										--[[ ["Kategorie"] = "",	["KlassenName"] = "",			["Ehemals"] = "" ]] },
		{	["Wartungsmeldung"] = "Geo-Kodierungsfehler - fehlende Geo-Koordinate trotz Objekt-Lokation",				--[[ ["Kategorie"] = "",	["KlassenName"] = "",			["Ehemals"] = "" ]] },
		{	["Wartungsmeldung"] = "Beruf-Seite fehlt",																	--[[ ["Kategorie"] = "",	["KlassenName"] = "",			["Ehemals"] = "" ]] },
		{	["Wartungsmeldung"] = "Straßen ohne Stadtteil",																--[[ ["Kategorie"] = "",	["KlassenName"] = "",			["Ehemals"] = "" ]] },
		{	["Wartungsmeldung"] = "Faktenbox veraltet",																	--[[ ["Kategorie"] = "",	["KlassenName"] = "",			["Ehemals"] = "" ]] },
	}

function p.Wartungstabelle(frame)
	local frame = dev.GetFrameAndParentArgs(frame)
	local t = ""
	-- zeilen Tabelle sortieren
	table.sort(zeilen,
		function(z1, z2)
			z1, z2 = z1["Wartungsmeldung"], z2["Wartungsmeldung"]
			return z1 ~= nil and z2 ~= nil and string.byte(z1) < string.byte(z2)
		end)
	-- Tabelle zusammensetzen
	for i, z in ipairs(zeilen) do
		if i == 1 then
			-- Tabellen-Überschrift
			t = t .. htm.tableHeader(z)
		else
			-- Tabellen-Zeile
			-- Anzahl ermitteln
			local query = "[[:+]]"
			for _, s in ipairs(zeilen[1]) do
				if z[s] ~= "" and s ~= "Anzahl" then
					query = query .. "[[" .. s .. "::" .. z[s] .. "]]"
				end
			end
			query = query .. "|format=count"
			z["Anzahl"] = mw.smw.ask(query)
			if z["Anzahl"] == 0 then
				z["Anzahl"] = ""
			end
			-- queryformlink zusammenbauen
			query = ""
			for _, s in ipairs(zeilen[1]) do
				if z[s] ~= "" and s ~= "Anzahl" then
					query = query ..
						"Abfrage Wartungsmeldungen[" .. s .. "]=" .. z[s] .. "&"
				end
			end
			query = query .. "_run"
			z["Wartungsmeldung"] ="{{#queryformlink:" ..
				"form=Abfrage Wartungsmeldungen" ..
				"|link text=" .. z["Wartungsmeldung"] ..
				"|query string=" .. query ..
				"}}"
			-- Zeile zusammenbauen
			local line = {}
			for _, s in ipairs(zeilen[1]) do
				table.insert(line, z[s])
			end
			t = t .. htm.tableLine(line)
		end
	end
	-- Tabellen-Fuß
	t = t .. htm.tableFooter()
--	mw.logObject(t)
	t = frame:preprocess(t)
	return t
end

return p