27.167
Bearbeitungen
(Die Seite wurde neu angelegt: „local p = {} local htm = require("Modul:HTML") local zeilen = { { "Wartungsmeldung", "Kategorie", "KlassenName", "Ehemals"} } function p.Wartungstabelle(frame) local t = "" for i, z in ipairs(zeilen) do local zeile = "" if i == 1 then t = t .. htm.tableHeader(z) else end end t = t .. htm.tableFooter() return t end return p“) |
(Änderung 789204 von HeikoBot (Diskussion) rückgängig gemacht.) Markierung: Rückgängigmachung |
||
| (72 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 | local wartungsmeldungen = { | ||
{ { "Wartungsmeldung", | {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) | function p.Wartungstabelle(frame) | ||
-- Kommandozeile zum Debuggen: | |||
-- =p.Wartungstabelle{pargs={}} | |||
local frame = dev.GetFrameAndParentArgs(frame) | |||
local t = "" | local t = "" | ||
for | -- Kategorie-Selektor | ||
local | local kategorie = frame.args["Kategorie"] or | ||
wob.mehrzahl(frame.args["Klasse"] or "") | |||
t = t .. htm. | 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 | ||
end | end | ||
-- 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 | ||