Modul:Wartung
Aus FürthWiki
Unterseiten
Siehe auch
- Abfrage Wartungsmeldungen
- Formular:Abfrage Wartungsmeldungen
- Vorlage:Abfrage Wartungsmeldungen
- Kategorie:!Wartung
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 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"] = "Datei-Freiattribut-Fehler"},
{["Wartungsmeldung"] = "Faktenbox darf nicht in Datei-Seite sein"}}},
{gruppe = "'''Faktenbox'''<br>(Formular-Angaben)",
meldungen = {
{["Wartungsmeldung"] = "Faktenbox fehlt"},
{["Wartungsmeldung"] = "Faktenbox ohne Formular-Daten"},
{["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