Modul:Benutzer:Zukunft99
Zur Navigation springen
Zur Suche springen
Die Dokumentation für dieses Modul kann unter Modul:Benutzer:Zukunft99/Doku erstellt werden
local p = {}
local getArgs = require('Module:Arguments').getArgs
local farben = require('Module:Partei').farbe
local hell = require('Module:Partei').hell
local sort = require('Modul:Vorlage:PersonZelle').f
function p.kand(frame)
local args = getArgs(frame)
local index = {}
local i = 0
for datum = 1, 50 do i = i + 1
if args['k' .. i] then table.insert(index, i) end
end
local function color(a)
local a = farben({(a)})
return "#"..a
end
local root = mw.html.create('table'):addClass('wikitable sortable')
root
:tag('th'):attr('colspan', '2'):wikitext('Listen'):done()
:tag('th'):wikitext('Kandidaten'):done()
:tag('th'):wikitext('Stimmen'):done()
for i, v in ipairs(index) do
row = root:tag('tr')
if args['p'..v] then
row:tag('td')
:attr('rowspan', args['n'..v])
:css('width', '0px')
:css('background', color(args['p'..v]))
row:tag('td')
:attr('rowspan', args['n'..v])
:wikitext(args['p'..v])
end
row:tag('td')
:wikitext(args['k'..v])
row:tag('td')
:wikitext(mw.getLanguage('de'):formatNum(tonumber(args['s'..v])))
end
return tostring(root)
end
function p.bar(frame)
local args = getArgs(frame)
local index, data = {}, {}
local num = 1
local maxvalue = 0
local i = 0
for a = 1, 30 do i = i + 1
if args['m' .. i] then table.insert(index, i) end
end
--- use for args[m..i] --
mvalue = math.max(args['m1'], args['m2'] or 0, args['m3'] or 0, args['m4'] or 0, args['m5'] or 0, args['m6'] or 0, args['m7'] or 0, args['m8'] or 0, args['m9'] or 0, args['m10'] or 0, args['m11'] or 0, args['m12'] or 0)
if args['s1'] then a = 1 else a = 0 end
if args['k1'] then b = 1 else b = 0 end
if args['verleich'] then c = 1 else c = 0 end
cspan = 3 + a + b + c
local datum = mw.html.create('table'):css('background-color', '#F8F9FA'):css('border', '0.1px solid #C0C0C0'):css('font-size', args['font-size'] or '100%'):done()
datum
:tag('th'):wikitext(args['titel'] or 'Datum'):attr('colspan', cspan):css('background-color', '#EBEBFF'):css('border-bottom', '0.1px solid #CCF'):done()
row = datum:tag('tr')
:tag('th'):wikitext(args['titeld'] or 'Datum'):css('background-color', '#F0F0F0'):done()
if args['s1'] then
row
:tag('th'):wikitext(args['titels'] or 'Datum'):css('background-color', '#F0F0F0'):done()
end
row
:tag('th'):css('background-color', '#F0F0F0'):done()
:tag('th'):wikitext(args['titelv'] or 'Datum'):css('background-color', '#F0F0F0'):done()
if args['verleich'] then
row
:tag('th'):wikitext('+ / –'):css('background-color', '#F0F0F0'):done()
end
for i, v in ipairs(index) do datum:tag('tr')
breite = args['m'..v]*(args['width'] or 100)/mvalue
if args['k'..v] then breitediff = args['k'..v]*(args['width'] or 100)/mvalue end
if args['k'..v] then b = args['k'..v]*(args['width'] or 100)/mvalue end
if args['titeld'] == 'Partei' then farbe = farben({args['d'..v]}) else farbe = args['f' .. v] or args['farbe'] or '6495ED' end
if args['titeld'] == 'Partei' then farbek = hell({args['d'..v]}) else farbek = args['fk' .. v] or args['farbek'] or '6495ED' end
if args['k'..v] then color = '<div style="background-color:#'.. farbe..';width:'.. breite ..'px;height:70%;"></div><div style="height:6px"></div><div style="background-color:#'.. farbek..';width:'.. breitediff ..'px;height:70%;"></div>'
else color = '<div style="background-color:#'.. farbe..';width:'.. breite ..'px;height:70%;"></div>'
end
if args['einheit'] then e = ' '..args['einheit'] else e = '' end
if args['k'..v] then value = (mw.getLanguage('de'):formatNum(tonumber(args['m'..v]))).. e..'<div></div>'..(mw.getLanguage('de'):formatNum(tonumber(args['k'..v])))
else value = (mw.getLanguage('de'):formatNum(tonumber(args['m'..v]))).. e
end
if args['verleich'] then diff = (args['m'..v] - args['k'..v])
if diff < 0 then diffnum = -diff else diffnum = diff end
diffvalue = (mw.getLanguage('de'):formatNum(tonumber(diffnum)))
if diff > 0 then verleich = '+'..diffvalue
elseif diff == 0 then verleich = '±0'
else verleich = '–'.. diffvalue
end
end
row = datum:tag('tr')
if args['d' .. v] then
row:tag('td')
:wikitext(args['d' .. v])
:css('border-top', '0.1px solid #E0E0E0')
:css('padding-right', '20px')
end
if args['s1'] then
row:tag('td')
:wikitext(args['s1']..'<div></div>'..args['s2'])
:css('border-top', '0.1px solid #E0E0E0')
:css('padding-right', '20px')
end
if args['d' .. v] then
row:tag('td')
:wikitext(color)
:css('width', args['width'] or '100px')
:css('max-width', args['width'] or '100px')
:css('height', '20px')
:css('padding-left', '0px')
:css('border-top', '0.1px solid #E0E0E0')
:css('border-left', '0.1px solid #E0E0E0')
end
if args['m' .. v] then
row:tag('td')
:wikitext(value)
:css('min-width', '50px')
:css('text-align', 'center')
:css('border-top', '0.1px solid #E0E0E0')
:css('border-left', '0.1px solid #E0E0E0')
end
if args['verleich'] then
row:tag('td')
:wikitext(verleich)
:css('min-width', '50px')
:css('text-align', 'center')
:css('border-top', '0.1px solid #E0E0E0')
:css('border-left', '0.1px solid #E0E0E0')
end
end
return datum
end
function p.gew(frame)
local args = getArgs(frame)
return ' <span style="background-color:#4BBD71;padding-left:6px;padding-right:6px;line-height:6px;border-radius:4px 4px 4px;font-size:80%;border:0.1px solid #3A9157;text-align:center;font-weight:bold;color:#FFFFFF;">'.. (args[1] or 'Gewählt')..'</span>'
end
return p