Modul:Wartung

Aus FürthWiki
local p = {}

local htm = require("Modul:HTML")

local zeilen =
	{	{	"Wartungsmeldung", "Kategorie", "KlassenName", "Ehemals", "Anzahl"},
		{	["Wartungsmeldung"] = "Adresse fehlerhaft",																	["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"] = "Faktenbox ohne Formular-Daten",														["Kategorie"] = "",	["KlassenName"] = "",	["Ehemals"] = ""},
		{	["Wartungsmeldung"] = "Faktenbox-Bild fehlt",																["Kategorie"] = "",	["KlassenName"] = "",	["Ehemals"] = ""},
		{	["Wartungsmeldung"] = "Faktenbox-Bild existiert nicht",														["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"] = "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"] = ""},	}

function p.Wartungstabelle(frame)
	local t = ""
	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)
			-- 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
				if z[s] == "" then
					z[s] = "(alle)"
				end
				table.insert(line, z[s])
			end
			t = t .. htm.tableLine(line)
		end
	end
	-- Tabellen-Fuß
	t = t .. htm.tableFooter()
	t = frame:preprocess(t)
	return t
end

return p