Modul:Wartung: Unterschied zwischen den Versionen

Keine Bearbeitungszusammenfassung
(Änderung 789204 von HeikoBot (Diskussion) rückgängig gemacht.)
Markierung: Rückgängigmachung
 
(64 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
local p = {}
local p = {}


local com = require("Modul:Common")
local dev = require("Modul:Development")
local htm = require("Modul:HTML")
local htm = require("Modul:HTML")
local wob = require("Modul:Wörterbuch")


local zeilen =
local wartungsmeldungen = {
{ { "Wartungsmeldung", "Kategorie", "KlassenName", "Ehemals", "Anzahl"},
{gruppe = "'''Dateien'''<br>(Bilder, Videos, ...)",
{ ["Wartungsmeldung"] = "Datei-Freiattribut-Fehler", ["Kategorie"] = "", ["KlassenName"] = "", ["Ehemals"] = ""},
meldungen = {
{ ["Wartungsmeldung"] = "Adresse fehlerhaft", ["Kategorie"] = "", ["KlassenName"] = "", ["Ehemals"] = ""},
{["Wartungsmeldung"] = "Bild-Beschreibung fehlt"},
{ ["Wartungsmeldung"] = "Bilder-Galerie leer", ["Kategorie"] = "", ["KlassenName"] = "", ["Ehemals"] = ""},
-- {["Wartungsmeldung"] = "Bilder-Galerie leer", ["Info"] = "Nur zu Info. Ist kein Problem."},
{ ["Wartungsmeldung"] = "Bilder-Galerie übervoll", ["Kategorie"] = "", ["KlassenName"] = "", ["Ehemals"] = ""},
{["Wartungsmeldung"] = "Bilder-Galerie übervoll", ["Info"] = "Siehe auch [[FürthWiki:Galerie-Bilder-Ausblendung]]"},
{ ["Wartungsmeldung"] = "Datei-Freiattribut-Fehler", ["Kategorie"] = "", ["KlassenName"] = "", ["Ehemals"] = ""},
{["Wartungsmeldung"] = "Datei ohne Formular-Daten"},
{ ["Wartungsmeldung"] = "Faktenbox ohne Formular-Daten", ["Kategorie"] = "", ["KlassenName"] = "", ["Ehemals"] = ""},
{["Wartungsmeldung"] = "Datei-Lizenz-Angabe fehlt"},
{ ["Wartungsmeldung"] = "Faktenbox-Bild fehlt", ["Kategorie"] = "", ["KlassenName"] = "", ["Ehemals"] = ""},
{["Wartungsmeldung"] = "Datei-Freiattribut-Fehler"},
{ ["Wartungsmeldung"] = "Faktenbox-Bild existiert nicht", ["Kategorie"] = "", ["KlassenName"] = "", ["Ehemals"] = ""},
{["Wartungsmeldung"] = "Datei-Freiattribut-Fehler Orts-Angabe", ["Info"] = "Der Ort wurde als Freiattribut und nicht im Orts-Feld angegeben."},
{ ["Wartungsmeldung"] = "Seitenname (Lemma) hat Semikolon", ["Kategorie"] = "", ["KlassenName"] = "", ["Ehemals"] = ""},
{["Wartungsmeldung"] = "Datei-Freiattribut-Fehler Straßen-Angabe", ["Info"] = "Die Straße wurde als Freiattribut und nicht im Straßen-Feld angegeben."},
{ ["Wartungsmeldung"] = "Seitenname (Lemma) hat Schrägstrich", ["Kategorie"] = "", ["KlassenName"] = "", ["Ehemals"] = ""},
{["Wartungsmeldung"] = "Faktenbox darf nicht in Datei-Seite sein"}}},
{ ["Wartungsmeldung"] = "Gebäude mit verdächtiger Straße-Hausnummer-Kombination", ["Kategorie"] = "", ["KlassenName"] = "", ["Ehemals"] = ""},
{gruppe = "'''Faktenbox'''<br>(Formular-Angaben)",
{ ["Wartungsmeldung"] = "Faktenbox-Karte (Position) fehlt", ["Kategorie"] = "", ["KlassenName"] = "", ["Ehemals"] = ""},
meldungen = {
{ ["Wartungsmeldung"] = "Gewässer ohne Stadtteil", ["Kategorie"] = "", ["KlassenName"] = "", ["Ehemals"] = ""},
{["Wartungsmeldung"] = "Faktenbox fehlt"},
{ ["Wartungsmeldung"] = "Geo-Kodierungsfehler - Objekt-Lokation bei ehemaligen Objekt funktioniert nicht", ["Kategorie"] = "", ["KlassenName"] = "", ["Ehemals"] = ""},
{["Wartungsmeldung"] = "Faktenbox ohne Formular-Daten"},
{ ["Wartungsmeldung"] = "Geo-Kodierungsfehler - Objekt-Lokation nicht gefunden", ["Kategorie"] = "", ["KlassenName"] = "", ["Ehemals"] = ""},
{["Wartungsmeldung"] = "Faktenbox-Daten nicht unterstützt (Einzelwerte)"},
{ ["Wartungsmeldung"] = "Geo-Kodierungsfehler, aber Geokoordinate in SMW-DB noch vorhanden", ["Kategorie"] = "", ["KlassenName"] = "", ["Ehemals"] = ""},
{["Wartungsmeldung"] = "Faktenbox veraltet"},
{ ["Wartungsmeldung"] = "Geo-Kodierungsfehler und Geo-Koordinate nicht in SMW-DB vorhanden", ["Kategorie"] = "", ["KlassenName"] = "", ["Ehemals"] = ""},
{["Wartungsmeldung"] = "Faktenbox-Bild existiert nicht", ["Info"] = "Es wurde im Formular ein Bild eingetragen, das nicht (mehr) existiert"},
{ ["Wartungsmeldung"] = "Geo-Fehler - fehlerhafte Koordinate", ["Kategorie"] = "", ["KlassenName"] = "", ["Ehemals"] = ""},
{["Wartungsmeldung"] = "Faktenbox-Bild fehlt"},
{ ["Wartungsmeldung"] = "Geo-Kodierungsfehler - Positionsangabe fehlt", ["Kategorie"] = "", ["KlassenName"] = "", ["Ehemals"] = ""},
{["Wartungsmeldung"] = "Faktenbox-Karte (Position) fehlt", ["Info"] = "Nichts eingetragen als Objekt-Lokation, Koordinate oder GeoJson-Karte"}}},
{ ["Wartungsmeldung"] = "Geo-Kodierungsfehler - fehlende Geo-Koordinate trotz Objekt-Lokation", ["Kategorie"] = "", ["KlassenName"] = "", ["Ehemals"] = ""},
{gruppe = "'''Geo'''<br>(Karten, Positionsangabe, ...)",
{ ["Wartungsmeldung"] = "Beruf-Seite fehlt", ["Kategorie"] = "", ["KlassenName"] = "", ["Ehemals"] = ""},
meldungen = {
{ ["Wartungsmeldung"] = "Straßen ohne Stadtteil", ["Kategorie"] = "", ["KlassenName"] = "", ["Ehemals"] = ""}, }
{["Wartungsmeldung"] = "Geo-Fehler - fehlerhafte Koordinate", ["Info"] = "Schreibfehler"},
{["Wartungsmeldung"] = "Geo-Kodierungsfehler - Objekt-Lokation bei ehemaligen Objekt funktioniert nicht", ["Info"] = "Es können nur heute bestehende Objekt-Lokation gefunden werden. Bei ehemaligen Objekten muss die Koordinate eingetragen werden."},
{["Wartungsmeldung"] = "Geo-Kodierungsfehler - Objekt-Lokation nicht gefunden", ["Info"] = "Objekt fehlt in OpenStreetMap oder ist dort fehlerhaft eingetragen. Im Zweifelsfall sollte Koordinate eingetragen werden."},
{["Wartungsmeldung"] = "Geo-Kodierungsfehler - Positionsangabe fehlt"},
{["Wartungsmeldung"] = "Geo-Kodierungsfehler - fehlende Geo-Koordinate trotz Objekt-Lokation", ["Info"] = "FürthWiki-interne Meldung (Server-Problem)"},
{["Wartungsmeldung"] = "Geo-Kodierungsfehler und Geo-Koordinate nicht in SMW-DB vorhanden", ["Info"] = "FürthWiki-interne Meldung (Server-Problem)"},
{["Wartungsmeldung"] = "Geo-Kodierungsfehler, aber Geokoordinate in SMW-DB noch vorhanden", ["Info"] = "FürthWiki-interne Meldung (Server-Problem)"}}},
{gruppe = "'''Kategorie-spezifisch'''<br>(Karten, Positionsangabe, ...)",
meldungen = {
{["Wartungsmeldung"] = "Abrissjahr/Schließungsdatum eingetragen, aber ohne Ehemals-Häkchen"},
{["Wartungsmeldung"] = "Adresse fehlerhaft"},
{["Wartungsmeldung"] = "Beruf-Seite fehlt"},
{["Wartungsmeldung"] = "Gebäude mit verdächtiger Straße-Hausnummer-Kombination"},
{["Wartungsmeldung"] = "Gewässer ohne Stadtteil"},
{["Wartungsmeldung"] = "Straßen ohne Stadtteil"}}},
{gruppe = "'''Qualität'''<br>(Händische Markierungen)",
meldungen = {
{["Wartungsmeldung"] = "Artikel markiert als Baustelle"},
{["Wartungsmeldung"] = "Artikel markiert als veraltet"},
{["Wartungsmeldung"] = "Artikel markiert als zu überarbeiten"},
{["Wartungsmeldung"] = "Artikel markiert mit Belege unzureichend"},
{["Wartungsmeldung"] = "Artikel markiert mit Daten unplausibel"},
{["Wartungsmeldung"] = "Artikel markiert mit Neutralität umstritten"},
{["Wartungsmeldung"] = "Artikel markiert mit Relevanz mangelhaft"}}},
{gruppe = "'''Sonstig'''",
meldungen = {
{["Wartungsmeldung"] = "Lemma (Seitenname) enthält „(ehemals)“, aber ohne Ehemals-Häkchen"},
{["Wartungsmeldung"] = "Seitenname (Lemma) hat Semikolon", ["Info"] = "Nicht erlaubt bei Seiten mit Karten"}}}}


function p.Wartungstabelle(frame)
function p.Wartungstabelle(frame)
-- Kommandozeile zum Debuggen:
-- =p.Wartungstabelle{pargs={}}
local frame = dev.GetFrameAndParentArgs(frame)
local t = ""
local t = ""
for i, z in ipairs(zeilen) do
-- Kategorie-Selektor
if i == 1 then
local kategorie = frame.args["Kategorie"] or
-- Tabellen-Überschrift
wob.mehrzahl(frame.args["Klasse"] or "")
t = t .. htm.tableHeader(z)
local kategorie_selector = ""
else
local kategorie_query_string = ""
-- Tabellen-Zeile
if kategorie ~= "" then
kategorie_selector = "[[Kategorie:" .. kategorie .. "]]"
kategorie_query_string =
"&Abfrage Wartungsmeldungen[Kategorie]=" .. kategorie
kategorie = " [[:Kategorie:" .. kategorie .. "]]"
end
-- Tabelle zusammensetzen
t = t .. htm.tableHeader{
"Gruppe", "Wartungsmeldungen" .. kategorie, "Seitenanzahl"}
-- Tabellen-Zeilen
for _, g in ipairs(wartungsmeldungen) do
local gruppe = g.gruppe
local meldungen = g.meldungen
for _, m in ipairs(g.meldungen) do
local wartungsmeldung = m["Wartungsmeldung"]
-- Anzahl ermitteln
-- Anzahl ermitteln
local query = ""
local anzahl = mw.smw.ask{
for _, s in ipairs(zeilen[1]) do
"[[Wartungsmeldung::" .. wartungsmeldung .. "]]" ..
if z[s] ~= "" and s ~= "Anzahl" then
kategorie_selector, format="count"}
query = query .. "[[" .. s .. "::" .. z[s] .. "]]"
if anzahl == 0 then
end
anzahl = ""
end
end
query = query .. "|format=count"
z["Anzahl"] = mw.smw.ask(query)
-- queryformlink zusammenbauen
-- queryformlink zusammenbauen
query = ""
local queryformlink = { "", -- dummy
for _, s in ipairs(zeilen[1]) do
["form"] = "Abfrage Wartungsmeldungen",
if z[s] ~= "" and s ~= "Anzahl" then
["link text"] = wartungsmeldung,
query = query .. "Abfrage Wartungsmeldungen[" .. s .. "]=" .. z[s]
["query string"] =
end
"Abfrage Wartungsmeldungen[Wartungsmeldung]=" ..
wartungsmeldung .. kategorie_query_string .. "&_run"
}
wartungsmeldung =
frame:callParserFunction("#queryformlink", queryformlink)
-- Info anfügen
local info = m["Info"]
if info ~= nil then
wartungsmeldung = wartungsmeldung .. " " ..
"{{#info:" .. info .. "|note}}"
end
end
z["Wartungsmeldung"] ="{{#queryformlink:" ..
"form=Abfrage Wartungsmeldungen" ..
"|link text=" .. z["Wartungsmeldung"]
"|query string=" .. query ..
"}}"
-- Zeile zusammenbauen
-- Zeile zusammenbauen
local line = {}
if gruppe ~= nil then
for _, s in ipairs(zeilen[1]) do
t = t .. htm.tableLine{
if z[s] == "" then
{gruppe, td_args = "rowspan=\"" .. #meldungen , "\""},
z[s] = "(alle)"
wartungsmeldung,
end
{anzahl, td_args = "style=\"text-align:center;\""}}
table.insert(line, z[s])
gruppe = nil
else
t = t .. htm.tableLine{
wartungsmeldung,
{anzahl, td_args = "style=\"text-align:center;\""}}
end
end
t = t .. htm.tableLine(line)
end
end
end
end
-- Tabellen-Fuß
-- Tabellen-Fuß
t = t .. htm.tableFooter()
t = t .. htm.tableFooter()
mw.logObject(t)
t = frame:preprocess(t)
return t
end
function p.AbfrageSeitenListe(frame)
-- Kommandozeile zum Debuggen:
-- =p.AbfrageSeitenListe{pargs={}}
-- =p.AbfrageSeitenListe{pargs={["Wartungsmeldung"]="Bild-Beschreibung fehlt"}}
local t = ""
local frame, pargs = dev.GetFrameAndParentArgs(frame)
-- Seiten-Selektor
local selector = ""
if not com.isEmpty(pargs["Wartungsmeldung"]) then
selector = selector ..
"[[Wartungsmeldung::~*" .. pargs["Wartungsmeldung"] .. "*]]"
else
selector = selector ..
"[[Wartungsmeldung::+]]"
end
if not com.isEmpty(pargs["Kategorie"]) then
selector = selector ..
"[[Kategorie:" .. pargs["Kategorie"] .. "]]"
end
if not com.isEmpty(pargs["KlassenName"]) then
selector = selector ..
"[[KlassenName::" .. pargs["KlassenName"] .. "]]"
end
if not com.isEmpty(pargs["Ehemals"]) then
selector = selector ..
"[[Ehemals::" .. pargs["Ehemals"] .. "]]"
end
if pargs["Namensraum"] == "(Seite)" or
pargs["Namensraum"] == "Lemma" or
pargs["Namensraum"] == "" then
selector = "[[:+]]" .. selector
elseif pargs["Namensraum"] == "Datei" then
selector = "[[Datei:+]]" .. selector
else
selector = "[[:+]]" .. selector .. " OR [[Datei:+]]" .. selector
end
-- Anzahl ermitteln und anzeigen
local query = {selector, format = "count"}
query = mw.smw.ask(query)
t = t .. "'''" .. query .. " Seiten gefunden'''<br>\n"
-- ask hinzufügen
query = {selector,
"?Wartungsmeldung",
"?Kategorie",
"?KlassenName=Klasse",
"?Ehemals#Ja,Nein",
format = "table",
limit = 200,
mainlabel = "Seite"}
if pargs["Klasse"] == "Gebäude" then
table.insert(query, "?Straße")
end
t = t .. frame:callParserFunction("#ask", query)
return t
return t
end
end


return p
return p

Aktuelle Version vom 19. Februar 2026, 20:38 Uhr

local p = {}

local com = require("Modul:Common")
local dev = require("Modul:Development")
local htm = require("Modul:HTML")
local wob = require("Modul:Wörterbuch")

local wartungsmeldungen = {
	{gruppe = "'''Dateien'''<br>(Bilder, Videos, ...)",
	meldungen = {
		{["Wartungsmeldung"] = "Bild-Beschreibung fehlt"},
--		{["Wartungsmeldung"] = "Bilder-Galerie leer", ["Info"] = "Nur zu Info. Ist kein Problem."},
		{["Wartungsmeldung"] = "Bilder-Galerie übervoll", ["Info"] = "Siehe auch [[FürthWiki:Galerie-Bilder-Ausblendung]]"},
		{["Wartungsmeldung"] = "Datei ohne Formular-Daten"},
		{["Wartungsmeldung"] = "Datei-Lizenz-Angabe fehlt"},
		{["Wartungsmeldung"] = "Datei-Freiattribut-Fehler"},
		{["Wartungsmeldung"] = "Datei-Freiattribut-Fehler Orts-Angabe", ["Info"] = "Der Ort wurde als Freiattribut und nicht im Orts-Feld angegeben."},
		{["Wartungsmeldung"] = "Datei-Freiattribut-Fehler Straßen-Angabe", ["Info"] = "Die Straße wurde als Freiattribut und nicht im Straßen-Feld angegeben."},
		{["Wartungsmeldung"] = "Faktenbox darf nicht in Datei-Seite sein"}}},
	{gruppe = "'''Faktenbox'''<br>(Formular-Angaben)",
	meldungen = {
		{["Wartungsmeldung"] = "Faktenbox fehlt"},
		{["Wartungsmeldung"] = "Faktenbox ohne Formular-Daten"},
		{["Wartungsmeldung"] = "Faktenbox-Daten nicht unterstützt (Einzelwerte)"},
		{["Wartungsmeldung"] = "Faktenbox veraltet"},
		{["Wartungsmeldung"] = "Faktenbox-Bild existiert nicht", ["Info"] = "Es wurde im Formular ein Bild eingetragen, das nicht (mehr) existiert"},
		{["Wartungsmeldung"] = "Faktenbox-Bild fehlt"},
		{["Wartungsmeldung"] = "Faktenbox-Karte (Position) fehlt", ["Info"] = "Nichts eingetragen als Objekt-Lokation, Koordinate oder GeoJson-Karte"}}},
	{gruppe = "'''Geo'''<br>(Karten, Positionsangabe, ...)",
	meldungen = {
		{["Wartungsmeldung"] = "Geo-Fehler - fehlerhafte Koordinate", ["Info"] = "Schreibfehler"},
		{["Wartungsmeldung"] = "Geo-Kodierungsfehler - Objekt-Lokation bei ehemaligen Objekt funktioniert nicht", ["Info"] = "Es können nur heute bestehende Objekt-Lokation gefunden werden. Bei ehemaligen Objekten muss die Koordinate eingetragen werden."},
		{["Wartungsmeldung"] = "Geo-Kodierungsfehler - Objekt-Lokation nicht gefunden", ["Info"] = "Objekt fehlt in OpenStreetMap oder ist dort fehlerhaft eingetragen. Im Zweifelsfall sollte Koordinate eingetragen werden."},
		{["Wartungsmeldung"] = "Geo-Kodierungsfehler - Positionsangabe fehlt"},
		{["Wartungsmeldung"] = "Geo-Kodierungsfehler - fehlende Geo-Koordinate trotz Objekt-Lokation", ["Info"] = "FürthWiki-interne Meldung (Server-Problem)"},
		{["Wartungsmeldung"] = "Geo-Kodierungsfehler und Geo-Koordinate nicht in SMW-DB vorhanden", ["Info"] = "FürthWiki-interne Meldung (Server-Problem)"},
		{["Wartungsmeldung"] = "Geo-Kodierungsfehler, aber Geokoordinate in SMW-DB noch vorhanden", ["Info"] = "FürthWiki-interne Meldung (Server-Problem)"}}},
	{gruppe = "'''Kategorie-spezifisch'''<br>(Karten, Positionsangabe, ...)",
	meldungen = {
		{["Wartungsmeldung"] = "Abrissjahr/Schließungsdatum eingetragen, aber ohne Ehemals-Häkchen"},
		{["Wartungsmeldung"] = "Adresse fehlerhaft"},
		{["Wartungsmeldung"] = "Beruf-Seite fehlt"},
		{["Wartungsmeldung"] = "Gebäude mit verdächtiger Straße-Hausnummer-Kombination"},
		{["Wartungsmeldung"] = "Gewässer ohne Stadtteil"},
		{["Wartungsmeldung"] = "Straßen ohne Stadtteil"}}},
	{gruppe = "'''Qualität'''<br>(Händische Markierungen)",
	meldungen = {
		{["Wartungsmeldung"] = "Artikel markiert als Baustelle"},
		{["Wartungsmeldung"] = "Artikel markiert als veraltet"},
		{["Wartungsmeldung"] = "Artikel markiert als zu überarbeiten"},
		{["Wartungsmeldung"] = "Artikel markiert mit Belege unzureichend"},
		{["Wartungsmeldung"] = "Artikel markiert mit Daten unplausibel"},
		{["Wartungsmeldung"] = "Artikel markiert mit Neutralität umstritten"},
		{["Wartungsmeldung"] = "Artikel markiert mit Relevanz mangelhaft"}}},
	{gruppe = "'''Sonstig'''",
	meldungen = {
		{["Wartungsmeldung"] = "Lemma (Seitenname) enthält „(ehemals)“, aber ohne Ehemals-Häkchen"},
		{["Wartungsmeldung"] = "Seitenname (Lemma) hat Semikolon", ["Info"] = "Nicht erlaubt bei Seiten mit Karten"}}}}

function p.Wartungstabelle(frame)
	-- Kommandozeile zum Debuggen:
	-- =p.Wartungstabelle{pargs={}}
	local frame = dev.GetFrameAndParentArgs(frame)
	local t = ""
	-- Kategorie-Selektor
	local kategorie = frame.args["Kategorie"] or
		wob.mehrzahl(frame.args["Klasse"] or "")
	local kategorie_selector = ""
	local kategorie_query_string = ""
	if kategorie ~= "" then
		kategorie_selector = "[[Kategorie:" .. kategorie .. "]]"
		kategorie_query_string =
			"&Abfrage Wartungsmeldungen[Kategorie]=" .. kategorie
		kategorie = " [[:Kategorie:" .. kategorie .. "]]"
	end
	-- Tabelle zusammensetzen
	t = t .. htm.tableHeader{
		"Gruppe", "Wartungsmeldungen" .. kategorie, "Seitenanzahl"}
	-- Tabellen-Zeilen
	for _, g in ipairs(wartungsmeldungen) do
		local gruppe = g.gruppe
		local meldungen = g.meldungen
		for _, m in ipairs(g.meldungen) do
			local wartungsmeldung = m["Wartungsmeldung"]
			-- Anzahl ermitteln
			local anzahl = mw.smw.ask{
				"[[Wartungsmeldung::" .. wartungsmeldung .. "]]" ..
				kategorie_selector,	format="count"}
			if anzahl == 0 then
				anzahl = ""
			end
			-- queryformlink zusammenbauen
			local queryformlink = { "", -- dummy
				["form"] = "Abfrage Wartungsmeldungen",
				["link text"] = wartungsmeldung,
				["query string"] =
					"Abfrage Wartungsmeldungen[Wartungsmeldung]=" ..
						wartungsmeldung .. kategorie_query_string .. "&_run"
			}
			wartungsmeldung =
				frame:callParserFunction("#queryformlink", queryformlink)
			-- Info anfügen
			local info = m["Info"]
			if info ~= nil then
				wartungsmeldung = wartungsmeldung .. " " ..
					"{{#info:" .. info .. "|note}}"
			end
			-- Zeile zusammenbauen
			if gruppe ~= nil then
				t = t .. htm.tableLine{
					{gruppe,  td_args = "rowspan=\"" .. #meldungen , "\""},
					wartungsmeldung,
					{anzahl, td_args = "style=\"text-align:center;\""}}
				gruppe = nil
			else
				t = t .. htm.tableLine{
					wartungsmeldung,
					{anzahl, td_args = "style=\"text-align:center;\""}}
			end
		end
	end
	-- Tabellen-Fuß
	t = t .. htm.tableFooter()
	mw.logObject(t)
	t = frame:preprocess(t)
	return t
end

function p.AbfrageSeitenListe(frame)
	-- Kommandozeile zum Debuggen:
	-- =p.AbfrageSeitenListe{pargs={}}
	-- =p.AbfrageSeitenListe{pargs={["Wartungsmeldung"]="Bild-Beschreibung fehlt"}}
	local t = ""
	local frame, pargs = dev.GetFrameAndParentArgs(frame)
	-- Seiten-Selektor
	local selector = ""
	if not com.isEmpty(pargs["Wartungsmeldung"]) then
		selector = selector ..
			"[[Wartungsmeldung::~*" .. pargs["Wartungsmeldung"] .. "*]]"
	else
		selector = selector ..
			"[[Wartungsmeldung::+]]"
	end
	if not com.isEmpty(pargs["Kategorie"]) then
		selector = selector ..
			"[[Kategorie:" .. pargs["Kategorie"] .. "]]"
	end
	if not com.isEmpty(pargs["KlassenName"]) then
		selector = selector ..
			"[[KlassenName::" .. pargs["KlassenName"] .. "]]"
	end
	if not com.isEmpty(pargs["Ehemals"]) then
		selector = selector ..
			"[[Ehemals::" .. pargs["Ehemals"] .. "]]"
	end
	if pargs["Namensraum"] == "(Seite)" or
		pargs["Namensraum"] == "Lemma" or
		pargs["Namensraum"] == "" then
		selector = "[[:+]]" .. selector
	elseif pargs["Namensraum"] == "Datei" then
		selector = "[[Datei:+]]" .. selector
	else
		selector = "[[:+]]" .. selector .. " OR [[Datei:+]]" .. selector
	end
	-- Anzahl ermitteln und anzeigen
	local query = {selector, format = "count"}
	query = mw.smw.ask(query)
	t = t .. "'''" .. query .. " Seiten gefunden'''<br>\n"
	-- ask hinzufügen
	query = {selector,
		"?Wartungsmeldung",
		"?Kategorie",
		"?KlassenName=Klasse",
		"?Ehemals#Ja,Nein",
		format = "table",
		limit = 200,
		mainlabel = "Seite"}
		if pargs["Klasse"] == "Gebäude" then
			table.insert(query, "?Straße")
		end
	t = t .. frame:callParserFunction("#ask", query)
	return t
end

return p