Modul:Politik
Aus FürthWiki
Seiten-Übersicht
| Hauptseite | Unterseiten | ||
|---|---|---|---|
| Allgemein | |||
| Faktenbox | Vorlagen | ||
| Formulare |
|
||
| Module | |||
| Alias | |||
| Abfrage | Vorlagen |
| |
| Formulare |
| ||
| Sonstige | |||
Bilder-Galerie aktueller Stadtrat / galerieAktuellerStadtrat()
Die Bilder-Galerie des aktuellen Stadtrats wird mittels der Funktion galerieAktuellerStadtrat() automatisch mit den jeweils aktuellen Mitgliedern des Stadtrats gefüllt.
Dazu ist es nötig, dass bei den jeweiligen Personen-Artikeln die Funktion korrekt eingetragen ist wie folgt:
- Das „von“-Datum, aber kein „bis“-Datum ist eingetragen. Daran erkennt die Galerie-Funktion, dass die jeweilige Person aktuell im Stadtrat sein muss.
- Neu gewählte Stadträte haben erst die Funktion inne, wenn sie bei der konstituierenden Sitzung vereidigt wurden, und nicht bereits mit der Wahl. Ebenso beenden ausscheidende Stadträte erst die Funktion, wenn deren Nachfolger bei der konstituierenden Sitzung vereidigt wurden. Daher darf ...
- bei neu gewählten Stadträten das „von“-Datum erst mit/nach erfolgter konstituierenden Sitzung eingetragen werden (mit deren Datum) und ...
- bei ausscheidenden Stadträten das „bis“-Datum ebenso erst mit/nach erfolgter konstituierenden Sitzung eingetragen werden (ein Tag vor deren Datum).
- Äquivalent ist bei Austausch von Stadträten während der Amtsperiode zu verfahren z. B. bei Verzicht oder Tod des bisherigen Stadtrats.
- Die gleichen Mechanismen greifen bei Bürgermeistern und Referenten.
- Beim Geschäftsführer der Infra fürth holding wird jeweils der dortige, aktuell eingetragene Geschäftsführer genommen.
- Erläuterung: Bis zur konstituierenden Sitzung bleiben die bisherigen Stadträte (komissarisch) im Amt. Zudem kann es passieren, dass ein (wieder-)gewählter Stadtrat aus irgendwelchen Gründen doch nicht seine Funktion antreten kann und dann ein „Nachrücker“ seinen Sitz übernimmt. Ebenso kann ein vorerst abgewählter Stadtrat doch noch wiedereinziehen, falls er für jemanden nachrückt. Insofern wäre es falsch, den Funktionseintrag bereits direkt nach der Wahl vorzunehmen.
- Falls bei einem Stadtrat auf seiner Personen-Seite mehrere Parteien eingetragen sind, ist es nötig, beim jeweiligen Bermerkungsfeld die Partei einzutragen.
local p = {}
local str = require("Modul:String")
local tab = require("Modul:Table")
local wik = require("Modul:Wiki")
p.parteiKuerzel = {
["AfD"] = "Alternative für Deutschland",
["BHE"] = "Bund der Heimatvertriebenen und Entrechteten",
["BHE"] = "Bund der Heimatvertriebenen und Entrechteten",
["BP"] = "Bayernpartei",
["BSW"] = "Bündnis Sarah Wagenknecht",
["BVP"] = "Bayerische Volkspartei",
["BdH"] = "Bund der Heimatvertriebenen",
["CDU"] = "Christlich Demokratische Union Deutschlands",
["CSU"] = "Christlich-Soziale Union in Bayern",
["DDP"] = "Deutsche Demokratische Partei",
["DFP"] = "Deutsche Freisinnige Partei",
["dieBasis"] = "Basisdemokratische Partei Deutschland",
["DIE FRANKEN"] = "Partei für Franken",
["Die PARTEI"] = "Partei für Arbeit, Rechtsstaat, Tierschutz, Elitenförderung und basisdemokratische Initiative",
["DKP"] = "Deutsche Kommunistische Partei",
["FDP"] = "Freie Demokratische Partei",
["FVp"] = "Freisinnige Volkspartei",
["FW"] = "Freie Wähler",
["GB/BHE"] = "Gesamtdeutscher Block/Bund der Heimatvertriebenen und Entrechteten",
["GJ"] = "Grüne Jugend",
["Grüne"] = "Bündnis 90/Die Grünen",
["GUTuN"] = "Generation Umwelt, Tierschutz und Nachhaltigkeit",
["HJ"] = "Hitlerjugend",
["JU"] = "Junge Union",
["JuLis"] = "Junge Liberale",
["KPD"] = "Kommunistische Partei Deutschlands",
["Linke"] = "Die Linke",
["MLPD"] = "Marxistisch-Leninistische Partei Deutschlands",
["NPD"] = "Nationaldemokratische Partei Deutschlands",
["NSDAP"] = "Nationalsozialistische Deutsche Arbeiterpartei",
["PIRATEN"] = "Piratenpartei Deutschland",
["PdH"] = "Partei der Humanisten",
["REP"] = "Die Republikaner",
["SA"] = "Sturmabteilung",
["SDAJ"] = "Sozialistische Deutsche Arbeiterjugend",
["SPD"] = "Sozialdemokratische Partei Deutschlands",
["Tierschutzpartei"] = "Partei Mensch Umwelt Tierschutz",
["UCS"] = "Unabhängige Christlich-Soziale",
["Volt"] = "Volt Deutschland",
["WASG"] = "Wahlalternative Arbeit und soziale Gerechtigkeit",
["WAV"] = "Wirtschaftliche Aufbau-Vereinigung",
["WP"] = "Wirtschaftspartei",
["ÖDP"] = "Ökologisch-Demokratische Partei"}
function p.getLangfassung(partei)
local partei_lower = string.lower(partei)
for pk, pl in pairs(p.parteiKuerzel) do
if string.lower(pk) == partei_lower then
partei = pl
break
end
end
return partei
end
function p.GetKuerzel(frame)
return p.getKuerzel(frame.args[1])
end
function p.getKuerzel(partei)
local partei_lower = string.lower(partei)
for pk, pl in pairs(p.parteiKuerzel) do
if string.lower(pl) == partei_lower then
partei = pk
break
end
end
return partei
end
function p.getKombi(partei)
local kombi
if partei ~= nil then
local langfassung = p.getLangfassung(partei)
local kuerzel = p.getKuerzel(partei)
if not wik.pageExists(langfassung) and wik.pageExists(kuerzel) then
kombi = "[[" .. kuerzel .. "|" .. langfassung .. "]]" ..
" (" .. kuerzel .. ")"
else
kombi = "[[" .. langfassung .. "]]"
if kuerzel ~= langfassung then
kombi = kombi .. " (" .. kuerzel .. ")"
end
end
end
return kombi
end
function p.GetQuerySelector(frame)
return p.getQuerySelector(str.splitAndStrip(frame.args[1], ";"))
end
function p.getQuerySelector(partei)
local s = ""
if partei ~= nil then
partei = tab.toTable(partei)
for _, pp in ipairs(partei) do
if pp ~= nil and pp ~= "" then
local langfassung = p.getLangfassung(pp)
local kuerzel = p.getKuerzel(pp)
s = str.appendWithSeparator(s, "||", langfassung)
if kuerzel ~= langfassung then
s = str.appendWithSeparator(s, "||", kuerzel)
end
end
end
end
if s ~= "" then
s = "[[Partei::" .. s .. "]]"
end
return s
end
function p.GetParteiListe()
return table.concat(p.getParteiListe(), ";")
end
function p.getParteiListe()
local liste = {}
local l = {}
local query = {"[[Partei::+]]", "?Partei#=", mainlabel="-", limit=10000} -- Partei-Attribute abfragen
query = mw.smw.ask(query)
for _, q in ipairs(query) do
q = q[1]
if type(q) ~= "table" then
q = {q}
end
for _, e in ipairs(q) do
l[e] = true
l[p.getKuerzel(e)] = true
end
end
for e, _ in pairs(l) do -- in Liste umwandeln und sortieren
table.insert(liste, e)
end
table.sort(liste)
return liste
end
function p.galerieAktuellerStadtrat(frame)
local t = ""
local buergermeister = {}
-- OBs
t = t .. "<gallery>\n"
local query = {
"[[SubObjektTyp::Funktion]][[Funktion::Oberbürgermeister]]" ..
"[[Ehemals::falsch]]",
"?-has subobject.Seite#",
"?-has subobject.Bild#",
"?-has subobject.Partei#",
"?Funktion",
"?FunktionBemerkung",
limit = 1000}
local query_result = mw.smw.ask(query)
buergermeister[1] = { ["Seite"] = query_result[1]["Seite"]}
t = t .. galleryEntry(query_result[1])
for i = 2, 3 do
query[1] =
"[[SubObjektTyp::Funktion]]" ..
"[[Funktion::" .. i .. ". Bürgermeister]][[Ehemals::falsch]]"
query_result = mw.smw.ask(query)
buergermeister[i] = { ["Seite"] = query_result[1]["Seite"]}
query[1] = -- Doppelfunktion Berufsmäßiges Stadtratsmitglied?
"[[-has subobject::" .. query_result[1]["Seite"] .. "]]" ..
"[[Funktion::Berufsmäßiges Stadtratsmitglied]][[Ehemals::falsch]]"
local query_result2 = mw.smw.ask(query)
if query_result2 ~= nil then
query_result[1]["Funktion"] = query_result[1]["Funktion"] ..
"<br>[[Berufsmäßiges Stadtratsmitglied]]"
end
t = t .. galleryEntry(query_result[1])
end
t = t .. "</gallery>\n"
-- direkt gewählte Stadträte
query[1] =
"[[SubObjektTyp::Funktion]][[Funktion::Stadtrat]][[Ehemals::falsch]]"
local stadtraete = mw.smw.ask(query)
t = t .. "<gallery>\n"
for _, s in ipairs(stadtraete) do
s["Funktion"] = "[[Stadtrat (Funktion)|Stadtrat]]"
local ist_ob = false
for _, b in ipairs(buergermeister) do -- Bürgermeister ausfiltern
ist_ob = ist_ob or (s["Seite"] == b["Seite"])
end
if not ist_ob then
query[1] = -- Doppelfunktion Berufsmäßiges Stadtratsmitglied?
"[[-has subobject::" .. s["Seite"] .. "]]" ..
"[[Funktion::Berufsmäßiges Stadtratsmitglied]]" ..
"[[Ehemals::falsch]]"
query_result = mw.smw.ask(query)
if query_result ~= nil then
s["Funktion"] = s["Funktion"] ..
"<br>[[Berufsmäßiges Stadtratsmitglied]]"
end
t = t .. galleryEntry(s)
end
end
t = t .. "</gallery>\n"
-- berufsmäßige Stadtratsmitglieder
query[1] =
"[[SubObjektTyp::Funktion]]" ..
"[[Funktion::Berufsmäßiges Stadtratsmitglied]][[Ehemals::falsch]]"
query_result = mw.smw.ask(query)
t = t .. "<gallery>\n"
for _, bs in ipairs(query_result) do
local ist_ob = false
for _, b in ipairs(buergermeister) do -- Bürgermeister ausfiltern
ist_ob = ist_ob or (bs["Seite"] == b["Seite"])
end
local ist_stadtrat = false
for _, s in ipairs(stadtraete) do -- Stadträte ausfiltern
ist_stadtrat = ist_stadtrat or (bs["Seite"] == s["Seite"])
end
if not ist_ob and not ist_stadtrat then
bs["Partei"] = nil
t = t .. galleryEntry(bs)
end
end
t = t .. "</gallery>\n"
-- Geschäftsführer infra fürth
query = {"[[Infra fürth holding]]", "?Geschäftsführer#"}
query = mw.smw.ask(query)
local geschaeftsfuehrer = query[1]["Geschäftsführer"]
query = {"[[" .. geschaeftsfuehrer .. "]]", "?Bild#"}
query = mw.smw.ask(query)
query = query[1]
query["Seite"] = geschaeftsfuehrer
query["Funktion"] = "Geschäftsführer [[Infra fürth holding]]"
t = t .. "<gallery>\n"
t = t .. galleryEntry(query)
t = t .. "</gallery>\n"
t = frame:preprocess(t)
return t
end
function galleryEntry(query)
local t = ""
local seite = query["Seite"]
local bild = query["Bild"] or "Datei:IconPersonCanvas.jpg"
local funktion = query["Funktion"]
local bemerkung = query["FunktionBemerkung"] -- Partei in optional in Bemerkung
if not wik.pageExists(bemerkung) then -- Wenn Seite ... nicht optimal, aber funzt erstmal
bemerkung = nil
end
local partei = tab.toTable(bemerkung or query["Partei"] or {})
for i, _ in ipairs(partei) do
partei[i] = "[[" .. partei[i] .. "|" ..
p.getKuerzel(partei[i]) .. "]]"
end
partei = table.concat(partei, ", ")
t = t .. bild .. "|[[" .. seite .. "]]<br>" .. funktion .. "<br>" .. partei .. "\n"
return t
end
return p